ClocknextHelp
DocumentationAPI ReferenceMCP Tools
Dashboard

Get started

OverviewQuickstart

Good to know

Response formatHandling errorsPaginating resultsSending data reliablyYour own customer idsWebhooks

API reference

Record credit POSTRecord outcome POSTComplete outcome POSTRecord wallet POSTRecord unit POSTComplete composite POST
List customers GETCreate a customer POSTGet a customer GETUpdate a customer PATCHDelete a customer DELETEGet a customer's balances GETGet a customer's wallet ledger GETSet a customer's low-balance alert PUTGet a customer's current plan GETChange a recurring grant PUTList Customer Usage Log GETLook Up Usage Logs by ID GET
Manage a customer's credit balance POSTManage a customer's outcome balance POSTManage a customer's unit balance POSTManage a customer's composite balance POSTManage a customer's wallet balance POST
List a customer's members GETAdd a member POSTUpdate a member PATCHRemove a member DELETE
PlansCreditsOutcomesUnitsComposites
List taxes GETCreate a tax POSTGet a tax GETUpdate a tax PATCH
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
wallet.balance.update POSTwallet.balance.drop POST
Mint a customer-portal access token POST
Customers

List customers

Cursor-paginated list of the organisation's customers.

GET
/customers

Authorization

apiKey
AuthorizationBearer <token>

Organisation-scoped key from Settings → API Keys.

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",        "externalId": "acme-42",        "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",        "city": "San Francisco",        "state": "CA",        "country": "United States",        "pincode": "94105",        "taxId": "US-EIN 12-3456789",        "currencyCode": "USD",        "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": {}}

Complete composite POST

Closes and bills ONE occurrence of a composite (a distinct tag value). Required even for outcome-tagged occurrences. Gated on every credit/outcome/unit the composite is restricted to having reported under the same value. Calling early isn't an error: it answers `422` but parks and completes itself once the rest lands.

Create a customer POST

Next Page