Tomorro's public API lets you exchange data between Tomorro and the software your teams already use: CRM, ERP, HRIS, data warehouse, automation platform (Make, Zapier, n8n) or internal application.
It is a REST API: you can read, search, create and update contracts, counterparties, clauses, members and other objects from your own tools, without anyone having to re-enter the data in Tomorro.
Technical documentation: https://alpha.developer.tomorro.com/quickstart
You will find every endpoint, its parameters and request examples there. This documentation is available in English only.
What you can do with the API
Contracts
List and search contracts, with filters on status, contract type, counterparty or dates.
Get a contract with its fields, signatories and members, or its consolidated version, whose values take its amendments into account.
List the clauses attached to a contract.
Download the current working document, the documents being signed, or the signed PDFs.
Create a contract from a contract type and a template, pre-filled with its fields, counterparty and signatories, in a single call.
Update a contract: fields, counterparty, signatories, members.
Upload a new version of the document, or add an attachment.
Send a contract for signature, or cancel a signature in progress.
Mark a contract as signed from PDFs signed in another tool.
List the repository folders your key can access, and read a folder with the ids of the contracts filed in it.
Counterparties
List and search counterparties, get a counterparty's profile.
Create a counterparty, update it (name, status, fields) or archive it.
Contract types and templates
List the contract types of your organization.
List the templates of a contract type, by language, and read a template's content.
Get the creation form of a contract type, that is, the fields needed to create a contract.
Smart fields
List the smart fields configured on your contracts.
List the options of a select or multi-select field.
Custom objects
List custom objects and get one of them with its fields.
List, create or update the records a contract holds for a custom object.
Clauses
List the clause library, get a clause with its content, add a clause.
Members
List members, with filters on role, status or email address, and get a member.
Create a member, with or without an invitation email.
Update a member's role, status, groups or folders.
Check, set or end an out-of-office period.
Attachments and documents
Get a secure upload link to send a file before attaching it to a contract: new version, attachment or signed PDFs.
Organization and audit log
Get the organization the API key belongs to.
List the events of the audit log, when the audit log is enabled for your organization.
Who can use the API
Access is through an API key. Each key belongs to a member of your organization, and the API only sees and changes what that member is already allowed to see and change in Tomorro.
The key is generated from the Tomorro settings, Integrations page, API card, Generate an API key button.
With standard roles, the Admin, Manager and Contributor roles can generate a key. The Viewer and Signatory roles cannot. With the Custom roles option, you need a role whose Integrations permission carries the Use action.
Access to the API may vary depending on your organization's plan ; if you have questions about its availability, please contact your account manager.
Keep your key secret. Every change made through the API is a real change in your workspace, exactly as if the member had made it themselves in Tomorro. Never share a key in code running in the browser, in a public repository or in a shared document.
For the detail of roles and permissions: User roles and permissions in Tomorro
Technical basics
Base URL | |
Authentication | Your API key, in the x-api-key header |
Format | JSON |
Versions | Date-based versions, sent in the tomorro-version header, for example 2025-01-29.alpha. Without this header, the latest version is used. |
Pagination | Cursor-based: limit (20 by default, 50 maximum), after, before |
Sorting and filters | The sort parameter, and filters such as status=in:draft,negotiating or startAt=gte:2024-01-01 |
Rate limiting | Too many calls return a 429 Too Many Requests response: retry after an increasing delay |
Each version keeps the same behaviour once released. When a version is deprecated, responses carry an x-api-deprecation-warning header and a removal date in the sunset header ; after that date, the version returns 410 Gone.
Be notified in real time
Rather than calling the API regularly to detect changes, you can receive a webhook: Tomorro sends an HTTPS request to the address of your choice as soon as an event happens, for example a contract being created or fully signed.
The available events, the setup and how to check the authenticity of the requests are described here: Webhooks
Common use cases
Create contracts from your tools. A user requests a contract from the CRM or the ERP: the integration reads the fields needed by the contract type, then creates a pre-filled contract in Tomorro, ready to be sent for signature.
Keep counterparties in sync. Suppliers, clients or partners created or updated in your ERP or your CRM are created or updated in Tomorro, and the other way around, using the Tomorro counterparty identifier as the shared key.
Push contract data back into your tools. When a contract is created, signed or changes status, the integration fetches its details and updates the matching record in your CRM, your ERP or your reporting tool.
Archive signed documents. When a contract is signed, the signed PDF and its data are stored in your document management system, your cloud storage or your data warehouse.
Use your own signature tool. Contracts signed in a third-party tool are marked as signed in Tomorro, with their signed PDFs.
Generate employment contracts from your HRIS. A new employee in the HRIS creates an employment contract from a template and sends it for signature.
To scope your need before looking at technical feasibility: Define my non-native integration need
Limits to know about
Signature zones cannot be placed through the API. If the document has no signature zone for a signatory, sending it for signature fails: open the contract in Tomorro, choose Prepare signature, then add the zones in the Document preparation step.
A contract that is already signing, signed or canceled cannot be sent for signature again.
Signatory slots left empty by the template are filled on their own side: an internal slot takes a Tomorro member, an external slot takes an email address.
Select fields expect one of the options configured in Tomorro ; an unknown value is rejected.
The contract type filter accepts one contract type per request: make one request per type and merge the results on your side.
When creating a member, the available roles are Contributor, Manager and Admin.
An out-of-office period can be read for any member, but can only be set or ended for the member who owns the API key.
The audit log is only available to administrators, when it is enabled for your organization.
Custom object records require dynamic tables.
There is no call to delete a contract, a counterparty or a member.
Driving the API from an AI assistant
The same capabilities are available in natural language from Claude, ChatGPT, Gemini, Copilot or Dust, with no integration project: Tomorro MCP setup and connection
