Xodo Sign Developer
- List Businesses
- Create Document
- Create Template
- Use Template
- Get Document / Template
- List Documents
- List Templates
- Send Reminder
- Reassign Signer
- Delete Document
- Trash Document / Template
- Cancel Document
- Download Original PDF
- Download Final PDF
- Upload File
- Get Bulk Sending Blank CSV
- Validate Bulk Sending CSV
- Create Bulk Job
- Get Bulk Job by id
- Get Bulk Job Status by id
- Get Bulk Job Documents by id
- Get Bulk Jobs list
- Audit Log
- Errors
Getting Started
Xodo Sign eSignature API
The Xodo Sign API has been built around the idea of efficiency and ease of use. Methods include the vast majority of actions directly related to Xodo Sign's core functionalities, such as creating and viewing documents and templates, accessing your document and template lists, downloading documents, creating documents from templates, canceling and deleting documents and templates, and more.
The following documentation intends to outline in detail the Xodo Sign API's specification, access and use of features and parameters currently available.
JSON Rest API
The Xodo Sign API is a lightweight RESTful JSON API and can be accessed using any server side programming language.
API Access Key
Each Xodo Sign account comes with a unique API access key, used to authenticate with the Xodo Sign API using HTTP GET. You can find your API access key by navigating to the top left dropdown menu and selecting "Developer".

Authentication
In order to authenticate with the API, simply append the access_key GET parameter to the API's base URL:
https://api.eversign.com/document
? access_key = YOUR_ACCESS_KEY
Business Selection
Each API request made to the Xodo Sign API should carry the API's business_id GET parameter within the API request URL. By logging in to one of your businesses and using the top left dropdown menu to navigate to the "Developer" page you can access your Business ID.

There is also a way of requesting the API to list all existing businesses for your account. To learn more about this feature, jump to section List Businesses
Business Selection
In order to select a business for your API request, simply append the API's business_id parameter and set it to your Business ID.
https://api.eversign.com/document
? access_key = YOUR_ACCESS_KEY
& business_id = 1
HTTPS
We understand that any transactions between your application(s) and the Xodo Sign API are confidential and contain sensitive data, which is why we have made sure to encrypt all datastreams using 256-bit HTTPS encryption.
Please use the API with HTTPS only. As of August 2023 this will become mandatory and all HTTP traffic will be redirected to HTTPS.
Using HTTPS
To access the API securely, simply append an s to the HTTP protocol.
https://api.eversign.com/api
Supported Languages
All signer- or CC-facing pages and communication can be displayed in different languages. This includes notification emails sent to signers or CCs about the signing of a specific document, document status pages and the actual signing process.
While creating a document or using a template via the API, the language parameter can be used to pass a 2-letter language code for individual signers or CCs. The language specified this way overrides the default language specified in your business settings.
There are 13 languages to choose from:
Code | Language |
---|---|
en | English |
da | Danish |
nl | Dutch |
fr | French |
de | German |
hi | Hindi |
it | Italian |
pl | Polish |
pt | Portuguese |
ru | Russian |
es | Spanish |
se | Swedish |
tr | Turkish |
Sandbox Mode
In order to use the Xodo Sign API for non-production testing, you can enable Sandbox Mode. Any documents created in Sandbox Mode come with a testing prefix appended to their title and will not be legally binding.
As you make your way through this API documentation you will notice that most types of API requests are made using the document endpoint. Sandbox Mode is enabled by appending the API's sandbox parameter to your HTTP POST request and setting it to 1.
Enabling Sandbox Mode
In order to enable Sandbox Mode for your API request, simply append the sandbox parameter to your HTTP POST request and set it to 1.
{
[...]
"sandbox": 1,
[...]
}