Tiquo
Integrations OverviewAirtableAsanaSlackGoogle AnalyticsMetabaseMixpanelPendoSegmentTableau (PAT)ActiveCampaignBrevoEmarsys Core API (WSSE)EventbriteFacebookGoogle AdsHighLevelInstagramKlaviyoMailchimpMailgunMicrosoft AdsSendGridTwitter (v2)HubSpotNotionAcuity SchedulingAirtable (Personal Access Token)BasecampCal.com (v2)CalendlyClickUpCodaConfluence Data CenterExpensifyGoogle CalendarGoogle SheetHarvestLinearMicrosoft Power BIMicrosoft TeamsMindbodyMondayOpenAIPerplexityPingboardPivotal TrackerProductboardQuickbaseServiceM8ServiceNowTeamworkTickTickTimelyTodoistTrafftTrelloWrikefal.aixAIZendeskIntercomAircall (OAuth)DixaFreshDeskFreshserviceFrontPlainRingCentralZoho DeskBrazeDialpadGoogleMicrosoftOutlookPodiumSednaSharePoint OnlineTwilioWhatsApp BusinessZoho MailBambooHRADPDeelEmployment HeroGustoHibob Service UserNamelyOracle Fusion Cloud (HCM)PaychexPayfitPaylocityPersonioRipplingSAP SuccessFactorsSage HRTSheetsUKG ProUKG ReadyWorkdayZoho PeopleQuickBooksBuildiumExact OnlineFreshBooksIntuitNetSuitePennylaneSageSage IntacctTwinfieldUnanetWave AccountingXeroZoho BooksSalesforceAffinityAttioCopperFreshsalesGainsight CCInsightlyKustomerMedalliaPipedriveTwenty CRMZoomInfoApaleoMewsMicrosoft Business CentralOdooSAP ConcurZuoraAcceloCoupa CompassZoho InvoiceAnrokAvalaraDocuSignDropbox SignPandadocSignNowLinkedInSplitwiseTikTok AdsJotformQualtricsRefinerTypeformShopifyCin7 CoreGoogle MapsRingoverListrakRydooTalentLMSApple Business ManagerCrunchbaseRocketReachOcean.ioFreepikEnergy Performance Certificates (Gov.UK)JustworksGristSAP S/4HANA Cloud3CX8x8Adobe CommerceBirdCloudbedsConstant ContactBufferCustomer.ioCrispFreeAgentGreenhouseMeta Marketing APIMollienocrm.ioOomnitzaDigitsPylonSage 200ShopwareAnvilShippoEasyPostAltrataMicrosoft PeopleMicrosoft IntuneCloudTalkGoogle FormsMaximizerMicrosoft PlannerSalesmsgSellercloudTallyTimifyUpsalesCleverReachHeymarketMailjetPleoProvenExpertTelegramToggl TrackTenzoASSA ABLOY Vingcard VisionlineASSA ABLOY Vingcard VostioASSA ABLOY TESA HotelASSA ABLOY SMARTairSalto KSSalto Space OnlineDormakabaOmnitecHotekTT LockWebLockISEOKleverKeyAperioISONASHIDSouthcoThird MillenniumSTidAxis CommunicationsBooking.comExpediaHotels.comAirbnbGoogle HotelsTripadvisorAgodaHotelbedsTravelgateXHyperguestRoibosReconlineTraviaOpenGDS.comMG BedbankDidatravelHotelREZHRSHotelnetworkGetaroomWinkBookeasyVRBOInntopiaHookusbookusHipcampSpot2niteCamping VisionMinistry of VillasTrip.comTravelokaTiketMakeMyTripHoteripKlookeDreamsSzallasEmerging Travel GroupCheck24Bed-and-Breakfast.itWorld2Meet (W2M)Ctoutvert / SecureholidayDespegarPriceTravelRoombeastMitchell CorpHRS AustraliaResonlineHostelworldHostelhopTablet MichelinMr & Mrs SmithHopperHotel TonightPitchupMoveriiLocalOTAAlaricBooknpayCultbookingGuestTractionLevartWeSpeakMake.comZapierPricelabsPricepointRategenieElastic HotelRoom Price GenieTurbosuiteUber EatsDeliverooDoorDashBolt FoodGlovo
API and AuthenticationAdmin APIBookings

Bookings

Admin API endpoints for creating and managing bookings

Bookings

The Bookings endpoints let you create and manage bookings within your organization through the Admin API.

For customer-scoped booking history (returns bookings for a single authenticated customer), see the Customer API Bookings endpoint.

Endpoints

MethodEndpointDescription
GET/bookingsList bookings with filtering
POST/bookingsCreate a booking
GET/bookings/{bookingId}Get a single booking
PATCH/bookings/{bookingId}Update a booking
DELETE/bookings/{bookingId}Delete a booking
GET/bookings/{bookingId}/ticketDownload a booking ticket PDF

Authentication

All requests require a valid Admin API key:

Authorization: Bearer your_api_key_here

Test the API

Enter your Admin API key and any required values, then select Send. Requests are sent directly from your browser to the live Admin API.

The POST, PATCH, and DELETE testers change live organization data. Your API key is stored only in this browser's local storage, so use the tester on a trusted device.

GET
/bookings

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the Tiquo dashboard (Settings > Developer > Admin API)

In: header

Query Parameters

limit?integer
Default50
Range1 <= value <= 100
search?string
type?string
status?string
priority?string
Value in"low" | "medium" | "high" | "urgent"
source?string
category?string
email?string
Formatemail
customerId?string
assignedTo?string
customFieldKey?string
customFieldValue?string
search?string

Search by booking number, customer name/email

status?string

Comma-separated: draft,scheduled,confirmed,reminder_sent,waiting_room,waiting_list,checked_in,active,in_progress,completed,cancelled,no_show,rescheduled

dateFrom?string
Formatdate
dateTo?string
Formatdate

Response Body

application/json

application/json

application/json

curl -X GET "https://api.tiquo.app/api/v1/bookings"
{
  "success": true,
  "data": [
    {
      "id": "string",
      "bookingNumber": "string",
      "status": "draft",
      "date": 0,
      "startTime": "string",
      "endTime": "string",
      "duration": 0,
      "attendeeCount": 0,
      "source": "string",
      "serviceId": "string",
      "serviceName": "string",
      "serviceGroupName": "string",
      "sublocationId": "string",
      "sublocationName": "string",
      "customerId": "string",
      "customerName": "string",
      "customerEmail": "string",
      "parentOrderId": "string",
      "orderNumber": "string",
      "orderValue": 0,
      "orderPaymentStatus": "string",
      "createdAt": 0,
      "updatedAt": 0
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "string",
    "pageSize": 0
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
POST
/bookings

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the Tiquo dashboard (Settings > Developer > Admin API)

In: header

Request Body

application/json

serviceId*string
sublocationId*string
customerId?string
parentOrderId?string
date*|
startTime?string
endTime?string
duration*number
Range0 < value
nights?integer
Range1 <= value
timezone?string
attendeeCount?integer
Range1 <= value
adults?integer
Range0 <= value
children?integer
Range0 <= value
amount?number
Range0 <= value
source?string
Default"admin"
customerNotes?string
status?string
Default"scheduled"
Value in"scheduled"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.tiquo.app/api/v1/bookings" \  -H "Content-Type: application/json" \  -d '{    "serviceId": "string",    "sublocationId": "string",    "date": "2019-08-24T14:15:22Z",    "duration": 0  }'
{
  "success": true,
  "data": {
    "id": "string",
    "bookingNumber": "string",
    "status": "draft",
    "date": 0,
    "startTime": "string",
    "endTime": "string",
    "duration": 0,
    "attendeeCount": 0,
    "source": "string",
    "serviceId": "string",
    "serviceName": "string",
    "serviceGroupName": "string",
    "sublocationId": "string",
    "sublocationName": "string",
    "customerId": "string",
    "customerName": "string",
    "customerEmail": "string",
    "parentOrderId": "string",
    "orderNumber": "string",
    "orderValue": 0,
    "orderPaymentStatus": "string",
    "createdAt": 0,
    "updatedAt": 0,
    "timezone": "string",
    "attendees": [
      {
        "name": "string",
        "email": "string",
        "phone": "string"
      }
    ],
    "customerNotes": "string",
    "internalNotes": "string",
    "isLegacy": true,
    "completedAt": 0,
    "cancelledAt": 0,
    "checkedInAt": 0
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
GET
/bookings/{bookingId}

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the Tiquo dashboard (Settings > Developer > Admin API)

In: header

Path Parameters

bookingId*string

Booking number, confirmation code, or document ID

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://api.tiquo.app/api/v1/bookings/string"
{
  "success": true,
  "data": {
    "id": "string",
    "bookingNumber": "string",
    "status": "draft",
    "date": 0,
    "startTime": "string",
    "endTime": "string",
    "duration": 0,
    "attendeeCount": 0,
    "source": "string",
    "serviceId": "string",
    "serviceName": "string",
    "serviceGroupName": "string",
    "sublocationId": "string",
    "sublocationName": "string",
    "customerId": "string",
    "customerName": "string",
    "customerEmail": "string",
    "parentOrderId": "string",
    "orderNumber": "string",
    "orderValue": 0,
    "orderPaymentStatus": "string",
    "createdAt": 0,
    "updatedAt": 0,
    "timezone": "string",
    "attendees": [
      {
        "name": "string",
        "email": "string",
        "phone": "string"
      }
    ],
    "customerNotes": "string",
    "internalNotes": "string",
    "isLegacy": true,
    "completedAt": 0,
    "cancelledAt": 0,
    "checkedInAt": 0
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
PATCH
/bookings/{bookingId}

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the Tiquo dashboard (Settings > Developer > Admin API)

In: header

Path Parameters

bookingId*string

Request Body

application/json

status*string
cancellationReason?string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://api.tiquo.app/api/v1/bookings/string" \  -H "Content-Type: application/json" \  -d '{    "status": "string"  }'
{
  "success": true,
  "data": {
    "id": "string",
    "bookingNumber": "string",
    "status": "draft",
    "date": 0,
    "startTime": "string",
    "endTime": "string",
    "duration": 0,
    "attendeeCount": 0,
    "source": "string",
    "serviceId": "string",
    "serviceName": "string",
    "serviceGroupName": "string",
    "sublocationId": "string",
    "sublocationName": "string",
    "customerId": "string",
    "customerName": "string",
    "customerEmail": "string",
    "parentOrderId": "string",
    "orderNumber": "string",
    "orderValue": 0,
    "orderPaymentStatus": "string",
    "createdAt": 0,
    "updatedAt": 0,
    "timezone": "string",
    "attendees": [
      {
        "name": "string",
        "email": "string",
        "phone": "string"
      }
    ],
    "customerNotes": "string",
    "internalNotes": "string",
    "isLegacy": true,
    "completedAt": 0,
    "cancelledAt": 0,
    "checkedInAt": 0
  },
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
DELETE
/bookings/{bookingId}

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the Tiquo dashboard (Settings > Developer > Admin API)

In: header

Path Parameters

bookingId*string

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://api.tiquo.app/api/v1/bookings/string"
Empty
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
GET
/bookings/{bookingId}/ticket

Authorization

BearerAuth
AuthorizationBearer <token>

API key from the Tiquo dashboard (Settings > Developer > Admin API)

In: header

Path Parameters

bookingId*string

Booking number or document ID

Response Body

application/pdf

application/json

application/json

application/json

application/json

curl -X GET "https://api.tiquo.app/api/v1/bookings/string/ticket"
"string"
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}
{
  "success": false,
  "error": "string",
  "timestamp": "2019-08-24T14:15:22Z"
}

List Bookings

GET /bookings

Query Parameters

ParameterTypeRequiredDescription
limitintegerNoMax results (1 to 100, default 50)
searchstringNoFull-text search across booking number and customer name/email
statusstringNoComma-separated list of statuses (see Booking Status Values)
dateFromstringNoISO date string for the start of a date range
dateTostringNoISO 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

ParameterTypeRequiredDescription
bookingIdstringYesBooking 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:

FieldDescription
timezoneIANA timezone for the booking
attendeesAttendee names, email addresses, and phone numbers
customerNotesCustomer-facing notes captured on the booking
internalNotesInternal staff notes
isLegacyWhether the booking came from legacy imported data
completedAtCompletion timestamp, when available
cancelledAtCancellation timestamp, when available
checkedInAtCheck-in timestamp, when available

Download Booking Ticket

GET /bookings/{bookingId}/ticket

Downloads 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.pdf

The 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

FieldDescription
qrCodeTicketsEnabledWhether a QR-code ticket PDF can be downloaded
walletTicketsEnabledWhether wallet ticket links are available
ticketDownloadUrlAPI URL for downloading the ticket PDF
walletTicketUrlWallet ticket URL for the booking
appleWalletTicketUrlApple Wallet ticket URL
googleWalletTicketUrlGoogle Wallet ticket URL

Booking Status Values

StatusDescription
draftCreated but not yet committed.
scheduledScheduled but not yet confirmed.
confirmedConfirmed; inventory reserved.
reminder_sentA reminder has been sent to the customer.
waiting_roomCustomer is in the virtual waiting room.
waiting_listOn the waiting list for an unavailable slot.
checked_inCustomer has checked in.
activeCustomer is present and orders can be added to this booking.
in_progressService is in progress.
completedService completed and customer checked out.
cancelledBooking cancelled; inventory released.
no_showCustomer did not arrive.
rescheduledBooking moved to a different time.

Booking Source Values

SourceDescription
onlineCreated via online booking flow
websiteCreated through the customer website
phoneTaken over the phone by staff
emailTaken via email by staff
walk_inWalk-in booking
socialCreated via social media channel
referralReferred booking
posCreated at point of sale
adminCreated in the dashboard

Error Responses

401 Unauthorized

{
  "success": false,
  "error": "Missing or invalid API key",
  "timestamp": "2025-01-15T10:30:00.000Z"
}