Skip to content
Docs
Operation

List customers

GET/customers
List customers with optional filtering and pagination. Account-scoped: the customers of the accounts the caller may list, plus records provenance has shared with them. Never channel-scoped. Each customer carries the fields the caller's access tiers reach: customers.read for an account the record belongs to or is shared with shows every documented field, and customers.list alone shows only public fields, which a customer has none of.

Query parameters

searchstringOptional
Search customers by email, first name, or last name
emailstringOptional
Filter by exact email address
accountIdstringOptional
Filter by account ID
isBlockedstringOptional
Filter by blocked status (true/false)
updatedSincestringOptional
Only customers updated at/after this ISO timestamp (for incremental polling)
cursorstringOptional
Opaque keyset cursor for stable pagination (use pagination.nextCursor from the previous page)
pagestringOptional
Page number
limitstringOptional
Items per page (max 100)

Returns

Customers retrieved successfully

Errors

400
Bad Request - Invalid input
401
Unauthorized - Authentication required
403
Forbidden - Insufficient permissions
404
Not Found - Resource not found
500
Internal Server Error

Every error names its code and links to it. All error codes

curl -X GET "https://api.ticketlayer.com/v1/customers" \  -H "Authorization: Bearer tlak_..." \  -H "X-Ticketlayer-Org: your-org-slug"
Response 200
{
  "customers": [
    {
      "id": "cus_abc123",
      "organisationId": "org_xyz789",
      "accountId": "acc_xyz789",
      "email": "customer@example.com",
      "firstName": "John",
      "lastName": "Doe",
      "phone": "+44 7700 900000",
      "externalId": "ext_cust_12345",
      "isBlocked": false,
      "blockedAt": null,
      "blockedReason": null,
      "metadata": {
        "loyaltyTier": "gold"
      },
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-01-20T14:45:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "totalPages": 8
  }
}

Try it in test mode

Query parameters
Search customers by email, first name, or last name
Filter by exact email address
Filter by account ID
Filter by blocked status (true/false)
Only customers updated at/after this ISO timestamp (for incremental polling)
Opaque keyset cursor for stable pagination (use pagination.nextCursor from the previous page)
Page number
Items per page (max 100)