Every customer
GET
/api/customers
const url = 'https://app.dycrypt.com/o/acme/api/customers';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://app.dycrypt.com/o/acme/api/customers \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The organisation’s customers.
Media typeapplication/json
Array<object>
Who a licence is issued to. Not a user of your organisation, and has no sign-in.
object
id
required
integer format: int64
name
required
string
email
string | null format: email
notes
string | null
licenseCount
integer format: int64
createdAt
string format: date-time
createdBy
string | null
Examplegenerated
[ { "id": 1, "name": "example", "email": "hello@example.com", "notes": "example", "licenseCount": 1, "createdAt": "2026-04-15T12:00:00Z", "createdBy": "example" }]No credential, or one that no longer resolves — revoked, expired, deleted. Replace it.
Media typeapplication/json
Every failure in this API has this shape and no other.
object
error
required
string
Example
{ "error": "this token does not have licenses:write"}Authenticated, but not allowed: a missing scope, a read-only role, a plan limit reached, or a credential used under another organisation’s slug. The right credential doing something it may not do.
Media typeapplication/json
Every failure in this API has this shape and no other.
object
error
required
string
Example
{ "error": "this token does not have licenses:write"}