SendSafely REST API

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 Sent Packages

Headers
  • ss-api-key Required / string

    SendSafely API Key (API_KEY)

  • ss-request-timestamp Required / string

    TIMESTAMP (ex: 2014-01-14T22:24:00+0000)

  • ss-request-signature Required / string

    HmacSHA256(API_SECRET, API_KEY + URL_PATH + TIMESTAMP + REQUEST_BODY)

Query parameters
  • rowIndex integer

    Starting row for data

  • pageSize integer

    Number of rows to return, maximum of 100

Responses
  • 200 object
    • packages array[object]
      • packageId string
      • packageParentId string
      • packageUserName string
      • packageUserId string
      • packageUpdateTimestampStr" string

        Package Creation TimeStamp

      • packageState integer

        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

      • packageStateStr string

        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

      • packageStateColor" string

        color in hex code

      • packageLife integer
      • packageUpdateTimestamp string

        Package Creation TimeStamp

      • packageCode string
      • packageBrowser string
      • packageOS string
      • packageContainsMessage boolean
      • recipients array[string]
      • recipientCount integer
      • filenames array[string]
      • contactGroups array[string]
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

Create a new package

Headers
  • ss-api-key Required / string

    SendSafely API Key (API_KEY)

  • ss-request-timestamp Required / string

    TIMESTAMP (ex: 2014-01-14T22:24:00+0000)

  • ss-request-signature Required / string

    HmacSHA256(API_SECRET, API_KEY + URL_PATH + TIMESTAMP + REQUEST_BODY)

Body
  • vdr boolean

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

Responses
  • 200 object
    • packageId string
    • packageCode string
    • serverSecret string
    • response string
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 Workspace Packages

Headers
  • ss-api-key Required / string

    SendSafely API Key (API_KEY)

  • ss-request-timestamp Required / string

    TIMESTAMP (ex: 2014-01-14T22:24:00+0000)

  • ss-request-signature Required / string

    HmacSHA256(API_SECRET, API_KEY + URL_PATH + TIMESTAMP + REQUEST_BODY)

Query parameters
  • rowIndex integer

    Starting row for data

  • pageSize integer

    Number of rows to return, maximum of 100

  • sortField string

    Column field for sorting

  • sortOrder string

    Sort ordering

Responses
  • 200 object
    • packages array[object]
      • packageId string
      • packageUserName string
      • packageUserId string
      • packageState integer

        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

      • packageStateStr string

        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

      • packageLife integer
      • packageUpdateTimestampStr string

        Last modified TimeStamp

      • packageUpdateTimestamp string

        Last Modified TimeStamp

      • packageCode string
      • packageLabel string

        workspace name

      • packageContainsMessage boolean
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 information

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string

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

Responses
  • 200 object
    • packageId string
    • packageCode string
    • serverSecret string
    • recipients array[object]
      • recipientId string
      • email string
      • fullName string
      • needsApproval boolean
      • recipientCode string
      • confirmations object
        • ipAddress string
        • timestamp string
        • timeStampStr string
        • isMessage boolean
      • isPackageOwner boolean
      • checkForPublicKeys boolean
      • roleName string
    • contactGroups array[object]
      • id string
    • files array[object]
      • id string
    • directories array[object]
      • id string
    • approverList array[object]
    • needsApproval boolean
    • state string
    • passwordRequired boolean
    • life integer
    • isVDR boolean
    • isArchived boolean
    • packageSender string
    • packageTimestamp string
    • rootDirectoryId string
    • response string
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

Update package information

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
Body
  • 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
  • 200 object
    • response string
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

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
Responses
  • 200 object
    • response string
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 temp package

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
Responses
  • 200 object
    • response string
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

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
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
Body
  • checksum Required / string
  • undisclosedRecipients boolean

    Optional, default is false, set to true if package has no recipients

  • password string

    Optional unless password is set

Responses
  • 200 object
    • approvers array[string]
    • recipients array[string]
    • needsLink boolean
    • response string
    • message string
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

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
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
Body
  • message Required / string
Responses
  • 200 object
    • response string
    • message string
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

Add recipient

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
Body
  • email Required / string
Responses
  • 200 object
    • approvalRequired boolean
    • checkForPublicKeys boolean
    • recipientId string
    • email string
    • phonenumbers array[object]
      • countryCode integer
      • phonenumber integer
      • wasUsedMostRecently boolean
    • fullName string
    • smsAuth boolean
    • isPackageOwner boolean
    • roleName string
    • response string
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

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

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
Body
  • filename string
  • parts integer
  • filesize number
Responses
  • 200 object
    • response string
    • message string
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

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

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
  • fileId Required / string
Body
  • part Required / integer

    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
  • 200 object
    • uploadUrls array[object]
      • part integer
      • url string
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

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

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
  • fileId Required / string
Body
  • complete Required / boolean
Responses
  • 200 object
    • response string
    • message string
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 PublicKeys

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
Responses
  • 200 object
    • publicKeys array[object]
      • id string
      • key string
    • response string
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 keycode by public key id

Add Keycode to Package

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
  • publicKeyId Required / string
Responses
  • 200 object
    • message string
    • response string
GET /package/{packageId}/link/{publicKeyId}/
$ curl \
 -X GET https://demo.sendsafely.com/api/v2.0/package/{packageId}/link/{publicKeyId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string"
Response example (200)
{
  "message": "-----BEGIN PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----\r\n\r\n",
  "response": "SUCCESS"
}

Add Keycode by public key id

Add Keycode to Package

Headers
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Path parameters
  • packageId Required / string
  • publicKeyId Required / string
Responses
  • 200 object
    • response string
PUT /package/{packageId}/link/{publicKeyId}/
$ curl \
 -X PUT https://demo.sendsafely.com/api/v2.0/package/{packageId}/link/{publicKeyId}/ \
 -H "ss-api-key: string" \
 -H "ss-request-timestamp: string" \
 -H "ss-request-signature: string"
Response example (200)
{
  "response": "SUCCESS"
}

Get package recipient by id

Get package recipent by id

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • recipientId Required / string
Responses
  • 200 object
    • approvalRequired boolean
    • checkForPublicKeys boolean
    • recipientId string
    • email string
    • phonenumbers array[object]
      • countryCode integer
      • phonenumber integer
      • wasUsedMostRecently boolean
    • fullName string
    • smsAuth boolean
    • isPackageOwner boolean
    • roleName string
    • response string
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

Update Recipent

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • recipientId Required / string
Body
  • phoneNumber string

    (123) 456-7890

  • countrycode string

    US

  • role string

    VIEWER | CONTRIBUTOR | MANAGER | OWNER

Responses
  • 200 object
    • approvalRequired boolean
    • checkForPublicKeys boolean
    • recipientId string
    • email string
    • phonenumbers array[object]
      • countryCode integer
      • phonenumber integer
      • wasUsedMostRecently boolean
    • fullName string
    • smsAuth boolean
    • isPackageOwner boolean
    • roleName string
    • response string
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 recipent by id

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • recipientId Required / string
Responses
  • 200 object
    • response string
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 directory file information

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • directoryId Required / string
  • fileId Required / string
Responses
  • 200 object
    • file object
      • file object
        • fileId string
        • fileName string
        • fileSize string
        • createdByEmail string
        • uploaded string
        • uploadedStr string
        • oldVersions array[object]
          • fileId string
          • fileName string
          • fileSize string
          • createdByEmail string
          • uploaded string
          • uploadedStr string
          • fileParts integer
        • fileParts integer
    • response string
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 file information

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • fileId Required / string
Responses
  • 200 object
    • file object
      • file object
        • fileId string
        • fileName string
        • fileSize string
        • createdByEmail string
        • uploaded string
        • uploadedStr string
        • oldVersions array[object]
          • fileId string
          • fileName string
          • fileSize string
          • createdByEmail string
          • uploaded string
          • uploadedStr string
          • fileParts integer
        • fileParts integer
    • response string
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 file

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • fileId Required / string
Responses
  • 200 object
    • message string
    • response string
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 directory information

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • directoryId Required / string
Query parameters
  • directoryIndex integer

    The index for paging subdirectories within the current directory

  • fileIndex integer

    The index for paging files within the current directory

  • sortField string

    Column field for sorting

  • sortOrder string

    Sort ordering

Responses
  • 200 object
    • directoryName string
    • directoryId string
    • files array[object]
    • subDirectories array[object]
    • response string
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

Rename workspace directory

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • directoryId Required / string
Body
  • directoryName string

    Workspace directory name

Responses
  • 200 object
    • response string
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

Get package activity log

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
Responses
  • 200 object
    • activityLogEntries array[object]
      • activityLogId string
      • timestamp string
      • timestampStr string
      • ipAddress string
      • packageId string
      • targetId string
      • actionDescription string
      • action string
      • user object
        • userEmail string
        • userId string
    • response string
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

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

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • fileId Required / string
Body
  • checksum string

    HmacSHA256(keycode,packageCode)

  • startSegment integer

    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
  • 200 object
    • downloadUrls array[object]
      • part integer
      • url string
    • response string
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

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

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • directoryId Required / string
  • fileId Required / string
Body
  • checksum string

    HmacSHA256(keycode,packageCode)

  • startSegment integer

    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
  • 200 object
    • downloadUrls array[object]
      • part integer
      • url string
    • response string
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

Move workspace file

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • directoryId Required / string
  • fileId Required / string
Responses
  • 200 object
    • directoryId string
    • response string
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 workspace file

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • directoryId Required / string
  • fileId Required / string
Responses
  • 200 object
    • response string
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 workspace directory

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • directoryId Required / string
Responses
  • 200 object
    • response string
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

Move workspace directory

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Path parameters
  • packageId Required / string
  • sourcedirectoryId Required / string
  • targetdirectoryId Required / string
Responses
  • 200 object
    • response string
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

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
  • ss-api-key Required / string
  • ss-request-timestamp Required / string
  • ss-request-signature Required / string
Query parameters
  • rowIndex integer

    Starting row for data

  • pageSize integer

    Number of rows to return, maximum of 100

Body
  • fromDate string

    01/01/2019

  • toDate string

    01/01/2019

  • filename string
  • sender string
  • recipient string
  • status string

    all | picked-up | incomplete | archived | active | expired

Responses
  • 200 object
    • packages array[object]
      • packageId string
      • packageCode string
      • serverSecret string
      • recipients array[object]
        • recipientId string
        • email string
        • fullName string
        • needsApproval boolean
        • recipientCode string
        • confirmations object
          • ipAddress string
          • timestamp string
          • timeStampStr string
          • isMessage boolean
        • isPackageOwner boolean
        • checkForPublicKeys boolean
        • roleName string
      • contactGroups array[object]
        • id string
      • files array[object]
        • id string
      • directories array[object]
        • id string
      • approverList array[object]
      • needsApproval boolean
      • state string
      • passwordRequired boolean
      • life integer
      • isVDR boolean
      • isArchived boolean
      • packageSender string
      • packageTimestamp string
      • rootDirectoryId string
      • response string
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

Create workspace subdirectory

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
  • content-type Required / string

    Default value is application/json.

Path parameters
  • packageId Required / string
  • directoryId Required / string
Body
  • directoryName string
Responses
  • 200 object
    • created string
    • createdStr string
    • name string
    • directoryId string
    • message string
    • response string
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: string" \
 -d '{"directoryName":"string"}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: string

# 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

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
  • content-type Required / string

    Default value is application/json.

Path parameters
  • packageId Required / string
  • recipientId Required / string
Responses
  • 200 object
    • publicKeys array[object]
      • id string
      • key string
    • response string
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: string"
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

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
  • content-type Required / string

    Default value is application/json.

Path parameters
  • packageId Required / string
Body
  • emails array[string]
Responses
  • 200 object
    • approvalRequired boolean
    • recipients array[object]
      • recipientId string
      • email string
      • fullName string
      • needsApproval boolean
      • recipientCode string
      • confirmations object
        • ipAddress string
        • timestamp string
        • timeStampStr string
        • isMessage boolean
      • isPackageOwner boolean
      • checkForPublicKeys boolean
      • roleName string
    • response string
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: string" \
 -d '{"emails":["string"]}'
Request example
# Headers
ss-api-key: string
ss-request-signature: string
ss-request-timestamp: string
content-type: string

# 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

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
  • content-type Required / string

    Default value is application/json.

Path parameters
  • packageId Required / string
  • fileId Required / string
Body
  • targetPackageId string
  • fileKey string
  • targetDirectoryId string
  • uploadType string
Responses
  • 200 object
    • response string
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: string" \
 -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: string

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

Get received packages

Get received packages

Headers
  • ss-api-key Required / string
  • ss-request-signature Required / string
  • ss-request-timestamp Required / string
Query parameters
  • rowIndex integer

    Starting row for data

  • pageSize integer

    Number of rows to return, maximum of 100

Responses
  • 200 object
    • packages array[object]
      • packageId