Bookings
Admin API endpoint for retrieving bookings
Bookings
The Bookings endpoint lets you list bookings within your organization through the Admin API.
For customer-scoped booking history (returns bookings for a single authenticated customer), see the Client API Bookings endpoint.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /bookings | List bookings with filtering |
GET | /bookings/{bookingId} | Get a single booking |
GET | /bookings/{bookingId}/ticket | Download a booking ticket PDF |
Authentication
All requests require a valid Admin API key:
Authorization: Bearer your_api_key_hereList Bookings
GET /bookingsQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Max results (1 to 100, default 50) |
search | string | No | Full-text search across booking number and customer name/email |
status | string | No | Comma-separated list of statuses (see Booking Status Values) |
dateFrom | string | No | ISO date string for the start of a date range |
dateTo | string | No | ISO date string for the end of a date range |
Example Request
curl "https://api.tiquo.app/api/v1/bookings?status=confirmed,checked_in&limit=25" \
-H "Authorization: Bearer your_api_key_here"Response
{
"success": true,
"data": [
{
"id": "k1234567890abcdef",
"bookingNumber": "BK-A12B34",
"status": "confirmed",
"date": "2025-01-20",
"startTime": "14:00",
"endTime": "15:00",
"duration": 60,
"attendeeCount": 2,
"source": "online",
"serviceName": "Deep Tissue Massage",
"serviceGroupName": "Massage Services",
"serviceCategoryName": "Massage Services",
"ticketing": {
"qrCodeTicketsEnabled": true,
"walletTicketsEnabled": true,
"ticketDownloadUrl": "https://api.tiquo.app/api/v1/bookings/k1234567890abcdef/ticket",
"walletTicketUrl": "https://cards.tiquo.app/ticket/org_123/BK-A12B34",
"appleWalletTicketUrl": "https://cards.tiquo.app/ticket/org_123/BK-A12B34",
"googleWalletTicketUrl": "https://cards.tiquo.app/ticket/org_123/BK-A12B34"
},
"sublocationName": "Treatment Room 1",
"customerId": "k1234567890abcdef",
"customerName": "John Doe",
"customerEmail": "john@example.com",
"parentOrderId": "k1234567890abcdef",
"orderNumber": "ORD-J98UBC",
"orderValue": 84.50,
"orderPaymentStatus": "paid",
"createdAt": 1640995200000,
"updatedAt": 1640995200000
}
],
"pagination": {
"hasMore": false,
"nextCursor": null,
"pageSize": 25
},
"timestamp": "2025-01-15T10:30:00.000Z"
}serviceName and serviceCategoryName use the booking's order-item snapshot when available. This keeps API output aligned with what the customer saw when the booking was created, even if the service is renamed later.
Get Booking
GET /bookings/{bookingId}Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
bookingId | string | Yes | Booking document ID, booking number, or confirmation code |
Example Request
curl "https://api.tiquo.app/api/v1/bookings/BK-A12B34" \
-H "Authorization: Bearer your_api_key_here"Response
Returns a single booking object with the same core fields as List Bookings, plus detailed fields such as:
| Field | Description |
|---|---|
timezone | IANA timezone for the booking |
attendees | Attendee names, email addresses, and phone numbers |
customerNotes | Customer-facing notes captured on the booking |
internalNotes | Internal staff notes |
isLegacy | Whether the booking came from legacy imported data |
completedAt | Completion timestamp, when available |
cancelledAt | Cancellation timestamp, when available |
checkedInAt | Check-in timestamp, when available |
Download Booking Ticket
GET /bookings/{bookingId}/ticketDownloads a PDF ticket for a booking when QR-code tickets are enabled for the booking's sublocation.
Example Request
curl -L "https://api.tiquo.app/api/v1/bookings/k1234567890abcdef/ticket" \
-H "Authorization: Bearer your_api_key_here" \
-o ticket.pdfThe response is application/pdf. If ticketing is not enabled or the booking cannot be accessed by the API key's organisation, the endpoint returns an error response.
Ticketing Object
| Field | Description |
|---|---|
qrCodeTicketsEnabled | Whether a QR-code ticket PDF can be downloaded |
walletTicketsEnabled | Whether wallet ticket links are available |
ticketDownloadUrl | API URL for downloading the ticket PDF |
walletTicketUrl | Wallet ticket URL for the booking |
appleWalletTicketUrl | Apple Wallet ticket URL |
googleWalletTicketUrl | Google Wallet ticket URL |
Booking Status Values
| Status | Description |
|---|---|
draft | Created but not yet committed. |
scheduled | Scheduled but not yet confirmed. |
confirmed | Confirmed; inventory reserved. |
reminder_sent | A reminder has been sent to the customer. |
waiting_room | Customer is in the virtual waiting room. |
waiting_list | On the waiting list for an unavailable slot. |
checked_in | Customer has checked in. |
active | Customer is present and orders can be added to this booking. |
in_progress | Service is in progress. |
completed | Service completed and customer checked out. |
cancelled | Booking cancelled; inventory released. |
no_show | Customer did not arrive. |
rescheduled | Booking moved to a different time. |
Booking Source Values
| Source | Description |
|---|---|
online | Created via online booking flow |
website | Created through the customer website |
phone | Taken over the phone by staff |
email | Taken via email by staff |
walk_in | Walk-in booking |
social | Created via social media channel |
referral | Referred booking |
pos | Created at point of sale |
admin | Created in the dashboard |
Error Responses
401 Unauthorized
{
"success": false,
"error": "Missing or invalid API key",
"timestamp": "2025-01-15T10:30:00.000Z"
}