List Bookings
Retrieve a paginated list of bookings with optional filtering, searching, and sorting.
GET /v1/bookings
Authenticationโ
Requires a valid API key with bookings:read scope.
Archived bookings are excluded by default
As of April 2026, GET /v1/bookings excludes archived bookings unless archived=archived or archived=all is passed. If you previously relied on receiving every booking from this endpoint, switch to ?archived=all.
Query Parametersโ
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Items per page, max 100 (default: 25) |
type | string | Filter by booking type: rental or experience |
status | string | Filter by status: draft, requested, confirmed, picked_up, checked_in, returned, completed, no_show, cancelled. Quotes are left out unless you pass quote. Any other value is ignored and the list is not filtered by status |
payment_status | string | Filter by payment status: unpaid, partial, paid, refunded |
customer_id | integer | Filter by customer ID |
ref | string | Filter by link tag, the ?ref= value the booking came in with (for example summer-flyer) |
start_date | date | Start of the date window (YYYY-MM-DD, in the business's timezone) |
end_date | date | End of the date window (YYYY-MM-DD, in the business's timezone) |
date_field | string | Which date the window applies to: start_date (default), end_date, created_at, or start_or_end (the booking starts or ends in the window, so one day's pickups and returns together). With start_date and start_or_end, a booking whose activities run on several days matches on any of its days, not only its first |
created_after | datetime | Filter bookings created after this time (ISO 8601) |
created_before | datetime | Filter bookings created before this time (ISO 8601) |
search | string | Search by booking ID, customer name, or customer email |
location_id | integer | Filter by pickup or return location ID |
archived | string | Archive filter: active (default โ exclude archived), archived (only archived), all (both). See Archive Booking. |
pos_pickups_due | boolean | 1 returns the till's Pickups due list: confirmed bookings starting today in the business's timezone that are unpaid or part paid. Add location_id for one site. The same list the web POS shows. |
filter | string | late_pickups, late_returns or late (either). The same bookings the dashboards count as late; see What counts as late. no_show returns every booking with a no-show in it: one that reads No show, plus one half of a booking with rental items and an activity, a missed day, or some people in a group that came. Use status=no_show for only the bookings that read No show. See Mark a No Show |
sort | string | Sort field. Prefix with - for descending. Options: id, start_date, end_date, created_at, status (default: -created_at) |
Request Exampleโ
curl -X GET "https://app.equipdash.com/api/v1/bookings?status=confirmed&per_page=10" \
-H "Authorization: Bearer eqd_live_your_api_key"
Responseโ
{
"data": [
{
"id": 123,
"type": "rental",
"line_types": ["rental"],
"status": "confirmed",
"payment_status": "partial",
"source": "Online Booking",
"start_date": "2026-01-15T09:00:00+00:00",
"end_date": "2026-01-17T17:00:00+00:00",
"currency": "USD",
"total": 281.00,
"customer": {
"id": 456,
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"phone": "+1234567890"
},
"pickup_location": {
"id": 1,
"name": "Main Store",
"address": "123 Beach Road, Bondi NSW 2026, AU"
},
"return_location": null,
"created_at": "2026-01-10T14:30:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 10,
"total": 45,
"total_pages": 5,
"request_id": "req_abc123",
"timestamp": "2026-01-15T10:30:00+00:00"
},
"links": {
"first": "https://app.equipdash.com/api/v1/bookings?page=1",
"prev": null,
"next": "https://app.equipdash.com/api/v1/bookings?page=2",
"last": "https://app.equipdash.com/api/v1/bookings?page=5"
}
}
Response Fieldsโ
The list response returns a simplified booking summary. Use Get Booking for full details.
| Field | Type | Description |
|---|---|---|
id | integer | Unique booking identifier |
type | string | rental or experience |
status | string | Current booking status |
payment_status | string | Current payment status |
source | string | Where the booking originated |
start_date | string | Start date/time (ISO 8601) |
end_date | string | End date/time (ISO 8601) |
currency | string | Currency code (ISO 4217) |
total | number | Total booking amount |
customer | object | Customer summary |
pickup_location | object|null | Pickup location (id, name, address) |
return_location | object|null | Return location (id, name, address) |
created_at | string | Creation timestamp (ISO 8601) |
Filtering Examplesโ
By statusโ
GET /v1/bookings?status=confirmed
By date rangeโ
GET /v1/bookings?start_date=2026-01-01&end_date=2026-01-31
Everything going out or coming back on one dayโ
GET /v1/bookings?type=rental&start_date=2026-09-26&end_date=2026-09-26&date_field=start_or_end
By locationโ
GET /v1/bookings?location_id=1
By customerโ
GET /v1/bookings?customer_id=456
Searchโ
GET /v1/bookings?search=john@example.com
Combined filtersโ
GET /v1/bookings?status=confirmed&payment_status=paid&type=rental&sort=-start_date
Error Responsesโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | Missing or invalid API key |
| 403 | insufficient_scope | API key lacks bookings:read scope |