List Customers
Retrieve a paginated list of customers.
Endpointโ
GET /v1/customers
Authenticationโ
Requires an API key with the customers:read scope.
Query Parametersโ
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number |
per_page | integer | 15 | Items per page (max 100) |
search | string | - | Search by name, email, or phone |
email | string | - | Filter by exact email |
Responseโ
Success (200 OK)โ
{
"data": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"full_name": "John Doe",
"is_organization": false,
"organization_name": null,
"display_name": "John Doe",
"email": "john@example.com",
"phone": "0412345678",
"phone_country_code": "+61",
"gender": "male",
"date_of_birth": "1990-05-15",
"address": {
"line_1": "123 Main Street",
"line_2": "Apt 4B",
"city": "Sydney",
"state": "NSW",
"postcode": "2000",
"country": "AU"
},
"bookings_count": 5,
"last_booking": {
"id": 123,
"start_date": "2026-01-10T09:00:00+00:00",
"status": "completed"
},
"custom_fields": [
{
"field_id": 4,
"label": "Member Since",
"field_type": "date",
"value": "2023-01-15",
"formatted_value": "15 Jan 2023"
}
],
"created_at": "2025-06-01T00:00:00+00:00",
"updated_at": "2026-01-15T10:30:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 250,
"total_pages": 17,
"request_id": "req_abc123",
"timestamp": "2026-01-15T12:00:00+00:00"
}
}
Response Fieldsโ
Customerโ
| Field | Type | Description |
|---|---|---|
id | integer | Unique customer identifier |
first_name | string | First name |
last_name | string | Last name |
full_name | string | Combined first and last name |
is_organization | boolean | Whether the customer is an organization booking on behalf of others |
organization_name | string|null | Organization name (organization customers only) |
display_name | string | Display identity โ organization name for organizations, otherwise the contact name |
email | string | Email address |
phone | string | Phone number |
phone_country_code | string | Phone country code (e.g., +61) |
gender | string|null | male, female, or other |
date_of_birth | string|null | Date of birth (YYYY-MM-DD) |
address | object | Address details |
bookings_count | integer | Total number of bookings |
last_booking | object|null | Most recent booking summary |
custom_fields | array | Custom field values for this customer |
created_at | string | ISO 8601 datetime |
updated_at | string | ISO 8601 datetime |
Custom Fieldsโ
| Field | Type | Description |
|---|---|---|
field_id | integer | Custom field definition ID |
label | string | Field display label |
field_type | string | Field type: text, textarea, number, date, datetime |
value | string|null | Raw value |
formatted_value | string|null | Formatted value for display |
Address Objectโ
| Field | Type | Description |
|---|---|---|
line_1 | string|null | Street address line 1 |
line_2 | string|null | Street address line 2 |
city | string|null | City |
state | string|null | State/province |
postcode | string|null | Postal/ZIP code |
country | string|null | ISO 3166-1 alpha-2 country code |
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks customers:read scope |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/customers?search=john" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."