Skip to main content

Contracts

The Contracts API provides CRUD access to contracts (signable documents), plus ancillary actions for tags and cloning.
New to the API? Start with Getting started (base URL, response envelope, errors, pagination) and Authentication (API keys). Those conventions apply to every endpoint below and are not repeated here.
Identifier note: contracts are addressed by their numeric doc_id. Wherever {id} appears below it is the doc_id.
Scope: signing (team/client/guest/in-person), publishing & emailing, automation, estimate generation and the rich document editor are managed in-app and are not part of this API. Signature/automation state is exposed read-only where relevant.

The contract object


List / search contracts

Query parameters

Example request

Example response — 200 OK


Get a contract

Returns the contract (200) with message “Contract retrieved successfully.”

Create a contract

Creates a contract and its backing estimate record. Provide doc_body to set the content directly, or contract_template to seed the body from a template. (Automation is not configurable via the API; new contracts are created with automation disabled.)

Body parameters

Example request

Example response — 201 Created


Update a contract

Returns the contract (200) with message “Contract updated successfully.”

Delete a contract

Example response — 200 OK


Set tags

The tags array is the full set — it replaces existing tags; an empty array clears them.
Returns the contract (200) with message “Contract tags updated successfully.”

Clone a contract

Creates a new contract from an existing one.
Returns the new contract (201) with message “Contract cloned successfully.”

Errors

See Getting started for the shared error format. Contract-specific: