Skip to main content

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โ€‹

ParameterTypeDescription
pageintegerPage number (default: 1)
per_pageintegerItems per page, max 100 (default: 25)
typestringFilter by booking type: rental or experience
statusstringFilter 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_statusstringFilter by payment status: unpaid, partial, paid, refunded
customer_idintegerFilter by customer ID
refstringFilter by link tag, the ?ref= value the booking came in with (for example summer-flyer)
start_datedateStart of the date window (YYYY-MM-DD, in the business's timezone)
end_datedateEnd of the date window (YYYY-MM-DD, in the business's timezone)
date_fieldstringWhich 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_afterdatetimeFilter bookings created after this time (ISO 8601)
created_beforedatetimeFilter bookings created before this time (ISO 8601)
searchstringSearch by booking ID, customer name, or customer email
location_idintegerFilter by pickup or return location ID
archivedstringArchive filter: active (default โ€” exclude archived), archived (only archived), all (both). See Archive Booking.
pos_pickups_dueboolean1 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.
filterstringlate_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
sortstringSort 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.

FieldTypeDescription
idintegerUnique booking identifier
typestringrental or experience
statusstringCurrent booking status
payment_statusstringCurrent payment status
sourcestringWhere the booking originated
start_datestringStart date/time (ISO 8601)
end_datestringEnd date/time (ISO 8601)
currencystringCurrency code (ISO 4217)
totalnumberTotal booking amount
customerobjectCustomer summary
pickup_locationobject|nullPickup location (id, name, address)
return_locationobject|nullReturn location (id, name, address)
created_atstringCreation 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
GET /v1/bookings?search=john@example.com

Combined filtersโ€‹

GET /v1/bookings?status=confirmed&payment_status=paid&type=rental&sort=-start_date

Error Responsesโ€‹

StatusCodeDescription
401authentication_requiredMissing or invalid API key
403insufficient_scopeAPI key lacks bookings:read scope