List contracts

List contracts, newest first, each with its recipients in signing order.

GET https://api.centerfy.ai/webhooks/inbound/contracts

Headers

HeaderRequiredValueDescription
x-api-keyYesyour sub-account API key (cfy_…)Authenticates the request; or use Authorization: Bearer <key>.

Query parameters

NameTypeRequiredDefaultDescription
limitintegerNo50Page size; minimum 1, maximum 100 (larger values are rejected with 400).
offsetintegerNo0Number of records to skip for paging; minimum 0.
statusstringNo—One of draft, sent, viewed, partially_signed, completed, declined, voided.
contact_idstring (uuid)No—Only contracts for this contact.
template_idstring (uuid)No—Only contracts created from this template.

Example

curl -X GET "https://api.centerfy.ai/webhooks/inbound/contracts?limit=50&offset=0" \
  -H "x-api-key: $CENTERFY_API_KEY"
import { CenterfyClient } from "@centerfy/sdk";

const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });

const result = await centerfy.contracts.list({
  "limit": 50,
  "offset": 0
});
console.log(result);
centerfy contracts list '{"limit":50,"offset":0}'

MCP tool: centerfy_contracts_list (see MCP server)

Response

{
  "status": "success",
  "total": 1,
  "limit": 50,
  "offset": 0,
  "has_more": false,
  "contracts": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
      "title": "Service agreement — Jamie Rivera",
      "contract_number": "CTR-0042",
      "status": "draft",
      "source_type": "pdf",
      "contact_id": "3f1c2a9e-7b4d-4c8a-9e2f-1a2b3c4d5e6f",
      "template_id": "2e4f6a8b-1c3d-4e5f-9a7b-8c9d0e1f2a3b",
      "sequential_signing": false,
      "has_prepared_pdf": true,
      "has_signed_pdf": false,
      "verification_code": null,
      "expires_at": null,
      "sent_at": null,
      "completed_at": null,
      "declined_at": null,
      "voided_at": null,
      "recipients": [
        {
          "id": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
          "name": "Jamie Rivera",
          "email": "[email protected]",
          "role": "signer",
          "signing_order": 1,
          "status": "pending",
          "viewed_at": null,
          "signed_at": null,
          "declined_at": null,
          "decline_reason": null
        },
        {
          "id": "8b9c0d1e-2f3a-4b4c-9d5e-6f7a8b9c0d1e",
          "name": "Account manager",
          "email": "",
          "role": "cc",
          "signing_order": 2,
          "status": "pending",
          "viewed_at": null,
          "signed_at": null,
          "declined_at": null,
          "decline_reason": null
        }
      ],
      "created_at": "2026-10-06T10:00:00.000Z",
      "updated_at": "2026-10-06T10:00:00.000Z"
    }
  ]
}

Errors

  • 400 — if contact_id or template_id is not a UUID, or status is not an allowed value.

Notes

List items omit content and fields. Signing links and signer field values are never returned.

© 2026 Centerfy AI. All rights reserved.