Contracts
`/contracts` - read-only
One page of records, newest first unless you say otherwise, with the total count in meta so you know how far to paginate.
Required scope: contracts:read.
bearerAuthAuthorizationBearer <token>Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.
page?integer1-based. meta.totalPages says how many there are.
1 <= value1per_page?integerRows per page. A value above 200 returns 400 - never a silent clamp.
1 <= value <= 20050sort?stringPrefix with - for descending. An undeclared sort returns 400.
"-acceptedAt""acceptedAt""-acceptedAt""title""-title"q?stringCase-insensitive "contains", across: title.
filter[status]?stringExact match on status.
"draft""sent""viewed""accepted""declined""paid"filter[clientId]?stringExact match on clientId.
filter[dealId]?stringExact match on dealId.
filter[projectId]?stringExact match on projectId.
The requested page.
application/json- response
data*array<>meta*curl -X GET 'https://api.usedashly.com/v1/contracts'{ "data": [ { "id": "string", "title": "string", "version": 0, "status": "draft", "acceptedAt": "2019-08-24T14:15:22Z", "clientId": "string", "dealId": "string", "projectId": "string", "amountCents": 0, "currency": "string", "forfaitType": "monthly", "forfaitMinutes": 0, "recurrence": "monthly", "locale": "string", "state": "string", "acceptedBy": "string", "acceptedByName": "string", "clientName": "string", "dealName": "string", "projectName": "string" } ], "meta": { "page": 0, "perPage": 0, "total": 0, "totalPages": 0 }}The full record, custom fields included when the resource carries them. A record from another agency is a 404, not a 403 - its existence is not ours to confirm.
Required scope: contracts:read.
bearerAuthAuthorizationBearer <token>Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.
id*stringThe record's public id (hsbftmp3f5), as returned in the id field. An internal UUID returns 404.
Found.
application/json- response
data*curl -X GET 'https://api.usedashly.com/v1/contracts/string'{ "data": { "id": "string", "title": "string", "version": 0, "status": "draft", "acceptedAt": "2019-08-24T14:15:22Z", "clientId": "string", "dealId": "string", "projectId": "string", "amountCents": 0, "currency": "string", "forfaitType": "monthly", "forfaitMinutes": 0, "recurrence": "monthly", "locale": "string", "state": "string", "acceptedBy": "string", "acceptedByName": "string", "clientName": "string", "dealName": "string", "projectName": "string" }}Every verb this resource answers to, with its target and the JSON Schema of its body - the same contracts this document describes, readable at runtime.
Required scope: contracts:read.
bearerAuthAuthorizationBearer <token>Your agency's API key: Authorization: Bearer ak_…. Created in Connectors → API & webhooks and shown once. A key authenticates an agency, not a person.
The available verbs.
application/json- response
data*array<>curl -X GET 'https://api.usedashly.com/v1/contracts/actions'{ "data": [ { "name": "string", "label": "string", "description": "string", "target": "item", "readOnly": true, "path": "string", "input": {} } ]}