ClocknextHelp
DocumentationAPI ReferenceMCP Tools
Dashboard

Get started

OverviewQuickstart

Core concepts

The response envelopeErrorsPaginationAsync, flushing & reliability

API reference

Record Signals POSTRecord usage logs POST
List customers GETCreate a customer POSTGet a customer GETUpdate a customer PATCHDelete a customer DELETEGet a customer's balances GETGet a customer's current plan GETList a customer's wallet transactions GETAdd a wallet transaction POSTAdjust a customer's credit balance POSTAdjust a customer's outcome balance POSTAdjust a customer's unit balance POST
List a customer's members GETAdd a member POSTUpdate a member PATCHRemove a member DELETE
List purchases GETCreate a purchase POSTGet a purchase GETUpdate a purchase's auto-payment setting PATCHCancel a purchase POST
List invoices GETGet an invoice GETMint a hosted pay link GET
List payments GETGet a payment GET
Mint a customer-portal access token POST
Customers

List customers

Cursor-paginated list of the organisation's customers.

GET
/customers

Authorization

apiKey
AuthorizationBearer <token>

Per-organisation API key from Settings → API Keys, sent as Authorization: Bearer cnk_…. Missing, unknown or expired keys return 401.

In: header

Query Parameters

limit?integer

Maximum rows to return. Must be a positive number; clamped to 1–200.

Range1 <= value <= 200
Default50
q?string

Case-insensitive contains-match on name OR email.

cursor?string

Id to page after — the last id of the previous page.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/customers?limit=25&q=acme&cursor=cus_zzz789"
{  "statusCode": 200,  "statusDetail": {    "status": "SUCCESS",    "message": "OK"  },  "result": {    "customers": [      {        "id": "cus_abc123",        "slug": "acme-inc",        "name": "Acme Inc",        "description": "AI meeting-notes startup — growth tier",        "email": "ops@acme.com",        "website": "https://acme.com",        "phone": "+1 415 555 0100",        "legalName": "Acme Incorporated",        "addressLine1": "500 Market Street",        "addressLine2": "Suite 400",        "city": "San Francisco",        "state": "CA",        "country": "United States",        "pincode": "94105",        "taxId": "US-EIN 12-3456789",        "notes": "Design partner — invoices reviewed by finance before send",        "logoUrl": "string",        "currencyCode": "USD",        "creditAllowance": 10000,        "createdAt": "2026-07-01T09:30:00.000Z",        "updatedAt": "2026-07-18T11:12:00.000Z"      }    ],    "nextCursor": "cus_zzz789"  }}
{  "statusCode": 400,  "statusDetail": {    "status": "ERROR",    "message": "Request body must be valid JSON."  },  "result": {}}
{  "statusCode": 401,  "statusDetail": {    "status": "ERROR",    "message": "Invalid API key."  },  "result": {}}
{  "statusCode": 500,  "statusDetail": {    "status": "ERROR",    "message": "Could not complete the request."  },  "result": {}}

Record usage logs POST

Records one usage log against a catalogue unit, addressed by its stable `agentKey`. Units are fixed-price meters with no tokens — the price comes from the unit's catalogue configuration, so a caller can never post a price.

Create a customer POST

Next Page