Skip to main content
For AI agents: a documentation index is available at https://docs.coverbase.com/llms.txt. This page is also available in markdown by appending .md to the URL.
Your Coverbase representative turns on the third-party lifecycle features, including these routes, for your organization.
A contract record (cbcontract_...) is a contract’s metadata: what it is, who it is with, its term, its value and where it is in your approval and signature process. This API lets another system of record read and keep that metadata in step. Documents, clause analyses and approval chains stay on the dashboard.
These routes are /v1/contract-records. The similar-looking /v1/contracts paths are dashboard routes and are not part of the public API. While the third-party lifecycle features are off for your organization, every route here returns 404 with not_enabled.
All endpoints are org-scoped to the credential: an ak_* key or an OAuth token. See API conventions for shared behavior. None of these honor Idempotency-Key.

List contract records

GET
GET /v1/contract-records
Newest first. Uses the standard pagination envelope: { "items": [...], "total", "limit", "offset" }.
string
Only contracts with this vendor (cbvndr_...).
integer
default:"50"
1 to 200.
integer
default:"0"
0 or more.
cURL

Get a contract record

GET
GET /v1/contract-records/{contract_id}
Returns the contract record object, archived ones included. An unknown ID returns 404 contract_not_found.

Create a contract record

POST
POST /v1/contract-records
Returns 201 Created with the contract record object. The contract is created commercially active, in the draft workflow state.
string
required
1 to 500 characters.
string
required
One of msa, sow, order_form, amendment, nda, dpa, baa, subscription_agreement, license_agreement, services_agreement, reseller_agreement, statement_of_services, letter_of_intent, renewal, api_integration_agreement, data_sharing_agreement, eula, addendum, appendix, other.
string
The vendor (cbvndr_...). An unknown vendor returns 400 vendor_not_found.
string
The other party’s name, up to 500 characters, for a contract with no vendor record.
string
Up to 10,000 characters.
integer
Unix seconds.
integer
Unix seconds.
integer
Unix seconds. The effective date, term start and expiration must be in order, or the request returns 422 invalid_term.
integer
Unix seconds.
string
none, automatic or manual.
integer
0 or more.
number
0 or more.
string
A three-letter currency code.
cURL

Update a contract record

PATCH
PATCH /v1/contract-records/{contract_id}
Changes only the fields you send; omitted fields are unchanged. Accepts name, description, contract_type, effective_date, term_start_date, expiration_date, renewal_date, auto_renew, termination_notice_period_days, contract_value_amount, contract_value_currency and is_archived, with the same rules as create. Changing is_archived also needs permission to archive contracts. Every changed field is recorded in the contract’s activity log. The workflow state cannot be set through this API. A contract becomes executed only through Coverbase’s signature engines or a connected contract lifecycle system.

The contract record object

string
Where the contract is in your process: draft, pending_approval, approved, sent_for_signature, executed, rejected or terminated. Only executed asserts that a signature exists. Contracts that predate the workflow read draft.
string | null
The label of the contract’s status in your organization’s status list, if one is set.
integer | null
When it was executed, in Unix seconds.
string[]
The engagements linked to this contract.
string | null
A decimal, serialized as a string to keep its precision.