Skip to content

SureDrop API

Rob Linton edited this page Jun 6, 2025 · 1 revision

SureDrop REST API Documentation

Table of Contents

Overview

The SureDrop REST API provides comprehensive functionality for file management, user authentication, group collaboration, and secure document sharing. All API endpoints require authentication unless otherwise specified.

Important Note

This documentation provides an overview of the main API endpoints but is not exhaustive. For the complete and comprehensive list of all available API calls, including detailed request/response schemas and additional parameters, please refer to the swagger.json file or access the interactive Swagger documentation at /rest/help on your SureDrop instance.

Accessing Swagger Definitions

Accessing Swagger definitions may only be done on an on-premises instance of SureDrop, Swagger definitions are disabled by default for all cloud instances.

To access the swagger.json definition file, edit the following file:

C:\ProgramData\docker\volumes\suredrop_ngix-reverse-proxy-shared\_data\client.conf

Add the following lines:

location /api-docs/swagger.json {
	proxy_pass   http://rest-api/api-docs/swagger.json;
}

Restart SureDrop:

suredrop stop
suredrop start

The Swagger definitions will now be available at:

https://[your-suredrop-url]/api-docs/swagger.json

Please note, there is no SwaggerUI configured at this address.

Base URL

All API endpoints are prefixed with /rest/ in the base URL.

Authentication

Most endpoints require three authentication parameters:

  • prefix - Company name or routing code
  • username - User's username
  • token - Session token obtained from login
  • secure - Optional secure token for enhanced security

API Endpoints

1. Authentication & Session Management

Login / Get Session Token

POST /rest/session?prefix={prefix}&username={username}
  • Description: Authenticate user and get session token
  • Body: JSON with password, optional token (2FA), optional read_only
  • Returns: Session token and user information

Validate QR Code

GET /rest/user/validate_qrcode?prefix={prefix}&username={username}&token={token}
  • Description: Validates a QR code for 2FA authentication
  • Returns: Validation status

Get QR Code

POST /rest/user/qrcode?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Generates a QR code for 2FA setup
  • Returns: QR code data

Logout All Non-Admin Users

GET /rest/maintenance?prefix={prefix}&username={username}&token={token}
  • Description: Logs out all non-admin users (maintenance mode)

Get Session Tokens

GET /rest/user/sessions?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Retrieve active session information
  • Returns: List of active sessions with timestamps

Unlock Account

GET /rest/unlock_account?prefix={prefix}&username={username}&token={token}
  • Description: Unlock a locked user account

Add Device

POST /rest/device?prefix={prefix}&username={username}&token={token}
  • Description: Register a new device for authentication
  • Body: Device information

Delete Device

DELETE /rest/device/{device}?prefix={prefix}&username={username}&token={token}
  • Description: Remove a registered device

2. User Management

Get User Information

GET /rest/user?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Get current user's information
  • Returns: User profile data

Create User

POST /rest/user?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Create a new user account
  • Body: User details (first_name, last_name, email, etc.)

Update User

PUT /rest/user?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Update user information
  • Body: Updated user fields

Update User Status

PUT /rest/user/{username}/status?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Update user account status (active/inactive)
  • Body: Status information

Get Users List

GET /rest/users?prefix={prefix}&username={username}&token={token}&secure={token_secure}&group={group}&search={search}&deleted={deleted}&friends={only_friends}&admin={admin_screen}&offset={offset}&fetch={fetch}
  • Description: Get paginated list of users with filtering options
  • Parameters:
    • group - Filter by group
    • search - Search term
    • deleted - Include deleted users
    • offset/fetch - Pagination

Search Users

GET /rest/users/{search}?prefix={prefix}&username={username}&token={token}&group={group}&offset={offset}&fetch={fetch}
  • Description: Search for users by query
  • Returns: Matching users list

Reset User

POST /rest/user/{username}/reset?prefix={prefix}&token={token}&secure={token_secure}
  • Description: Reset user account and send activation email

Send User Invite

POST /rest/user/{username}/invite?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Send invitation email to user

3. Password Management

Set Password

POST /rest/password?prefix={prefix}&username={username}&token={token}&secure={token_secure}&twofactor={two_factor}
  • Description: Set initial password for user
  • Body: Password information

Reset/Change Password

PUT /rest/password?prefix={prefix}&username={username}&token={token}&secure={token_secure}&twofactor={two_factor}
  • Description: Change existing password
  • Body: Old and new password

Delete Password

DELETE /rest/password?prefix={prefix}&username={username}&token={token}&secure={token_secure}&password={password}&target={target_username}
  • Description: Remove password for specified user

Check Password Status

GET /rest/password?prefix={prefix}&username={username}&token={token}
  • Description: Check if user has password set and 2FA status

4. Group Management

Create Group

POST /rest/group?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Create a new group
  • Body: Group name and properties

Get Group Information

GET /rest/group/{group}?prefix={prefix}&username={username}&token={token}
  • Description: Get detailed information about a specific group
  • Returns: Group details, members, policies

List Groups

GET /rest/groups?prefix={prefix}&username={username}&token={token}
  • Description: Get list of all groups
  • Returns: Array of group summaries

Update Group

PUT /rest/group/{group}?prefix={prefix}&username={username}&token={token}
  • Description: Update group properties
  • Body: Updated group fields

Delete Group

DELETE /rest/group/{group}?prefix={prefix}&username={username}&token={token}
  • Description: Delete a group

Add/Remove Users from Group

POST /rest/group/{group}/users?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Bulk add/remove users to/from group
  • Body: {remove: [usernames], add: [usernames]}

Get Group Members

GET /rest/group/{group}/users?prefix={prefix}&username={username}&token={token}
  • Description: List all members of a group
  • Returns: Array of user information

Update Group Admin

PUT /rest/group/{group}/admin?prefix={prefix}&username={username}&token={token}
  • Description: Update group administrator
  • Body: New admin username

Get Group Storage

GET /rest/group/{group}/storage?prefix={prefix}&username={username}&token={token}
  • Description: Get storage configuration for group

5. Policy & Template Management

Edit Group Policy

POST /rest/group/{group}/policy?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Edit policies for a group
  • Body: Policy configuration

Edit User Policy

POST /rest/user/{username}/policy?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Edit policies for a specific user
  • Body: Policy configuration

Get Templates

GET /rest/templates?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Get list of available templates
  • Returns: Template list

Get Template Details

GET /rest/template/{template}?prefix={prefix}&username={username}&token={token}
  • Description: Get specific template information

Get User Templates

GET /rest/user/templates?prefix={prefix}&username={username}&token={token}
  • Description: Get templates associated with user's groups

Update Template

PUT /rest/template/{template}?prefix={prefix}&username={username}&token={token}
  • Description: Update template configuration

6. Document Management

Get Document Information

GET /rest/document/{url}?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Get document metadata and information
  • Parameters: url - Document path

List Documents

GET /rest/documents/{folder}?prefix={prefix}&username={username}&token={token}&secure={token_secure}&deleted={show_deleted}&role={role}
  • Description: List documents in a folder
  • Parameters:
    • folder - Folder path
    • deleted - Include deleted documents
    • role - Filter by role

Get Document Count

GET /rest/document_count/{folder}?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Count documents in folder

Begin Multipart Upload

POST /rest/begin_add_document?prefix={prefix}&username={username}&token={token}
  • Description: Start multipart document upload
  • Body: Document metadata
  • Returns: Upload session ID

End Multipart Upload

POST /rest/end_add_document?prefix={prefix}&username={username}&token={token}
  • Description: Complete multipart upload
  • Body: Session ID and final metadata

Upload Document Block

POST /rest/add_document_block_batch?prefix={prefix}&username={username}&token={token}
  • Description: Upload document block in multipart upload
  • Body: Block data and metadata

Upload Single Document

POST /rest/document/{url}?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Upload complete document in single request
  • Body: Document content and metadata

Delete Document

DELETE /rest/document/{url}?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Mark document as deleted

Delete Document Version

DELETE /rest/document_version/{url}?prefix={prefix}&username={username}&token={token}&secure={token_secure}&document_id={document_id}
  • Description: Delete specific version of document

Undelete Document

PUT /rest/document/{url}?prefix={prefix}&username={username}&token={token}&secure={token_secure}&devicename={devicename}
  • Description: Restore deleted document

Get Document Versions

GET /rest/document_versions/{url}?prefix={prefix}&username={username}&token={token}&secure={token_secure}&timestamp={timestamp}&duration={duration}
  • Description: Get version history of document

7. File & Folder Management

List Files

GET /rest/files/{folder}?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Efficiently list files in folder
  • Returns: Lightweight file information

Get File Information

GET /rest/file/{url}?prefix={prefix}&username={username}&token={token}
  • Description: Get minimal file information
  • Returns: File metadata

Update File

PUT /rest/file/{url}?prefix={prefix}&username={username}&token={token}
  • Description: Update file properties
  • Body: Updated fields

Add File

POST /rest/file?prefix={prefix}&username={username}&token={token}
  • Description: Add new file reference
  • Body: File metadata

List Folders

GET /rest/folders/{folder}?prefix={prefix}&username={username}&token={token}
  • Description: Get subfolders in folder
  • Returns: Folder structure

Search

GET /rest/search?prefix={prefix}&username={username}&token={token}&q={query}
  • Description: Search for documents and files
  • Parameters: q - Search query

8. Content Delivery

Download Content

GET /rest/content/{url}?prefix={prefix}&username={username}&token={token}
  • Description: Download file content
  • Returns: File binary data

Get Content as Base64

GET /rest/content/base64/{url}?prefix={prefix}&username={username}&token={token}
  • Description: Get file content encoded as base64
  • Returns: Base64 string

Download as ZIP

GET /rest/content/zip/{url}?prefix={prefix}&username={username}&token={token}&mesh={mesh}&secure={token_secure}&password={password}&strong={strong}
  • Description: Download multiple files as ZIP
  • Parameters:
    • mesh - Include mesh information
    • password - Optional ZIP password
    • strong - Use strong encryption

Download Shared Content

GET /rest/content/shared/{url}?token={share_token}&company={company}
  • Description: Download content using share token
  • No authentication required

Get Shared Object

GET /rest/document/shared/{url}?token={share_token}&company={company}
  • Description: Get shared document information
  • No authentication required

9. Sharing & Collaboration

Share Single Document

POST /rest/document/share?prefix={prefix}&username={username}&token={token}
  • Description: Create share link for single document
  • Body: Document path and share settings
  • Returns: Share token

Share Multiple Documents

POST /rest/documents/share?prefix={prefix}&username={username}&token={token}
  • Description: Create share link for multiple documents
  • Body: Array of document paths and settings
  • Returns: Share token

Delete Share

DELETE /rest/share/{token}?prefix={prefix}&username={username}&token={token}
  • Description: Remove share link

Send Share Email

POST /rest/share/email?prefix={prefix}&username={username}&token={token}
  • Description: Send email with share links
  • Body: Recipients and message

Get Friends List

GET /rest/friends?prefix={prefix}&username={username}&token={token}
  • Description: Get user's friends list
  • Returns: Array of friend information

Search Friends

GET /rest/friends/search?prefix={prefix}&username={username}&token={token}&q={query}
  • Description: Search for friends
  • Parameters: q - Search query

Add Friend

POST /rest/friend?prefix={prefix}&username={username}&token={token}
  • Description: Add user as friend
  • Body: Friend username or email

Delete Friend

DELETE /rest/friend/{friend}?prefix={prefix}&username={username}&token={token}
  • Description: Remove friend

10. Email & Messaging

Send Email Message

POST /rest/email?prefix={prefix}&username={username}&token={token}
  • Description: Send email to users
  • Body: Recipients, subject, message

Send Group Email

POST /rest/email/group/{group}?prefix={prefix}&username={username}&token={token}
  • Description: Send email to all group members
  • Body: Subject and message

Get Email Destinations

GET /rest/email/destinations?prefix={prefix}&username={username}&token={token}
  • Description: Get saved email destinations
  • Returns: List of email addresses

Create Email Destination

POST /rest/email/destination?prefix={prefix}&username={username}&token={token}
  • Description: Save email destination
  • Body: Email address and name

Delete Email Destination

DELETE /rest/email/destination/{id}?prefix={prefix}&username={username}&token={token}
  • Description: Remove saved email destination

Update Messages Read Status

PUT /rest/messages/read?prefix={prefix}&username={username}&token={token}
  • Description: Mark messages as read
  • Body: Message IDs

Send Feedback

POST /rest/feedback?prefix={prefix}&username={username}&token={token}
  • Description: Send feedback to administrators
  • Body: Feedback message

11. System Administration

Initialize System

POST /rest/init?prefix={prefix}
  • Description: Initialize new SureDrop instance
  • Body: Master key and configuration
  • No authentication required

Update Initialization

POST /rest/update_init?prefix={prefix}&username={username}&token={token}
  • Description: Update system initialization
  • Body: Updated configuration

Get/Update Settings

GET /rest/settings?prefix={prefix}&username={username}&token={token}
PUT /rest/setting?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Get or update system settings
  • Body (PUT): Setting key-value pairs

Maintenance Mode

GET /rest/maintenance?prefix={prefix}&username={username}&token={token}
  • Description: Enable maintenance mode and logout users

Update Branding

POST /rest/brand?prefix={prefix}&username={username}&token={token}
  • Description: Update company branding
  • Body: Branding configuration

Update Core Options

POST /rest/UpdateCoreOptions?prefix={prefix}&username={username}&token={token}&secure={token_secure}
POST /rest/UpdateCoreOptionsBase64?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Update core system options
  • Body: Configuration options (Base64 version accepts base64-encoded data)

Certificate Management

GET /rest/certificate?prefix={prefix}&username={username}&token={token}
  • Description: Get certificate information

Company Information

GET /rest/company/{name}
  • Description: Get company information by name
  • No authentication required

12. Device Management

Register Device

POST /rest/device?prefix={prefix}&username={username}&token={token}
  • Description: Register new device
  • Body: Device information

Remove Device

DELETE /rest/device/{device}?prefix={prefix}&username={username}&token={token}
  • Description: Unregister device

Ping/Pong (Connectivity)

GET /rest/ping
POST /rest/pong
  • Description: Test API connectivity
  • No authentication required

Authenticated Ping

GET /rest/pinga?prefix={prefix}&username={username}&token={token}&secure={token_secure}&ttl={ttl}
  • Description: Test connectivity with authentication
  • Parameters: ttl - Time to live

13. Monitoring & Analytics

Log Metric

POST /rest/LogMetric?prefix={prefix}&username={username}&token={token}&secure={token_secure}&name={name}
  • Description: Log custom metric
  • Body: Metric data

Get User Sessions

GET /rest/user/sessions?prefix={prefix}&username={username}&token={token}&secure={token_secure}
  • Description: Get active user sessions
  • Returns: Session details with timestamps

Get Summary Statistics

GET /rest/stats/summary?prefix={prefix}&username={username}&token={token}
  • Description: Get system summary statistics

Get Mesh Information

GET /rest/mesh?prefix={prefix}&username={username}&token={token}
  • Description: Get storage mesh topology

14. Utility Functions

Get Version

GET /rest/version
  • Description: Get API version information
  • No authentication required

Hello (Test)

GET /rest/hello?prefix={prefix}&username={username}&token={token}
  • Description: Test endpoint with authentication

Get Environment

GET /rest/getenv
  • Description: Get environment configuration
  • No authentication required

Check Block Hashes

POST /rest/blocks/check?prefix={prefix}&username={username}&token={token}
  • Description: Check which block hashes exist in storage
  • Body: Array of hashes
  • Returns: Existing hashes

Health Check

GET /rest/health?company={prefix}
  • Description: Check system health
  • Returns: Health status including ping, core, elapsed time, and sessions

15. Database Operations

Update Database

GET /rest/updatedatabase?prefix={prefix}&username={username}&token={token}
  • Description: Update database to latest schema version

Get User Groups Data

GET /rest/user/groups?prefix={prefix}&username={username}&token={token}
  • Description: Get data for all groups user belongs to

Get User Group Data

GET /rest/group/{group}/data?prefix={prefix}&username={username}&token={token}
  • Description: Get specific group data for user

Update User Group Data

PUT /rest/group/{group}/data?prefix={prefix}&username={username}&token={token}
  • Description: Update user's data within a group
  • Body: Updated data fields

Error Handling

All endpoints return standardized error responses:

{
  "error": "Error message description"
}

Success responses typically include:

{
  "error": "noerror",
  // ... response data
}

Common Response Codes

  • 200 OK - Successful request
  • 400 Bad Request - Invalid parameters
  • 401 Unauthorized - Invalid or expired token
  • 403 Forbidden - Insufficient permissions
  • 404 Not Found - Resource not found
  • 500 Internal Server Error - Server error

Rate Limiting

API requests may be subject to rate limiting. Check response headers for rate limit information.

Notes

  1. All timestamps are in Unix epoch format (milliseconds)
  2. File paths use forward slashes (/) regardless of platform
  3. Secure tokens provide additional security for sensitive operations
  4. Some endpoints support batch operations for efficiency
  5. Pagination uses offset and fetch parameters where applicable

TL;DR

This trace is taken from an actual session of logging into SureDrop, creating a group, creating a folder, then uploading a file.

Some duplicate API calls have been removed for clarity.

The order of these calls is as the original session that was recorded.

Common params

prefix = Company name and is generally mandatory
username = username of the account
token = Session token Can also be passed in as an Authorization header

Authorization token

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

This is standard basic auth using the token returned from the /session call in the password field and leaving the username field blank.

API Calls

GET /company

Case 1

Used to configure the UX expectations before logging in. Things such as the logo, the company name, whether 2FA is mandatory etc.

:method: GET
:path: /rest/company?prefix=Winter+Is+Coming


:status: 200
Response-Body:
{
  "init": "true",
  "company_name": "Winter Is Coming",
  "storage_tokan": "SureDrop",
  "brandedcompany": "Winter Is Coming",
  "version": "2.11.0",
  "app_version": "2.11.0",
  "www_portal": "https://portal.suredrop.dev",
  "brandedlogo": "https://suredrop-downloads.s3-ap-southeast-2.amazonaws.com/winter-is-coming.png",
  "brandedmessage": "Terms and Conditions of Use: \nBy using SureDrop you agree that data transmitted and/or stored by SureDrop are covered by governing laws and data may be required to be provided to a lawful third party. Where applicable, export-controlled information transmitted to a foreign jurisdiction may require a Data and Services Export Authorization approval. \n\nFor more information on SureDrop user terms and conditions email info@senetas.com.",
  "opt_2fa": "False",
  "rest_endpoints": "https://portal.suredrop.dev",
  "azure_application_id": "d8335fd2-fa2f-498a-be4b-3c539e386738",
  "azure_tenant_id": "09ff7a38-0498-4f9b-94e5-3d487e8cdd17",
  "opt_azure": "False",
  "maintenance": "",
  "optSta": "True",
  "opt_my_documents": "3",
  "staOptions": "{\"ClientId\":\"b9d047d9-1b3f-4e8c-b53d-03d63eb59f08\",\"AuthEndpoint\":\"https://idp.eu.safenetid.com/auth/realms/IZ29RN7ZI9-STA/protocol/openid-connect/auth\"}",
  "feature_toggles": ""
}

POST /session

Case 2

Used to obtain a session token (log into Suredrop)


:method: POST
:path: /rest/session?prefix=Winter+Is+Coming&username=administrator


Request-Body:
{"password":"<PASSWORD>","timeout":15,"token":""}

:status: 200
Response-Body:
{"token":"UR3_ZIzoS15WVpZIBS8D7LMMS2VkSbnRgDvcPivqdZo"}

GET /user/data

Case 3

Get generic information on a user for UX purposes


:method: GET
:path: /rest/user/data?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200
Response-Body:
  "navbarPinned": true,
  "username": "administrator",
  "FailedLoginAttempt": {
    "failed": 0,
    "maxRetries": 5
  },
  "shadow": "",
  "navbarCollapsed": false
}

GET /pinga

Case 4

Do a authorised ping on the api.


:method: GET
:path: /rest/pinga?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=


:status: 200
Response-Body:
{"pinga":"ponga"}

GET /user

Case 5

Get information on the user

:method: GET
:path: /rest/user?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200
Response-Body:
{
  "level": "3",
  "roles": {
    "Restricted": true,
    "Standard": true,
    "Power": true,
    "Admin": true,
    "Forensic": true
  },
  "has_password": "true",
  "two_factor": "none",
  "source": "local",
  "timestamp": "1627959777526",
  "first_name": "admin",
  "last_name": "admin",
  "email": "admin@suredrop.com.au",
  "mobile": "+",
  "plan": "",
  "paid": "",
  "group_name": "_users",
  "unique_id": "0000000000000000",
  "status": "ACTIVATED",
  "username": "administrator"
}

POST /rest/user/data

Case 6

Save configuration data for a user


:method: POST
:path: /rest/user/data?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=


Request-Body:
{"navbarPinned":true,"username":"administrator","FailedLoginAttempt":{"failed":0,"maxRetries":5},"shadow":"","navbarCollapsed":false}

:status: 200
Response-Body:
{"error":"noerror"}

GET /mesh

Case 7

Get a storage mesh. This is an expensive operation, so it is done once and passed back in when uploading a file. However this is an optional parameter when uploading a file, if it is missing the file upload will generate a mesh automatically for evey upload.


:method: GET
:path: /rest/mesh?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200
Response-Body:
[
  {
    "id": "876560df-1d5d-463c-bd0f-b08040daeaec",
    "name": "Backup",
    "status": "Online - Writable",
    "ip_address": "http://storage-server-backup",
    "public_ip_address": ""
  },
  {
    "id": "32577efe-e4d2-4ee8-a821-e430938cc65b",
    "name": "Primary",
    "status": "Online - Writable",
    "ip_address": "http://storage-server",
    "public_ip_address": ""
  }
]

GET /groups

Case 8

Get a list of groups

:method: GET
:path: /rest/groups?prefix=Winter+Is+Coming&role=Forensic&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200
Response-Body:
[
  {
    "group": "57897d5a-2d5d-4638-abbb-7e08d92094e3",
    "status": "ACTIVATED",
    "admin": "auto.admin",
    "description": "Automation test",
    "unique_id": "Auto",
    "templates": "Office 365"
  },
  {
    "group": "ed3a4a49-7cfc-4ca0-b8ef-ff9dbd5b6fc4",
    "status": "ACTIVATED",
    "admin": "auto.admin",
    "description": "Automation test",
    "unique_id": "Auto Admin",
    "templates": ""
  }
]

GET /group/[group]

Case 9

Get the details of a group

:method: GET
:path: /rest/group/57897d5a-2d5d-4638-abbb-7e08d92094e3?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200
Response-Body:
{
  "admin": "auto.admin",
  "copies": "2",
  "secure": "no",
  "group_status": "ACTIVATED",
  "lifetime": "NEVER",
  "unique_id": "Auto",
  "description": "Automation test"
}

GET /members/[group]/users

Case 10

Get a list of the group members

:method: GET
:path: /rest/members/57897d5a-2d5d-4638-abbb-7e08d92094e3/users?prefix=Winter+Is+Coming&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "username": "adrian",
    "first_name": "Adrian",
    "last_name": "Tankard",
    "initials": "AT",
    "email": "adrian.tankard@senetas.com",
    "mobile": "+"
  },
  {
    "username": "adrian.tankard@suredrop.com.au",
    "first_name": "Adrian",
    "last_name": "Tankard",
    "initials": "AT",
    "email": "adrian.tankard@suredrop.com.au",
    "mobile": "+"
  }
]

GET /folders/[group]

Case 11

Get a list of the folders in a group

:method: GET
:path: /rest/folders/57897d5a-2d5d-4638-abbb-7e08d92094e3?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200
Response-Body:
[
  {
    "folder": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/Votiro/Import Folder 4",
    "deleted": "no",
    "created_date": "1624919768427",
    "modified_date": "1624926475128",
    "metadata": null
  },
  {
    "folder": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/Votiro/Import Folder 4/Chess",
    "deleted": "no",
    "created_date": "1624919759339",
    "modified_date": "1624919776800",
    "metadata": null
  },
  {
    "folder": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/Votiro",
    "deleted": "no",
    "created_date": "1624925196536",
    "modified_date": "1625009529541",
    "metadata": null
  },
  {
    "folder": "/57897d5a-2d5d-4638-abbb-7e08d92094e3",
    "deleted": "no",
    "created_date": "1622162034388",
    "modified_date": "1625014271518",
    "metadata": null
  },
  {
    "folder": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/Votiro/From Votiro",
    "deleted": "no",
    "created_date": "1624920317867",
    "modified_date": "1624920342563",
    "metadata": null
  },
  {
    "folder": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/Office test",
    "deleted": "no",
    "created_date": "1625014271518",
    "modified_date": "1625014271518",
    "metadata": null
  },
  {
    "folder": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/Votiro/2021-06-30",
    "deleted": "no",
    "created_date": "1625009529541",
    "modified_date": "1625009529541",
    "metadata": null
  }
]

GET /templates/[group]/1

Case 12

Get a list of templates that have been applied to the group


:method: GET
:path: /rest/templates/57897d5a-2d5d-4638-abbb-7e08d92094e3/1?prefix=Winter+Is+Coming&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "name": "Office 365",
    "type": "POLICY"
  }
]

GET /storage/[group]

Case 13

Get the storage servers associated with a group

:method: GET
:path: /rest/storage/57897d5a-2d5d-4638-abbb-7e08d92094e3?prefix=Winter+Is+Coming&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "id": "32577efe-e4d2-4ee8-a821-e430938cc65b",
    "name": "Primary"
  },
  {
    "id": "876560df-1d5d-463c-bd0f-b08040daeaec",
    "name": "Backup"
  }
]

GET /templates

Case 14

Get a list of all of the available templates


:method: GET
:path: /rest/templates?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "name": "Automatically Deflate Files",
    "type": "POLICY",
    "data": "DEFLATE:YES"
  },
  {
    "name": "Disable Sharing",
    "type": "POLICY",
    "data": "SHARING:NO"
  },
  {
    "name": "Expire Group",
    "type": "POLICY",
    "data": "EXPIRE:YYYY:MM:DD{:HH:MM}"
  },
  {
    "name": "ICAP Example",
    "type": "POLICY",
    "data": "{\"endpoint_address\":\"http://endpoint\",\"endpoint_port\":1234,\"service\":\"service\"}"
  },
  {
    "name": "Office 365",
    "type": "POLICY",
    "data": "O365:YES"
  },
  {
    "name": "Read Only",
    "type": "POLICY",
    "data": "READONLY_GROUP:YES"
  },
  {
    "name": "Admin User",
    "type": "SECURITY",
    "data": "USERS:R,\r\nUSERS:RW,\r\nGROUPS:R,\r\nGROUPS:RW,\r\nSTORAGE:R,\r\nSTORAGE:RW,\r\nTEMPLATES:R,\r\nTEMPLATES:RW,\r\nDEVICES:R,\r\nDEVICES:RW,ADMIN:YES"
  },
  {
    "name": "Forensic User",
    "type": "SECURITY",
    "data": "USERS:R,\r\nUSERS:RW,\r\nGROUPS:R,\r\nGROUPS:RW,\r\nSTORAGE:R,\r\nSTORAGE:RW,\r\nTEMPLATES:R,\r\nTEMPLATES:RW,\r\nDEVICES:R,\r\nDEVICES:RW,FORENSIC:YES"
  },
  {
    "name": "Power User",
    "type": "SECURITY",
    "data": "USERS:R,\r\nUSERS:RW,\r\nGROUPS:R,\r\nGROUPS:RW,\r\nSTORAGE:R,\r\nSTORAGE:RW,\r\nTEMPLATES:R,\r\nTEMPLATES:RW,\r\nDEVICES:R,\r\nDEVICES:RW,POWER:YES"
  },
  {
    "name": "Restricted User",
    "type": "SECURITY",
    "data": "USERS:R,\r\nUSERS:RW,\r\nGROUPS:R,\r\nGROUPS:RW,\r\nSTORAGE:R,\r\nSTORAGE:RW,\r\nTEMPLATES:R,\r\nTEMPLATES:RW,\r\nDEVICES:R,\r\nDEVICES:RW,RESTRICTED:YES"
  },
  {
    "name": "Standard User",
    "type": "SECURITY",
    "data": "USERS:R,\r\nUSERS:RW,\r\nGROUPS:R,\r\nGROUPS:RW,\r\nSTORAGE:R,\r\nSTORAGE:RW,\r\nTEMPLATES:R,\r\nTEMPLATES:RW,\r\nDEVICES:R,\r\nDEVICES:RW,STANDARD:YES"
  }
]

GET /storage

Case 15

Calculate a storage mesh and cache it in suredrop


:method: GET
:path: /rest/storage?format=cache&prefix=Winter+Is+Coming&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
{"mesh":"f6f8c71d-da57-4d0e-902e-7be4d9586461"}

GET /template/[template name]

Case 16

Get the content of a specific template

:path: /rest/template/Office%20365?prefix=Winter+Is+Coming&username=administrator
:authority: portal.suredrop.dev


:status: 200

Response-Body:
{
  "type": "POLICY",
  "data": "O365:YES"
}

GET /users

Case 17

Get a list of the users

:method: GET
:path: /rest/users?prefix=Winter+Is+Coming&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "username": "administrator",
    "first_name": "admin",
    "last_name": "admin",
    "initials": "AA",
    "email": "admin@suredrop.com.au",
    "mobile": "+",
    "status": "ACTIVATED",
    "source": "local",
    "two_factor": "none",
    "roles": {
      "Restricted": true,
      "Standard": true,
      "Power": true,
      "Admin": true,
      "Forensic": true
    }
  },
  {
    "username": "adrian",
    "first_name": "Adrian",
    "last_name": "Tankard",
    "initials": "AT",
    "email": "adrian.tankard@senetas.com",
    "mobile": "+",
    "status": "ACTIVATED",
    "source": "STA",
    "two_factor": "none",
    "roles": {
      "Restricted": true,
      "Standard": true
    }
  },
  {
    "username": "adrian.tankard",
    "first_name": "Adrian",
    "last_name": "Tankard",
    "initials": "AT",
    "email": "adrian.tankard@senetas.com",
    "mobile": "+",
    "status": "ACTIVATED",
    "source": "STA",
    "two_factor": "none",
    "roles": {
      "Restricted": true,
      "Standard": true
    }
  }
]

GET /documents/[group]/path

Case 18

Get a list of the documents


:method: GET
:path: /rest/documents/57897d5a-2d5d-4638-abbb-7e08d92094e3?deleted=false&prefix=Winter+Is+Coming&role=Forensic&
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "url": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/20210808_130543.jpg",
    "timestamp": "1628501256914",
    "filesize": "3661871",
    "document_id": "04d829da-34c5-43a7-98c9-0c6d5b627c94",
    "number_of_blocks": "0",
    "number_of_blocks_uploaded": 0,
    "deleted": "no",
    "created_date": "1628501256835",
    "last_modified_date": "1628501256857",
    "hash": "A76FFB54A307A11E7AD587B8B0CFC28651CFB7C7E44F74181B7EB8E1EB50283B84C021F8BBB725C169B4FE3BADDB9719",
    "name": "20210808_130543.jpg",
    "metadata": null,
    "version": 1,
    "username": "auto.standard"
  },
  {
    "url": "/57897d5a-2d5d-4638-abbb-7e08d92094e3/20210808_130735.jpg",
    "timestamp": "1628501254698",
    "filesize": "3195990",
    "document_id": "87490d9a-050a-483b-8906-5bb241e6c21e",
    "number_of_blocks": "0",
    "number_of_blocks_uploaded": 0,
    "deleted": "no",
    "created_date": "1628501254641",
    "last_modified_date": "1628501254654",
    "hash": "9D624F0FD16E03B74AD06965BABB5E9C7D7BA93042AD67EA442AF6E59E3F61657AAA263F8B4E0F9DE3E8A19EA9370361",
    "name": "20210808_130735.jpg",
    "metadata": null,
    "version": 1,
    "username": "auto.standard"
  }
]

GET /settings

Case 19

Get the settings

:method: GET
:path: /rest/settings?prefix=Winter+Is+Coming&username=administrator
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
{
  "admin_email": "admin@suredrop.com.au",
  "company_email": "admin@suredrop.com.au",
  "admin_mobile": "",
  "activation_token": "",
  "storage_tokan": "SureDrop",
  "brandedcompany": "Winter Is Coming",
  "soap_endpoints": "",
  "rest_endpoints": "https://portal.suredrop.dev",
  "version": "2.11.0",
  "opt_access_stats": "true",
  "opt_ad_integration": "true",
  "opt_auditing": "true",
  "opt_device_access": "true",
  "opt_group_access": "true",
  "opt_max_devices_per_user": "999999",
  "opt_max_storage_in_gb": "9999999",
  "opt_max_users": "9999999",
  "opt_storage_access": "true",
  "opt_template_access": "true",
  "opt_user_access": "true",
  "opt_version_history": "true",
  "opt_version_history_days": "365",
  "opt_price_per_user_in_dollars": "0",
  "opt_min_number_of_users": "0",
  "opt_on_premise_allowed": "true",
  "www_portal": "https://portal.suredrop.dev",
  "download_endpoint": "",
  "opt_2fa": "False",
  "brandedlogo": "https://suredrop-downloads.s3-ap-southeast-2.amazonaws.com/winter-is-coming.png",
  "azure_application_id": "d8335fd2-fa2f-498a-be4b-3c539e386738",
  "azure_tenant_id": "09ff7a38-0498-4f9b-94e5-3d487e8cdd17",
  "azure_access_key": "9q86ud8GSduA7UTRr76ZTG4sCGehGwNugjLjXVHOjEI=",
  "opt_azure": "False",
  "kms_type": "",
  "kms_location": "",
  "opt_kms": "",
  "kms_username": "",
  "kms_password": "",
  "kms_id": "",
  "kms_name": "",
  "opt_scan": "False",
  "scan_policy": "{\"PolicyName\":\"SureDrop Alpha\",\"Token\":\"\"}",
  "scan_endpoint": "",
  "azure_options": "{\"GroupId\":\"\",\"SupportDetails\":\"**REPLACE-ME**\"}",
  "company_name": "Winter Is Coming",
  "sql_connection_string": "[hidden]",
  "maintenance": "",
  "brandedmessage": "Terms and Conditions of Use: \nBy using SureDrop you agree that data transmitted and/or stored by SureDrop are covered by governing laws and data may be required to be provided to a lawful third party. Where applicable, export-controlled information transmitted to a foreign jurisdiction may require a Data and Services Export Authorization approval. \n\nFor more information on SureDrop user terms and conditions email info@senetas.com.",
  "optSta": "True",
  "staOptions": "{\"ClientId\":\"\",\"ClientSecret\":\"\",\"AuthEndpoint\":\"https://idp.eu.safenetid.com/auth/realms/IZ29RN7ZI9-STA/protocol/openid-connect/auth\",\"TokenEndpoint\":\"https://idp.eu.safenetid.com/auth/realms/IZ29RN7ZI9-STA/protocol/openid-connect/token\",\"UserInfoEndpoint\":\"https://idp.eu.safenetid.com/auth/realms/IZ29RN7ZI9-STA/protocol/openid-connect/userinfo\",\"ConfigEndpoint\":\"https://idp.eu.safenetid.com/auth/realms/IZ29RN7ZI9-STA/.well-known/openid-configuration\",\"RestApiDetails\":{\"Endpoint\":\"https://api.eu.safenetid.com/api/v1/tenants/IZ29RN7ZI9/\",\"Key\":\"\",\"PageSize\":10},\"SupportDetails\":\"Support Admin for SureDrop Alpha - Adrian.Tankard@senetas.com\"}",
  "optLdap": "False",
  "newPurgeDays": "0",
  "opt_my_documents": "3",
  "timestamp": "1628554051434",
  "init": "true",
  "app_version": "2.11.0"
}

GET /get_summary_stats

Case 20

Gets the summary stats for the user

:method: GET
:path: /rest/get_summary_stats?prefix=Winter+Is+Coming&target_username=administrator&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "sort": "1",
    "name": "Group Memberships",
    "value": "4",
    "display": "1"
  },
  {
    "sort": "2",
    "name": "Groups Owned",
    "value": "4",
    "display": "1"
  },
  {
    "sort": "3",
    "name": "Storage Used",
    "value": "8945975415",
    "display": "1"
  },
  {
    "sort": "4",
    "name": "Documents Uploaded",
    "value": "28",
    "display": "1"
  },
  {
    "sort": "5",
    "name": "Total Filesize",
    "value": "64554179078",
    "display": "1"
  },
  {
    "sort": "6",
    "name": "Active Users",
    "value": "11",
    "display": "1"
  }
]

GET /activation

Case 21

Gets the activation details


:method: GET
:path: /rest/activation?prefix=Winter+Is+Coming&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
{
  "distributer": "SUREDROP",
  "users": "1000",
  "storage": "0",
  "start_date": "15apr2021",
  "end_date": "15apr2022",
  "type": "P",
  "num": "01",
  "signature": "Valid"
}

POST /group

Case 22

Adds a group


:method: POST
:path: /rest/group?prefix=Winter+Is+Coming&username=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Request-Body:
{"name":"This is a new group","storage":["Backup","Primary"],"description":""}

Response-Body:
{
  "error": "noerror",
  "groupId": "3d529494-2048-4923-8f01-e5a7179f82e4"
}

GET /user/data

Case 23

Gets details on a user


:method: GET
:path: /rest/user/data?prefix=Winter+Is+Coming&username=administrator&target=administrator

authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
{
  "level": "3",
  "roles": {
    "Restricted": true,
    "Standard": true,
    "Power": true,
    "Admin": true,
    "Forensic": true
  },
  "has_password": "true",
  "two_factor": "none",
  "source": "local",
  "timestamp": "1627959777526",
  "first_name": "admin",
  "last_name": "admin",
  "email": "admin@suredrop.com.au",
  "mobile": "+",
  "plan": "",
  "paid": "",
  "group_name": "_users",
  "unique_id": "0000000000000000",
  "status": "ACTIVATED",
  "username": "administrator"
}

GET /notifications/[group]

Case 24

Gets all of the notifications that have happened in a group in the last 32 seconds


:method: GET
:path: /rest/notifications/3d529494-2048-4923-8f01-e5a7179f82e4?prefix=Winter+Is+Coming&seconds=32&
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Response-Body:
[
  {
    "query_timestamp": "1628554079231"
  }
]

POST /folder/[group]/[folder name]

Case 25

Create a folder


:method: POST
:path: /rest/folder/3d529494-2048-4923-8f01-e5a7179f82e4/This%20is%20a%20new%20folder?prefix=Winter+Is+Coming&
authorization: Basic OlVSM19aSXpvUzE1V1ZwWklCUzhEN0xNTVMyVmtTYm5SZ0R2Y1BpdnFkWm8=

:status: 200

Request-Body:
{}

Response-Body:
{"error":"noerror"}

POST /document/[group]/[path and filename]

Case 26

Upload a simple file to suredrop


:method: POST
:path: /rest/document/3d529494-2048-4923-8f01-e5a7179f82e4/This%20is%20a%20new%20folder/IMG_0487.HEIC?prefix=Winter%20Is%20Coming&username=administrator&token=UR3_ZIzoS15WVpZIBS8D7LMMS2VkSbnRgDvcPivqdZo&mesh=d86d5575-92a2-4d48-adf5-96bae33b6121&raw=raw

:status: 200

Request-Body:<RAW FILE CONTENTS>

Swagger APIs

The SureDrop REST API provides comprehensive Swagger documentation that includes:

Interactive API Documentation

When Swagger is enabled on your on-premises instance, you can access the complete API documentation with:

  • Detailed request/response schemas
  • All available parameters and their types
  • Example requests and responses
  • Additional endpoints not covered in this overview

Accessing Swagger JSON

The raw Swagger JSON definition file is available at:

https://[your-suredrop-url]/api-docs/swagger.json

This file contains:

  • Complete API specification in OpenAPI/Swagger format
  • All endpoints with their full parameter lists
  • Request and response body schemas
  • Authentication requirements
  • Error response formats

Benefits of Using Swagger

  1. Auto-generated Client Libraries: Use the swagger.json to generate client libraries in various programming languages
  2. API Testing: Import into tools like Postman or Insomnia for testing
  3. Complete Documentation: Access exhaustive documentation for all endpoints
  4. Type Safety: Understand exact data types and formats expected by the API

Important Notes

  • Swagger definitions are disabled by default on cloud instances for security reasons
  • Only on-premises installations can enable Swagger access
  • The swagger.json file provides the authoritative API specification
  • This README provides an overview; always refer to swagger.json for the complete API reference

For instructions on enabling Swagger access, see the Accessing Swagger Definitions section above.

Description: Records access to a shared link by the specified user.


GET /rest/activation

Summary: Activation

Description: Activation


GET /rest/activation_shared

Summary: Activate shared

Description: Activate shared


POST /rest/add_document_block_batch/{url}

Summary: Upload Document Part

Description: Upload a multipart document part


POST /rest/add_document_block_batch_shared/{url}

Summary: Upload Document Part (Share)

Description: Upload a multipart document part from an anonymous share


POST /rest/AddDocumentNotification/{url}

Summary: Add Document Notification

Description: Add a notification for a document


POST /rest/addUserToGroupViaLink

Summary: Add User to Group via Link

Description: Adds an existing user to a group using a shared link ID


GET /rest/audits

Summary: Get Audit Activity

Description: Gets system activity for auditing purposes


GET /rest/begin_add_document/{url}

Summary: Begin Add Document Parts

Description: Start a multipart upload of a document


GET /rest/begin_add_document_shared/{url}

Summary: Begin Add Document Parts (Share)

Description: Start a multipart upload of a document from an anonymous share


GET /rest/certificate

Summary: Authorises a User

Description: Authorises a new user, users must be authorised to make them active


POST /rest/clone/{url}

Summary: Clone Documents

Description: Clone a list of documents within the same group


GET /rest/company

Summary: Get Company Info

Description: Get the info on a company name


GET /rest/content/{url}

Summary: Get Document Content

Description: Gets the content of a document


POST /rest/createRestrictedUser

Summary: Create a User

Description: Creates a new user


DELETE /rest/device

Summary: Delete device

Description: Deletes a device


POST /rest/device

Summary: Add Device

Description: Add a device to the device table


GET /rest/document/{url}

Summary: Get Document Info

Description: Get the information on a document


POST /rest/document/{url}

Summary: Upload Document

Description: Upload a document


DELETE /rest/document/{url}

Summary: Delete a Document

Description: Mark a document as deleted


PUT /rest/document/{url}

Summary: Undelete a Document

Description: Mark a document as undeleted


POST /rest/document/shared/{url}

Summary: Upload Document (Share)

Description: Upload a document from an anonymous share


GET /rest/document_count/{folder}

Summary: Document Count

Description: Count documents


DELETE /rest/document_version/{url}

Summary: Get Document Version

Description: Gets the version of a document


GET /rest/document_versions/{url}

Summary: Get Document Version

Description: Gets the version of the document


DELETE /rest/documents

Summary: Delete a List of Documents

Description: Mark a list of documents as deleted


GET /rest/documents/{folder}

Summary: Get Folder Document Info

Description: Get all of the document info for a folder...this is a rich call and should be avoided unless absolutely necessary by using /files/{folder


POST /rest/email/destination

Summary: Creates Email Destination

Description: Creates an email destination for sharing


DELETE /rest/email/destination

Summary: Delete email

Description: Delete email destination


GET /rest/email/destinations

Summary: Get User Emails

Description: Gets a list of all the user emails


GET /rest/end_add_document/{url}

Summary: End a Add Document Parts

Description: End a multipart upload of a document


GET /rest/end_add_document_shared/{url}

Summary: End a Add Document Parts (Share)

Description: End a multipart upload of a document from an anonymous share


POST /rest/feedback

Summary: SendFeedback

Description: Send feedback to the suredrop admin


PUT /rest/file/{url}

Summary: Add file

Description: Adds a file


GET /rest/file/{url}

Summary: Get File Info

Description: Lightweight call for getting minimal information on a file


POST /rest/file/{url}

Summary: Update file

Description: Updates a file


GET /rest/files/{folder}

Summary: Get Folder File Info

Description: Get all of the file info for a folder...this is an efficient call and should be used over /documents/{url}


GET /rest/files/all/{folder}

Summary: Get Group Folder Info

Description: Get all of the folders and subfolders in a group


GET /rest/files/all/share/{folder}

Summary: Get downstream files in a folder

Description: Get all of the folders and files in a group


GET /rest/folder/{url}

Summary: Get Folder Info

Description: Get lightweight information on a folder


DELETE /rest/folder/{url}

Summary: Delete Folder

Description: Mark a folder as deleted


POST /rest/folder/{url}

Summary: Create Folder

Description: Create a folder


POST /rest/folders

Summary: Create Folders

Description: Create a list of folders


DELETE /rest/folders

Summary: Delete Folders

Description: Delete a list of folders


GET /rest/folders/{folder}

Summary: Get Sub Folder Info

Description: Lightweight call for getting subfolders in this folder


POST /rest/folders/dest

Summary: Create Destination Folders

Description: Create a list of folders at a destination location


POST /rest/friend

Summary: Create Friend

Description: Creates a friend


DELETE /rest/friend

Summary: Delete friend

Description: Deletes a friend


GET /rest/friends

Summary: Get friends

Description: Returns a list of friends


GET /rest/friends/{search}

Summary: Get friends

Description: Get friends search


GET /rest/get_audit

Summary: Get Audit

Description: Retrieves audit logs based on specific filters such as time range and target user.


GET /rest/get_document_notifications

Summary: Get Document Notifications

Description: Retrieves doc notifications with filters like time range and target user.


GET /rest/get_document_notifications_by_url/{url}

Summary: Document Notifications

Description: Retrieves document notifications based on a specific URL.


GET /rest/get_session_tokens

Summary: Get Session Tokens

Description: Retrieves session tokens for users, showing recent successful login timestamps.


GET /rest/get_shared_document_files

Summary: Get Shared Files

Description: Retrieves shared document files based on specific filters such as time range and target user.


GET /rest/get_shared_documents

Summary: Get Share Documents

Description: Retrieves shared documents based on specific filters such as time range and target user.


GET /rest/get_storage_stats

Summary: Get Storage Stats

Description: Retrieves storage statistics based on interval, user, and offset.


GET /rest/get_summary_stats

Summary: Get Summary Stats

Description: Retrieves summary statistics for users and groups with filtering options.


GET /rest/getenv

Summary: Get environment

Description: Get a list of the configurable environment


POST /rest/GetNewToken

Summary: Get New Token

Description: Generates a new session token with specified timeout and read-only flag.


GET /rest/GetSharedGroupPrettyName

Summary: Get shared group pretty name

Description: Get group pretty name from an ad-hoc shared folder only.


POST /rest/group

Summary: Create Group

Description: Create a new group


GET /rest/group/{group}

Summary: Get Group

Description: Gets the group details


DELETE /rest/group/{group}

Summary: Delete Group

Description: Delete a group


PUT /rest/group/{group}

Summary: Update Group

Description: Updates a group details


POST /rest/group/{group}/admin

Summary: Update Group Owner

Description: Update the group owner


POST /rest/group/{group}/policy

Summary: Bulk Add and Remove Policies To/From a User

Description: Input JSON format {remove: [usernames], add: [usernames]}


POST /rest/group/{group}/users

Summary: Bulk Add and Remove Users To/From a Group

Description: Input JSON format {remove: [usernames], add: [usernames]}


GET /rest/group_count/{group}

Summary: Get Group User Count

Description: Retrieves the number of users in a group.


GET /rest/groups

Summary: Get Groups

Description: Gets a list of groups with basic information about each group


POST /rest/hashs/{group_name}

Summary: Check Block Hashes

Description: Checks to see which hashes already exist in the storage mesh


GET /rest/health

Summary: Check Health

Description: Check ping, core, elapsed and sessions


GET /rest/hello

Summary: Log Licence

Description: Logs license information and updates the database.


GET /rest/info/{url}

Summary: Get document info

Description: Gets the document information for unavailable files.


POST /rest/init

Summary: Init a new SureDrop Instance

Description: Sets the master key and inits a new instance


GET /rest/link

Summary: Get Shareable Links

Description: Retrieves shareable links based on specified parameters such as share ID, username, and URL hash.


POST /rest/link

Summary: Create Shareable Link

Description: Creates a shareable link for a document or folder with options for read-only access and expiration.


GET /rest/link/{share_id}

Summary: Get Shareable Link

Description: Retrieves a shareable link by its ID and redirects to the login page with the link ID.


DELETE /rest/link/{share_id}

Summary: Delete Shareable Link

Description: Deletes a shareable link by its ID.


POST /rest/link/{share_id}

Summary: Add to Shareable Link

Description: Adds a document or folder to a shareable link.


GET /rest/link/content/{urlhash}

Summary: Retrieve Content by Link

Description: Retrieves the content associated with a URL hash, using specified parameters for authentication and content retrieval.


GET /rest/link/zip/content/{urlhash}

Summary: Get Zip Content for Shared Link

Description: Retrieves the content for a shared link and packages it into a zip format.


POST /rest/log

Summary: Set minimum log level

Description: Sets the minimum log level. Defaults to Warning.


POST /rest/LogMetric

Summary:

Description:


GET /rest/Logout

Summary: Logout

Description: Invalidate a token by passing in the company, username and token


POST /rest/LogOutAllUsers

Summary: Log out all users

Description: Log all users out


PUT /rest/maintenance

Summary: Log out maintence

Description: Log all existing non admin sessions off


GET /rest/members/{group}/users

Summary: Get Group Members

Description: Gets a list of all the members of a group


GET /rest/mesh

Summary: Get Storage Mesh

Description: Get the entire storage mesh for all groups


POST /rest/message/{group_name}

Summary: Add message

Description: Adds a message


DELETE /rest/message/{group_name}

Summary: Delete Message

Description: Deletes a message


PUT /rest/message/{group_name}

Summary: Edit Message

Description: Edits a message


GET /rest/message_history/{group}

Summary: Group Message History

Description: Retrieves the message history for a specific group with pagination.


GET /rest/messages/{group}

Summary: Retrieve messages

Description: Retrieves messages for a specific group with various filtering options.


POST /rest/messages/read/{group}

Summary: Set message id in group

Description: Sets the last message id that has have seen in the group


GET /rest/messages/unread

Summary: Unread Messges

Description: Retrieves the number of unread messages for a specific user.


POST /rest/msg

Summary: Create a msg

Description: Creates a msg


POST /rest/msg/{group}

Summary: Send Group Email

Description: Sends an email message to all members of a specified group.


POST /rest/msg/shared

Summary: Get Share Information

Description: Gets the details of a share token


DELETE /rest/mydocuments

Summary: Delete My Documents

Description: Deletes the 'My Documents' folder for a specified user.


POST /rest/notes/{url}

Summary: Add Note

Description: Add a note to a document


DELETE /rest/notes/{url}

Summary: Delete Note

Description: Deletes a note


GET /rest/notes/{url}

Summary: Get Notes

Description: Gets notes


GET /rest/notifications/{group}

Summary: Get Document Activity

Description: Gets document activity for auditing purposes


POST /rest/password

Summary: Set a Password

Description: Set a user password


PUT /rest/password

Summary: Change a Password

Description: Change a user password


DELETE /rest/password

Summary: Delete a Password

Description: Remove a password for a user


GET /rest/ping

Summary: Ping Test

Description: Test that the API is alive


GET /rest/pinga

Summary: Ping Test

Description: Test that the API is alive and that credentials are valid


GET /rest/pinga/interval

Summary: Keep Alive Ping

Description: Keep a session token alive


GET /rest/received/link

Summary: Get Received Links

Description: Retrieves a list of shared links received by the specified user.


POST /rest/register_service

Summary: Register Service

Description: Registers the service with the discovery service using the provided API and activation token.


POST /rest/register_service_auth

Summary: Register Service Auth

Description: Registers the service with the discovery service.


POST /rest/rename

Summary: Rename Document

Description: Rename a document


GET /rest/report/users/csv

Summary: Get user report in CSV

Description: Downloads a CSV file of all of the users in the system


GET /rest/report/users/json

Summary: Get user report in JSON

Description: Downloads a JSON file of all of the users in the system


POST /rest/SaveOutlookAttachments/{url}

Summary: Save Outlook Attachments

Description: Saves attachments from Outlook emails to the specified location.


GET /rest/search

Summary: Search for document

Description: Search for documents


POST /rest/session

Summary: Get a Session Token

Description: get a session token by passing in the username and password


POST /rest/settings

Summary: Update Settings

Description: Update Brand/Azure or Key information


GET /rest/settings

Summary: Get Settings

Description: Get a list of all the settings


DELETE /rest/share/{share_id}

Summary: Delete Share

Description: Delete a share


POST /rest/share/email

Summary: Send Share Email

Description: Send a share email


POST /rest/share/token

Summary: Get Share Token

Description: Gets the content of a share token


POST /rest/share/urls

Summary: Add a Documents Share

Description: Share multiple documents


GET /rest/shared_content/{share_token}/{force_url}

Summary: Get Document Content (Share)

Description: Gets the content of a document from an anonymous share


GET /rest/size/folder/{url}

Summary: Get Folder Size

Description: Retrieves the size of a folder specified by the URL.


GET /rest/size/share/folder/{url}

Summary: Get Shared Folder Size

Description: Retrieves the size of a shared folder specified by the URL and share token.


GET /rest/storage

Summary: Get Storage Mesh

Description: Get the current storage mesh


GET /rest/storage/{group_name}

Summary: Get Storage

Description: Get a list of storage attached to a group


POST /rest/template/{template_type}/{template_name}

Summary: Update Template

Description: Updates the template


GET /rest/template/{template}

Summary: Get Template

Description: Get info on a template


GET /rest/templates

Summary: Get Templates

Description: gets a list of templates associated with a group


GET /rest/templates/{user_or_group}/{template_type}

Summary: Get Templates

Description: Get a list of templates attached to a group


GET /rest/unavailable_info/{url}

Summary: Unavailable Info

Description: Retrieves information about unavailable documents based on URL and document ID.


PUT /rest/undelete_folder/{url}

Summary: Undelete a folder

Description: Mark a folder as undeleted


PUT /rest/unlock_account

Summary: Unlock an account

Description: Unlock an account for a user


POST /rest/update_init

Summary: Update Init a SureDrop Instance

Description: Updates init info


POST /rest/UpdateCoreOptions

Summary: Update Core Options

Description: Updates core options


POST /rest/UpdateCoreOptionsBase64

Summary:

Description:


GET /rest/updatedatabase

Summary: Update Database

Description: Updates the database to the latest version if required.


GET /rest/user

Summary: Get User

Description: Get information on the current user


POST /rest/user

Summary: Create a User

Description: Creates a new user


PUT /rest/user

Summary: Update User

Description: Updates the current user


PUT /rest/user/{_username}/reset

Summary: Reset a User

Description: Reset a user and send an email activation


POST /rest/user/{username}/invite

Summary: Send User Invite

Description: Send an email invite to the username


POST /rest/user/{username}/policy

Summary: Edit User Policy

Description:


POST /rest/user/{username}/status

Summary: Update User Status

Description: Update the user status


POST /rest/user/data

Summary:

Description:


GET /rest/user/data

Summary: Get User Data

Description: Retrieves user data including personal information and roles.


POST /rest/user/data/get

Summary: Get User Data (POST)

Description: Retrieves user data based on POST request with target user details.


POST /rest/user/data/profile/picture

Summary: Upload Profile Picture

Description: Uploads and stores the user's profile picture from the provided URL.


DELETE /rest/user/data/profile/picture

Summary: Delete Profile Picture

Description: Removes the user's profile picture from their data.


GET /rest/user/group/data/{group}

Summary: get Group Membership

Description: Gets membership of a group


POST /rest/user/group/data/{group}

Summary: Update user Group Data

Description: Update the user group data


GET /rest/user/groups/data

Summary: Get User Groups Data

Description: Retrieves data for all groups the user is a member of.


GET /rest/user/password

Summary: Get User Password Status

Description: Get the status of a users password


POST /rest/user/qrcode

Summary: Get a User QRCode

Description: Generates a QRCode for a user for 2FA


GET /rest/user/sessions

Summary: Get sessions

Description: Return the timestamp and if it is read only


GET /rest/user/validate_qrcode

Summary: Validate a User QRCode

Description: validates a QRCode for a user for 2FA


GET /rest/user_highest_role

Summary: Get User Highest Role

Description: Gets the user details and highest role


GET /rest/users

Summary: Get Users

Description: Gets a list of all the users


GET /rest/users/{search}

Summary: Search User

Description: Get user search


GET /rest/version

Summary: Version

Description: Get the API version


POST /rest/zip

Summary: Create ZIP Download

Description: Creates a ZIP file for download based on the provided URLs of files or folders.


GET /rest/zip/{zip_token}

Summary: Get ZIP Download

Description: Retrieves a list of files and folders available for download as a ZIP based on a provided token.


POST /rest/zip/shared

Summary: Create Shared ZIP Download

Description: Creates a ZIP file for download based on the provided URLs of files or folders.


GET /rest/zip/shared/{zipToken}

Summary: Get Shared ZIP Download

Description: Retrieves a ZIP file containing shared documents based on the share token and ZIP token.


POST /rest/zip/shared/notify

Summary: Send Shared ZIP Download Notification

Description: Sends a notification when a shared ZIP file is downloaded, based on the provided share token.


Clone this wiki locally