Skip to main content

Base URL

All API requests should be made to:

Authentication

The Tomorro API uses API keys for authentication. Include your API key in the x-api-key header with every request.

Get your API key

Generate an API key from your organization settings.
Keep your API key secure, do not share it in publicly accessible areas such as GitHub, client-side code, or public repositories.

Terminology

Response Format

All responses are returned in JSON format. Successful responses wrap the data in a data field:

Pagination

List endpoints use cursor-based pagination for efficient traversal of large datasets.

Parameters

Response

Paginated responses include a pagination object:

Example: Fetching pages

Sorting

Use the sort parameter to order results. Prefix with - for descending order.

Filtering

The API uses a simplified filtering format. Use query parameters directly.

Filter Operators

On GET /contracts, contractTypeId applies to one contract type UUID per request. Using in: with several UUIDs (for example contractTypeId=in:uuid1,uuid2) is not supported for multiple types; make one request per contract type and merge the results client-side.

Examples

Error Handling

The API uses standard HTTP status codes to indicate success or failure.

Status Codes

Error Response Format

Common Error Codes

Rate Limiting

The API implements rate limiting to ensure fair usage. If you exceed the rate limit, you’ll receive a 429 Too Many Requests response.
Implement exponential backoff in your client to handle rate limiting gracefully.

Simplified Workflows

The v2 API significantly reduces the number of API calls needed for common operations.

Creating a Contract (Before vs After)

Before (GraphQL - 2+ calls):
After (REST - 1 call):

Updating a Field (Before vs After)

Before (GraphQL - 3+ calls):
After (REST - 1 call):

Sending for Signature (Before vs After)

Before (GraphQL - 4-6 calls):
After (REST - 2 calls):