SendSafely REST API
2.0

Documented endpoints for the SendSafely REST API. To call the endpoints a SendSafely API Key and Secret is required to calculate the request signature. This document is a draft, and should be considered a work in progress.

This is the documentation for version 2.0 of the API. Last update on Jan 13, 2021.

Base URL
https://demo.sendsafely.com/api/v2.0

package

Create package, upload encrypted data, add recipients, and finalize

Get Sent Packages

GET /package/

Get Sent Packages

Headers

Query parameters

Responses

GET /package/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/ \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string"
Response example (200)
{
  "packages": [
    {
      "packageId": "98HN-LO12",
      "packageParentId": "98HN-LO12",
      "packageUserName": "user@example.com",
      "packageUserId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7",
      "packageUpdateTimestampStr\"": "Nov 14, 2019 at 14:24",
      "packageState": "1",
      "packageStateStr": "Expired - Not Picked Up",
      "packageStateColor\"": "d9534f",
      "packageLife": 20,
      "packageUpdateTimestamp": "Nov 14, 2019 2:24:20 PM",
      "packageCode": "Ux04q0rCG04dqzzljsvvuwTfrp9iqH7uEntiK4bKb24",
      "packageBrowser": "CHROME",
      "packageOS": "Windows 10",
      "packageContainsMessage": false,
      "recipients": [
        "user1@example.com",
        "user2@example.com"
      ],
      "recipientCount": 2,
      "filenames": [
        "example.pdf",
        "example.txt"
      ],
      "contactGroups": [
        "Group 1",
        "Group 2"
      ]
    }
  ]
}

Create a new package

PUT /package/

Create a new package

Headers

Body Required

  • vdr boolean

    Optional parameter that should only be set to true if creating a Workspace package

Responses

PUT /package/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"vdr":false}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "vdr": false
}
Response example (200)
{
  "packageId": "4B88-CV9G",
  "packageCode": "E8FfOCwV4His4tlezIGi07qi0bQhxGQHcqVKYcqPcgg",
  "serverSecret": "ACbuj9OpJ7JWMqfYlGxfwH1Yjt39NYL1bQ",
  "response": "SUCCESS"
}

Get Workspace Packages

GET /package/workspaces/

Get Workspace Packages

Headers

Query parameters

Responses

  • 200 object
    • packages array[object]
      • This provides the numeric representation of package state. What follows is a mapping of packageState and the corresponding packageStateStr value: 1 Expired - Not Picked Up | 2 Expired - Pickup | 3 Active - Pickup Complete | 4 Active - Waiting for Pickup | 5 Active - Pickup In Progress | 6 Complete Expired - Pickup In Progress | 0 - In Progess | -1 Deleted - Pickup Complete | -2 TEMP | -3 Deleted - Not Picked Up | -4 Deleted - Pickup In Progress

      • String representation of the packageState property. What follows is a listing of possible packageStateStr values: Expired - Not Picked Up | Expired - Pickup | Active - Pickup Complete | Active - Waiting for Pickup | Active - Pickup In Progress | Complete Expired - Pickup In Progress | In Progess | Deleted - Pickup Complete | TEMP | Deleted - Not Picked Up | Deleted - Pickup In Progress

      • Last modified TimeStamp

      • Last Modified TimeStamp

      • workspace name

GET /package/workspaces/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/workspaces/ \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string"
Response example (200)
{
  "packages": [
    {
      "packageId": "98HN-LO12",
      "packageUserName": "user@example.com",
      "packageUserId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7",
      "packageState": "1",
      "packageStateStr": "Expired - Not Picked Up",
      "packageLife": 0,
      "packageUpdateTimestampStr": "09:21 on Dec 08, 2019",
      "packageUpdateTimestamp": "Dec 8, 2019 9:21:32 AM",
      "packageCode": "Ux04q0rCG04dqzzljsvvuwTfrp9iqH7uEntiK4bKb24",
      "packageLabel": "New Workspace",
      "packageContainsMessage": false
    }
  ]
}

Get package information

GET /package/{packageId}/

Get package information

Headers

Path parameters

  • packageId string Required

    Unique package identifier, which can be the packageId or packageCode values

GET /package/{packageId}/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/GVG2-MNZT/ \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string"
Response example (200)
{
  "packageId": "GVG2-MNZT",
  "packageCode": "M0AEMIrTQe9XWRgGDKiKta1pXobmpKwAVafWgXjnBsw",
  "serverSecret": "ACbuj9NKTkvjZ71Gc0t5zuU1xvba9XAouA",
  "recipients": [
    {
      "recipientId": "5d504769-78c4-4c0a-b982-945845ea2075",
      "email": "recip1@example.com",
      "fullName": "External User",
      "needsApproval": false,
      "recipientCode": "YN0P1G0xbS9mBSwohP9xPJSqwgKXMq4bCI5uTcx1KKM",
      "confirmations": {
        "ipAddress": "127.0.0.1",
        "timestamp": "Dec 12, 2018 2:24:38 PM",
        "timeStampStr": "Dec 12, 2018 at 14:24",
        "isMessage": true
      },
      "isPackageOwner": false,
      "checkForPublicKeys": false,
      "roleName": "VIEWER"
    }
  ],
  "contactGroups": [
    {
      "id": "string"
    }
  ],
  "files": [
    {
      "id": "string"
    }
  ],
  "directories": [
    {
      "id": "string"
    }
  ],
  "approverList": [
    {}
  ],
  "needsApproval": false,
  "state": "PACKAGE_STATE_IN_PROGRESS",
  "passwordRequired": false,
  "life": 10,
  "isVDR": false,
  "isArchived": false,
  "packageSender": "user@companyabc.com",
  "packageTimestamp": "Feb 1, 2019 2:07:28 PM",
  "rootDirectoryId": "8c3c2184-e73e-4137-be92-e9c5b5661258",
  "response": "SUCCESS"
}

Update package information

POST /package/{packageId}/

Update package information

Headers

Path parameters

Body Required

  • life integer

    Only applicable to non-workspace packages

  • label string

    Only applicable to workspaces

  • checksum string

    HmacSHA256(keycode,packageCode) - Can only be set on a Workspace and by users with the Owner or Manager role.

Responses

POST /package/{packageId}/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -d '{"life":10,"label":"My Workspace","checksum":"20ea6189a58d6618164d6b53cbc7b5dbeef2fa9a61186b13a80cf1f620987bc1"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string

# Payload
{
  "life": 10,
  "label": "My Workspace",
  "checksum": "20ea6189a58d6618164d6b53cbc7b5dbeef2fa9a61186b13a80cf1f620987bc1"
}
Response example (200)
{
  "response": "SUCCESS"
}

Delete package

DELETE /package/{packageId}/

Delete package

Headers

Responses

DELETE /package/{packageId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/package/{packageId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS"
}

Delete temp package

DELETE /package/{packageId}/temp/

Delete temp package

Headers

Responses

DELETE /package/{packageId}/temp/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/package/GVG2-MNZT/temp/ \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string"
Response example (200)
{
  "response": "SUCCESS"
}

Finalize package

POST /package/{packageId}/finalize/

Finalize the packageNote that the message property of the response contains the secure link for accessing the encrypted message. When sharing the link with a recipient, the client-side generated secret should be passed as the value of a keyCode parameter appended as a URL Fragment Identifier. For example:https://companyabc.sendsafely.com:8443/receive/?thread=JRPE-XSR2&packageCode=EsUUhFULgu2H0X0hU8uDHzCBp02k4X62tTic2V1MsBY#keyCode=XXXXYYYYY

Headers

Body Required

Responses

POST /package/{packageId}/finalize/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/finalize/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"checksum":"3d2f6810c0778001a3a3043a65d2ee458961fb59197c3d215cce29cc28621395","undisclosedRecipients":false,"password":"12345"}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "checksum": "3d2f6810c0778001a3a3043a65d2ee458961fb59197c3d215cce29cc28621395",
  "undisclosedRecipients": false,
  "password": "12345"
}
Response example (200)
{
  "approvers": [
    "string"
  ],
  "recipients": [
    "string"
  ],
  "needsLink": true,
  "response": "SUCCESS",
  "message": "https://companyabc.sendsafely.com/receive/?thread=JRPE-XSR2&packageCode=EsUUhFULgu2H0X0hU8uDHzCBp02k4X62tTic2V1MsBY"
}

Upload encrypted message

PUT /package/{packageId}/message/

Upload encrypted message. To encrypt the message, you will need to use an encryption library that implements the OpenPGP message format. Specifically, the following is required when encrypting with OpenPGP:The Symmetric-Key Algorithm should be 9 (AES-256)The Compression Algorithm should be 0 (Uncompressed)The Hash Algorithm should be 8 (SHA-256)The 256-bit encryption key is the package server secret concatenated with a random 256-bit secret generated client-side, which will be included as the "keyCode" parameter in the secure link.

Headers

Body Required

PUT /package/{packageId}/message/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/{packageId}/message/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"message":"jA0ECQMCJBbBW/qJuSBg0kwByG9kJ6LTQ6o6hY6aPXiwFeHoRw1odiEUVWmDshYHfW4DxEAxOkt2h2uKiQ6je1PrQ2xOR8RjQFsAyruMlRYawmdksE5JOH0poL36"}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "message": "jA0ECQMCJBbBW/qJuSBg0kwByG9kJ6LTQ6o6hY6aPXiwFeHoRw1odiEUVWmDshYHfW4DxEAxOkt2h2uKiQ6je1PrQ2xOR8RjQFsAyruMlRYawmdksE5JOH0poL36"
}
Response example (200)
{
  "response": "SUCCESS",
  "message": "Success"
}

Add recipient

PUT /package/{packageId}/recipient/

Add recipient

Headers

Body Required

PUT /package/{packageId}/recipient/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/{packageId}/recipient/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"email":"recip1@example.com"}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "email": "recip1@example.com"
}
Response example (200)
{
  "approvalRequired": false,
  "checkForPublicKeys": true,
  "recipientId": "cd7ba10a-e02d-4c4e-8778-839f37aa6297",
  "email": "recip1@example.com",
  "phonenumbers": [
    {
      "countryCode": 1,
      "phonenumber": 12345678,
      "wasUsedMostRecently": true
    }
  ],
  "fullName": "External User",
  "smsAuth": false,
  "isPackageOwner": false,
  "roleName": "VIEWER",
  "response": "SUCCESS"
}

Creates a new file within a package

PUT /package/{packageId}/file/

Creates a new file within a package. The unique fileId is returned as a result.

Headers

Body Required

PUT /package/{packageId}/file/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/{packageId}/file/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"filename":"example.txt","parts":4,"filesize":6884230}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "filename": "example.txt",
  "parts": 4,
  "filesize": 6884230
}
Response example (200)
{
  "response": "SUCCESS",
  "message": "string"
}

Get Upload URLs

POST /package/{packageId}/file/{fileId}/upload-urls/

Gets the file part upload URLs for the file. Up to 25 urls are returned at once.

Headers

Path parameters

Body Required

  • part integer Required

    The file part number you would like as the starting point for this group of URLs. No more than 25 file parts are returned at once.

Responses

POST /package/{packageId}/file/{fileId}/upload-urls/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/file/{fileId}/upload-urls/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"part":1}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "part": 1
}
Response example (200)
{
  "uploadUrls": [
    {
      "part": 1,
      "url": "https://sendsafely-dual-region-us.s3-accelerate.amazonaws.com/commercial/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE/11111111-2222-3333-4444-555555555555-1?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1554862678&Signature=OTP5Z0DIutXKbRRT4NwmxQG9jFk%3D"
    }
  ]
}

Sets the file upload status as complete

POST /package/{packageId}/file/{fileId}/upload-complete/

Sets the file upload status as complete. The server will verify that all segments are present within S3.

Headers

Path parameters

Body Required

POST /package/{packageId}/file/{fileId}/upload-complete/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/file/{fileId}/upload-complete/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"complete":true}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "complete": true
}
Response example (200)
{
  "response": "SUCCESS",
  "message": "true"
}

Get package publickeys

GET /package/{packageId}/public-keys/

Get package PublicKeys

Headers

Responses

GET /package/{packageId}/public-keys/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/public-keys/ \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string"
Response example (200)
{
  "publicKeys": [
    {
      "id": "string",
      "key": "-----BEGIN PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----\r\n\r\n"
    }
  ],
  "response": "SUCCESS"
}

Get package recipient by id

GET /package/{packageId}/recipient/{recipientId}/

Get package recipent by id

Headers

Path parameters

GET /package/{packageId}/recipient/{recipientId}/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/recipient/{recipientId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "approvalRequired": false,
  "checkForPublicKeys": true,
  "recipientId": "cd7ba10a-e02d-4c4e-8778-839f37aa6297",
  "email": "recip1@example.com",
  "phonenumbers": [
    {
      "countryCode": 1,
      "phonenumber": 12345678,
      "wasUsedMostRecently": true
    }
  ],
  "fullName": "External User",
  "smsAuth": false,
  "isPackageOwner": false,
  "roleName": "VIEWER",
  "response": "SUCCESS"
}

Update recipient

POST /package/{packageId}/recipient/{recipientId}/

Update Recipent

Headers

Path parameters

Body Required

Responses

POST /package/{packageId}/recipient/{recipientId}/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/recipient/{recipientId}/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -d '{"phoneNumber":"(123) 456-7890","countrycode":"US","role":"VIEWER | CONTRIBUTOR | MANAGER | OWNER"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string

# Payload
{
  "phoneNumber": "(123) 456-7890",
  "countrycode": "US",
  "role": "VIEWER | CONTRIBUTOR | MANAGER | OWNER"
}
Response example (200)
{
  "approvalRequired": false,
  "checkForPublicKeys": true,
  "recipientId": "cd7ba10a-e02d-4c4e-8778-839f37aa6297",
  "email": "recip1@example.com",
  "phonenumbers": [
    {
      "countryCode": 1,
      "phonenumber": 12345678,
      "wasUsedMostRecently": true
    }
  ],
  "fullName": "External User",
  "smsAuth": false,
  "isPackageOwner": false,
  "roleName": "VIEWER",
  "response": "SUCCESS"
}

Delete package recipient by id

DELETE /package/{packageId}/recipient/{recipientId}/

Delete package recipent by id

Headers

Path parameters

Responses

DELETE /package/{packageId}/recipient/{recipientId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/package/{packageId}/recipient/{recipientId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS"
}

Get package directory file information

GET /package/{packageId}/directory/{directoryId}/file/{fileId}

Get package directory file information

Headers

Path parameters

GET /package/{packageId}/directory/{directoryId}/file/{fileId}
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId}/file/{fileId} \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "file": {
    "file": {
      "fileId": "string",
      "fileName": "string",
      "fileSize": "string",
      "createdByEmail": "string",
      "uploaded": "Aug 22, 2019 6:27:02 PM",
      "uploadedStr": "Thu Aug 22 at 18:27 (EDT)",
      "oldVersions": [
        {
          "fileId": "string",
          "fileName": "string",
          "fileSize": "string",
          "createdByEmail": "string",
          "uploaded": "Aug 22, 2019 6:27:02 PM",
          "uploadedStr": "Thu Aug 22 at 18:27 (EDT)",
          "fileParts": 1
        }
      ],
      "fileParts": 1
    }
  },
  "response": "SUCCESS"
}

Get package file information

GET /package/{packageId}/file/{fileId}

Get package file information

Headers

Path parameters

GET /package/{packageId}/file/{fileId}
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/file/{fileId} \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "file": {
    "file": {
      "fileId": "string",
      "fileName": "string",
      "fileSize": "string",
      "createdByEmail": "string",
      "uploaded": "Aug 22, 2019 6:27:02 PM",
      "uploadedStr": "Thu Aug 22 at 18:27 (EDT)",
      "oldVersions": [
        {
          "fileId": "string",
          "fileName": "string",
          "fileSize": "string",
          "createdByEmail": "string",
          "uploaded": "Aug 22, 2019 6:27:02 PM",
          "uploadedStr": "Thu Aug 22 at 18:27 (EDT)",
          "fileParts": 1
        }
      ],
      "fileParts": 1
    }
  },
  "response": "SUCCESS"
}

Delete package file

DELETE /package/{packageId}/file/{fileId}

Delete package file

Headers

Path parameters

DELETE /package/{packageId}/file/{fileId}
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/package/{packageId}/file/{fileId} \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "message": "67ccac33-a1c7-4673-a3a6-d920e15dabfe",
  "response": "SUCCESS"
}

Get directory information

GET /package/{packageId}/directory/{directoryId}

Get directory information

Headers

Path parameters

Query parameters

Responses

GET /package/{packageId}/directory/{directoryId}
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId} \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "directoryName": "string",
  "directoryId": "string",
  "files": [
    {}
  ],
  "subDirectories": [
    {}
  ],
  "response": "SUCCESS"
}

Rename workspace directory

POST /package/{packageId}/directory/{directoryId}

Rename workspace directory

Headers

Path parameters

Body Required

Responses

POST /package/{packageId}/directory/{directoryId}
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId} \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -d '{"directoryName":"test"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string

# Payload
{
  "directoryName": "test"
}
Response example (200)
{
  "response": "SUCCESS"
}

Get package activity log

POST /package/{packageId}/activityLog/

Get package activity log

Headers

Path parameters

Responses

POST /package/{packageId}/activityLog/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/activityLog/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "activityLogEntries": [
    {
      "activityLogId": "string",
      "timestamp": "Aug 22, 2019 6:27:02 PM",
      "timestampStr": "Aug 22, 2019 at 18:27",
      "ipAddress": "string",
      "packageId": "string",
      "targetId": "string",
      "actionDescription": "Added a new file test.txt",
      "action": "FILE_CREATED",
      "user": {
        "userEmail": "string",
        "userId": "string"
      }
    }
  ],
  "response": "SUCCESS"
}

Get Download URLs for File

POST /package/{packageId}/file/{fileId}/download-urls/

Gets the file part S3 download URLs for a file. Up to 25 urls are returned at once.

Headers

Path parameters

Body

  • checksum string

    HmacSHA256(keycode,packageCode)

  • The file part number you would like as the starting point for this group of URLs. No more than 25 file parts are returned at once.

  • endSegment integer

    The file part number you would like as the ending point for this group of URLs. No more than 25 file parts are returned at once.

Responses

POST /package/{packageId}/file/{fileId}/download-urls/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/file/{fileId}/download-urls/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -d '{"checksum":"20ea6189a58d6618164d6b53cbc7b5dbeef2fa9a61186b13a80cf1f620987bc1","startSegment":1,"endSegment":25}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string

# Payload
{
  "checksum": "20ea6189a58d6618164d6b53cbc7b5dbeef2fa9a61186b13a80cf1f620987bc1",
  "startSegment": 1,
  "endSegment": 25
}
Response example (200)
{
  "downloadUrls": [
    {
      "part": 1,
      "url": "https://sendsafely-dual-region-us.s3-accelerate.amazonaws.com/commercial/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE/11111111-2222-3333-4444-555555555555-1?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1554862678&Signature=OTP5Z0DIutXKbRRT4NwmxQG9jFk%3D"
    }
  ],
  "response": "SUCCESS"
}

Get Download URLs for file in directory

POST /package/{packageId}/directory/{directoryId}/file/{fileId}/download-urls/

Gets the file part S3 download URLs for file in a directory. Up to 25 urls are returned at once.

Headers

Path parameters

Body

  • checksum string

    HmacSHA256(keycode,packageCode)

  • The file part number you would like as the starting point for this group of URLs. No more than 25 file parts are returned at once.

  • endSegment integer

    The file part number you would like as the ending point for this group of URLs. No more than 25 file parts are returned at once.

Responses

POST /package/{packageId}/directory/{directoryId}/file/{fileId}/download-urls/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId}/file/{fileId}/download-urls/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -d '{"checksum":"20ea6189a58d6618164d6b53cbc7b5dbeef2fa9a61186b13a80cf1f620987bc1","startSegment":1,"endSegment":25}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string

# Payload
{
  "checksum": "20ea6189a58d6618164d6b53cbc7b5dbeef2fa9a61186b13a80cf1f620987bc1",
  "startSegment": 1,
  "endSegment": 25
}
Response example (200)
{
  "downloadUrls": [
    {
      "part": 1,
      "url": "https://sendsafely-dual-region-us.s3-accelerate.amazonaws.com/commercial/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE/11111111-2222-3333-4444-555555555555-1?AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Expires=1554862678&Signature=OTP5Z0DIutXKbRRT4NwmxQG9jFk%3D"
    }
  ],
  "response": "SUCCESS"
}

Move workspace file

POST /package/{packageId}/directory/{directoryId}/file/{fileId}/

Move workspace file

Headers

Path parameters

Responses

POST /package/{packageId}/directory/{directoryId}/file/{fileId}/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId}/file/{fileId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "directoryId": "67ccac33-a1c7-4673-a3a6-d920e15dabfe",
  "response": "SUCCESS"
}

Delete workspace file

DELETE /package/{packageId}/directory/{directoryId}/file/{fileId}/

Delete workspace file

Headers

Path parameters

Responses

DELETE /package/{packageId}/directory/{directoryId}/file/{fileId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId}/file/{fileId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS"
}

Delete workspace directory

DELETE /package/{packageId}/directory/{directoryId}/

Delete workspace directory

Headers

Path parameters

Responses

DELETE /package/{packageId}/directory/{directoryId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS"
}

Move workspace directory

POST /package/{packageId}/move/{sourcedirectoryId}/{targetdirectoryId}/

Move workspace directory

Headers

Path parameters

Responses

POST /package/{packageId}/move/{sourcedirectoryId}/{targetdirectoryId}/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/move/{sourcedirectoryId}/{targetdirectoryId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS"
}

Get organization packages

POST /package/organization/search/

Returns packages in the current user's organization based on provided search criteria. The search defaults to returning all packages up to the current date and time, if a specific value is not passed for each search criteria. A maximum of 100 records will be returned per method call. The calling user must be a SendSafely Enterprise Administrator.

Headers

Query parameters

Body Required

POST /package/organization/search/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/organization/search/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string" \
 -d '{"fromDate":"01/01/2019","filename":"","sender":"","toDate":"03/01/2019","recipient":"","status":"ACTIVE"}'
Request example
# Headers
ss-api-key: string
ss-request-timestamp: string
ss-request-signature: string

# Payload
{
  "fromDate": "01/01/2019",
  "filename": "",
  "sender": "",
  "toDate": "03/01/2019",
  "recipient": "",
  "status": "ACTIVE"
}
Response example (200)
{
  "packages": [
    {
      "packageId": "GVG2-MNZT",
      "packageCode": "M0AEMIrTQe9XWRgGDKiKta1pXobmpKwAVafWgXjnBsw",
      "serverSecret": "ACbuj9NKTkvjZ71Gc0t5zuU1xvba9XAouA",
      "recipients": [
        {
          "recipientId": "5d504769-78c4-4c0a-b982-945845ea2075",
          "email": "recip1@example.com",
          "fullName": "External User",
          "needsApproval": false,
          "recipientCode": "YN0P1G0xbS9mBSwohP9xPJSqwgKXMq4bCI5uTcx1KKM",
          "confirmations": {
            "ipAddress": "127.0.0.1",
            "timestamp": "Dec 12, 2018 2:24:38 PM",
            "timeStampStr": "Dec 12, 2018 at 14:24",
            "isMessage": true
          },
          "isPackageOwner": false,
          "checkForPublicKeys": false,
          "roleName": "VIEWER"
        }
      ],
      "contactGroups": [
        {
          "id": "string"
        }
      ],
      "files": [
        {
          "id": "string"
        }
      ],
      "directories": [
        {
          "id": "string"
        }
      ],
      "approverList": [
        {}
      ],
      "needsApproval": false,
      "state": "PACKAGE_STATE_IN_PROGRESS",
      "passwordRequired": false,
      "life": 10,
      "isVDR": false,
      "isArchived": false,
      "packageSender": "user@companyabc.com",
      "packageTimestamp": "Feb 1, 2019 2:07:28 PM",
      "rootDirectoryId": "8c3c2184-e73e-4137-be92-e9c5b5661258",
      "response": "SUCCESS"
    }
  ]
}

Create workspace subdirectory

PUT /package/{packageId}/directory/{directoryId}/subdirectory/

Create workspace subdirectory

Headers

Path parameters

Body Required

PUT /package/{packageId}/directory/{directoryId}/subdirectory/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/{packageId}/directory/{directoryId}/subdirectory/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json" \
 -d '{"directoryName":"string"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: application/json

# Payload
{
  "directoryName": "string"
}
Response example (200)
{
  "created": "Jul 14, 2020 9:38:27 AM",
  "createdStr": "Tue Jul 14 at 09:38 (EDT)",
  "name": "test",
  "directoryId": "a7220901-82b5-4d5f-9039-66f6f19765b4",
  "message": "a7220901-82b5-4d5f-9039-66f6f19765b4",
  "response": "SUCCESS"
}

Get package recipient public keys

GET /package/{packageId}/{recipientId}/public-keys/

Headers

Path parameters

Responses

GET /package/{packageId}/{recipientId}/public-keys/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/{recipientId}/public-keys/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "publicKeys": [
    {
      "id": "string",
      "key": "-----BEGIN PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----\r\n\r\n"
    }
  ],
  "response": "SUCCESS"
}

Add recipients to package

PUT /package/{packageId}/recipients/

Headers

Body Required

PUT /package/{packageId}/recipients/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/{packageId}/recipients/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json" \
 -d '{"emails":["string"]}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: application/json

# Payload
{
  "emails": [
    "string"
  ]
}
Response example (200)
{
  "approvalRequired": false,
  "recipients": [
    {
      "recipientId": "5d504769-78c4-4c0a-b982-945845ea2075",
      "email": "recip1@example.com",
      "fullName": "External User",
      "needsApproval": false,
      "recipientCode": "YN0P1G0xbS9mBSwohP9xPJSqwgKXMq4bCI5uTcx1KKM",
      "confirmations": {
        "ipAddress": "127.0.0.1",
        "timestamp": "Dec 12, 2018 2:24:38 PM",
        "timeStampStr": "Dec 12, 2018 at 14:24",
        "isMessage": true
      },
      "isPackageOwner": false,
      "checkForPublicKeys": false,
      "roleName": "VIEWER"
    }
  ],
  "response": "SUCCESS"
}

Copies a file from a SendSafely Package to a SendSafely Workspace

POST /package/{packageId}/file/{fileId}/copy

Headers

Path parameters

Body Required

Responses

POST /package/{packageId}/file/{fileId}/copy
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/package/{packageId}/file/{fileId}/copy \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json" \
 -d '{"targetPackageId":"string","fileKey":"string","targetDirectoryId":"string","uploadType":"string"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: application/json

# Payload
{
  "targetPackageId": "string",
  "fileKey": "string",
  "targetDirectoryId": "string",
  "uploadType": "string"
}
Response example (200)
{
  "response": "SUCCESS"
}

Get received packages

GET /package/received/

Get received packages

Headers

Query parameters

Responses

GET /package/received/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/received/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "packages": [
    {
      "packageId": "98HN-LO12",
      "packageParentId": "98HN-LO12",
      "packageUserName": "user@example.com",
      "packageOriginatorUserId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7",
      "packageUpdateTimestampStr\"": "Nov 14, 2019 at 14:24",
      "packageState": "1",
      "packageStateStr": "Expired - Not Picked Up",
      "packageStateColor\"": "d9534f",
      "packageUpdateTimestamp": "Nov 14, 2019 2:24:20 PM",
      "packageCode": "Ux04q0rCG04dqzzljsvvuwTfrp9iqH7uEntiK4bKb24",
      "packageBrowser": "CHROME",
      "packageOS": "Windows 10",
      "packageContainsMessage": false,
      "timeZone": "America/New_York",
      "filenames": [
        "example.pdf",
        "example.txt"
      ]
    }
  ]
}

Get expired packages

GET /package/archived/

Get expired packages

Headers

Query parameters

Responses

GET /package/archived/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/archived/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "packages": [
    {
      "packageId": "98HN-LO12",
      "packageParentId": "98HN-LO12",
      "packageUserName": "user@example.com",
      "packageOriginatorUserId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7",
      "packageUpdateTimestampStr\"": "Nov 14, 2019 at 14:24",
      "packageState": "1",
      "packageStateStr": "Expired - Not Picked Up",
      "packageStateColor\"": "d9534f",
      "packageLife": 20,
      "packageUpdateTimestamp": "Nov 14, 2019 2:24:20 PM",
      "packageCode": "Ux04q0rCG04dqzzljsvvuwTfrp9iqH7uEntiK4bKb24",
      "packageBrowser": "CHROME",
      "packageOS": "Windows 10",
      "packageContainsMessage": false,
      "timeZone": "America/New_York",
      "recipients": [
        "user1@example.com",
        "user2@example.com"
      ],
      "recipientCount": 2,
      "filenames": [
        "example.pdf",
        "example.txt"
      ],
      "contactGroups": [
        "Group 1",
        "Group 2"
      ]
    }
  ]
}

Add Contact Group to Package as Recipients

PUT /package/{packageId}/group/{groupId}/

Add Contact Group to Package as Recipients

Headers

Path parameters

PUT /package/{packageId}/group/{groupId}/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/{packageId}/group/{groupId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "contactGroupId": "67ccac33-a1c7-4673-a3a6-d920e15dabfe",
  "contactGroupName": "Example Group",
  "contactGroupUserEmails": [
    "user@example.com",
    "user2@example.com"
  ],
  "response": "SUCCESS"
}

Delete Contact Group from Package

DELETE /package/{packageId}/group/{groupId}/

Delete Contact Group from Package

Headers

Path parameters

Responses

DELETE /package/{packageId}/group/{groupId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/package/{packageId}/group/{groupId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS"
}

Get Package Message

GET /package/{packageId}/message/{checksum}/

Get Package Message

Headers

Path parameters

GET /package/{packageId}/message/{checksum}/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/message/3d2f6810c0778001a3a3043a65d2ee458961fb59197c3d215cce29cc28621395/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "message": "Just a test message",
  "response": "SUCCESS"
}

user

Get, modify user

Get user information

GET /user/

Get user information

Headers

GET /user/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/user/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "id": "string",
  "email": "string",
  "clientKey": "string",
  "firstName": "string",
  "lastName": "string",
  "betaUser": false,
  "adminUser": true,
  "publicKey": false,
  "packageLife": 10,
  "response": "SUCCESS"
}

Get user contact groups

GET /user/groups/

Get user contact groups

Headers

GET /user/groups/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/user/groups/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "contactGroups": [
    {
      "contactGroupId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7",
      "contactGroupName": "Test Group 1",
      "contactGroupIsOrganizationGroup": false,
      "users": [
        {
          "userEmail": "user@example",
          "userId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7"
        }
      ]
    }
  ],
  "response": "SUCCESS"
}

contact group

Create/delete contact group, add/delete contact group user

Create contact group

PUT /group/

Create contact group

Headers

PUT /group/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/group/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -d '{"groupName":"string","isEnterpriseGroup":false}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string

# Payload
{
  "groupName": "string",
  "isEnterpriseGroup": false
}
Response example (200)
{
  "contactGroupId": "string",
  "contactGroupName": "string",
  "contactGroupUserEmails": [
    "string"
  ],
  "response": "SUCCESS"
}

Add contact group user

PUT /group/{groupId}/user/

Headers

Body Required

PUT /group/{groupId}/user/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/group/{groupId}/user/ \
 -H "Content-Type: application/json" \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -d '{"userEmail":"string"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string

# Payload
{
  "userEmail": "string"
}
Response example (200)
{
  "userId": "string",
  "userEmail": "string",
  "response": "SUCCESS"
}

Delete contact group user

DELETE /group/{groupId}/{userId}/

Delete contact group user

Headers

Path parameters

Responses

DELETE /group/{groupId}/{userId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/group/{groupId}/{userId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS"
}

Delete contact group

DELETE /group/{groupId}/

Delete contact group

Headers

DELETE /group/{groupId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/group/{groupId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string"
Response example (200)
{
  "response": "SUCCESS",
  "message": "Contact Group has been deleted"
}

key management

Sync keycodes, add/get/delete public key

Sync keycodes by public key id

GET /sync/{publicKeyId}/

Sync keycodes by public key id

Headers

Responses

GET /sync/{publicKeyId}/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/sync/{publicKeyId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "keycodes": [
    "string"
  ],
  "publicKeys": [
    {
      "id": "string",
      "key": "-----BEGIN PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----\r\n\r\n"
    }
  ],
  "response": "SUCCESS"
}

Add public key

PUT /public-key/

Add public key

Headers

Body Required

PUT /public-key/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/public-key/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json" \
 -d '{"publicKey":"string","description":"string"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: application/json

# Payload
{
  "publicKey": "string",
  "description": "string"
}
Response example (200)
{
  "id": "string",
  "description": "string",
  "dateStr": "18:27 on Aug 22, 2019",
  "response": "SUCCESS"
}

Get public key by id

GET /public-key/{publicKeyId}/

Get public key by id

Headers

Responses

GET /public-key/{publicKeyId}/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/public-key/{publicKeyId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "id": "string",
  "publicKey": "string",
  "response": "SUCCESS"
}

Delete public key

DELETE /public-key/{publicKeyId}/

Delete public key

Headers

Responses

DELETE /public-key/{publicKeyId}/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/public-key/{publicKeyId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "response": "SUCCESS"
}

dropzone management

add/get/delete dropzone recipients and update dropzone configurations

Get dropzone recipients

GET /user/dropzone-recipients/

Get dropzone recipients

Headers

GET /user/dropzone-recipients/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/user/dropzone-recipients/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "recipientEmailAddresses": [
    "string"
  ],
  "response": "SUCCESS"
}

Add dropzone recipients

PUT /user/dropzone-recipients/

Add dropzone recipients

Headers

Body Required

Responses

PUT /user/dropzone-recipients/
curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/user/dropzone-recipients/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json" \
 -d '{"emails":["string"]}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: application/json

# Payload
{
  "emails": [
    "string"
  ]
}
Response example (200)
{
  "response": "SUCCESS",
  "message": {
    "success": "Your list has been updated. It may take up to 30 minutes for all active items to be updated.",
    "successEmails": [
      "string"
    ],
    "warnEmails": [
      "string"
    ],
    "failEmails": [
      "string"
    ]
  }
}

Delete dropzone recipient

DELETE /user/dropzone-recipients/

Delete dropzone recipient

Headers

DELETE /user/dropzone-recipients/
curl \
 -X DELETE https://demo.sendsafely.com/api/v2.0/user/dropzone-recipients/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "response": "SUCCESS",
  "message": "Recipient Removed"
}

Update dropzone config

POST /user/{userId}/dropzone/config/

Update dropzone config

Headers

Path parameters

Body Required

Responses

POST /user/{userId}/dropzone/config/
curl \
 -X POST https://demo.sendsafely.com/api/v2.0/user/{userId}/dropzone/config/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json" \
 -d '{"dropzoneTextLabel":"string","dropzoneNotificationType":0,"dropzonePostUrl":"https://test.com","dropzoneEnableMessage":true,"dropzoneRequireAuthentication":"true","dropzoneRestrictDownload":"true"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: application/json

# Payload
{
  "dropzoneTextLabel": "string",
  "dropzoneNotificationType": 0,
  "dropzonePostUrl": "https://test.com",
  "dropzoneEnableMessage": true,
  "dropzoneRequireAuthentication": "true",
  "dropzoneRestrictDownload": "true"
}
Response example (200)
{
  "dropzoneRecipients": [
    "string"
  ],
  "dropzoneLife": 5,
  "dropzoneExternalPostUrl": "string",
  "dropzoneTextLabel": "string",
  "dropzoneEnableSecureMessage": false,
  "dropzoneRequireAuthentication": true,
  "dropzoneNotificationType": 0,
  "dropzoneUrl": "string",
  "publicKey": "string",
  "publicSecret": "string",
  "isDropzoneEnabled": true,
  "response": "string",
  "message": "Dropzone setting successfully updated"
}

recipient

Get recipient package information

Get recipient packages history

GET /recipient/history/{recipientEmail}/

Get recipient packages history

Headers

GET /recipient/history/{recipientEmail}/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/recipient/history/{recipientEmail}/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "packages": [
    {
      "packageId": "98HN-LO12",
      "packageUserName": "user@example.com",
      "packageUserId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7",
      "packageState": 0,
      "packageLife": 20,
      "packageBrowser": "CHROME",
      "packageOS": "Windows 10",
      "packageContainsMessage": false,
      "recipient": {
        "recipientId": "4d949bbd-2cf9-4c7d-9c3b-e7d957af7da5",
        "email": "user@example.com",
        "needsApproval": false,
        "isPackageOwner": false,
        "checkForPublicKeys": false,
        "confirmations": [
          {
            "ipAddress": "127.0.0.1",
            "timestamp": "Dec 12, 2018 2:24:38 PM",
            "timeStampStr": "Dec 12, 2018 at 14:24",
            "isMessage": true
          }
        ]
      },
      "filenames": [
        "example.pdf",
        "example.txt"
      ]
    }
  ],
  "message": "Recipient History response.",
  "response": "SUCCESS"
}

config

Verify credentials

Verify Credentials

GET /config/verify-credentials/

Verify Credentials

Headers

GET /config/verify-credentials/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/config/verify-credentials/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "requiresApprover": false,
  "response": "SUCCESS",
  "message": "user@example.com"
}

enterprise

Get enterprise information

Get enterprise information

GET /enterprise/

Get enterprise information

Headers

GET /enterprise/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/enterprise/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "host": "https://demo.sendsafely.com",
  "systemName": "Secure Data Transfer System, powered by SendSafely",
  "allowUndisclosedRecipients": false,
  "outlookBeta": false,
  "messageEncryption": false,
  "linkColor": "FFFFFF",
  "response": "SUCCESS"
}

Get enterprise contact groups

GET /enterprise/groups/

Get enterprise contact groups

Headers

GET /enterprise/groups/
curl \
 -X GET https://demo.sendsafely.com/api/v2.0/enterprise/groups/ \
 -H "ss-api-key: string" \
 -H "ss-request-signature: string" \
 -H "ss-request-timestamp: string" \
 -H "content-type: application/json"
Response example (200)
{
  "contactGroups": [
    {
      "contactGroupId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7",
      "contactGroupName": "Test Group 1",
      "contactGroupIsOrganizationGroup": true,
      "users": [
        {
          "userEmail": "user@example",
          "userId": "048ddae1-1f7d-4a97-8557-bdd36387f4b7"
        }
      ]
    }
  ],
  "response": "SUCCESS"
}