The SendSafely Client API allows programmatic access to SendSafely for sending files. Main purpose of the Client API is to provide a native interface for programmers to interact with SendSafely, that does not require intricate knowledge of the client-side cryptographic details that make SendSafely more secure than other file transfer platforms. The Client API provides a layer of abstraction from our REST API, which requires users to perform several complex tasks in a correct manner.
- Key Generation - Encryption Keys generate by the Client API are done so in a cryptographically secure manner, ensuring that a unique and unpredictable key value are generated each time.
- File Encryption - Files submitted using the API are encrypted according to the OpenPGP specification, alleviating the need for you to be familiar with how to implement this encryption specification.
- Server Authentication - The Client API uses your API Key and API Secret to cryptographically authenticate every JSON Server API Request. You provide the API Key and API Secret to the Client API, and it will handle the process of generating signatures on every request.
- File Segmentation and Upload Progress - Files are automatically segmented into smaller chunks by the Client API and then uploaded to the server. The API provides a mechanism to alert your code of the upload progress, but you do not need to worry about reconnecting if the network connection becomes temporarily interrupted.
In summary, by using the Client API the process of interfacing with SendSafely is greatly simplified.
Key Concepts
In order to effectively use the SendSafely Client API, you should be familiar with some key concepts.
A package is the internal term that SendSafely uses to refer to a set of files that are sent to one or more people.
- Each package is accessible using a single link unique link (known as the package link)
- A package can have multiple files and multiple recipients
- All recipients of a package can access all files contained within the package
- Each package must have at least one recipient and one file
A recipient is one or more individuals that are authorized to retrieve the package and its contents.
- Each recipient is identified by a unique email address
- A mobile phone number can also be provided for each recipient if SMS authentication is desired
- You must provide the package link to each recipient so they can access the package
- Each package can have up to 99 recipients
- Recipients can be assigned to a Contact Group and that group assigned as the package recipient
The package life is the number of days that the package will be available to the recipients. Package life is configurable from 1 day up to 365 days.
A Workspace package is a special type of package that provides a collaborative space for sharing files and supports several other unique characteristics.
- A Workspace recipient is referred to as a collaborator
- A collaborator is assigned to a role, and role assignment is unique to the specific Workspace
- Files can be organized in directories and subdirectories
- Multiple versions of a file can be maintained and stored
- User actions like file uploads and downloads are recorded in a Activity Log
- Workspace packages remain available to collaborators until the package owner deletes it
Sending a Package: Sequence of Events
The basic sequence of events associated with sending a typical SendSafely package is outlined below:
The steps above can be performed out of sequence, with the following exceptions:
- Step 1 (Create Empty Package) must always be performed first
- Step 6 (Finalize Package) must be performed last
- Step 3 (Add Recipient SMS) can only be performed for a given recipient after Step 2 (Add Recipient)