Skip to content

BeMyGuest API v2.0 (2.1)

The BeMyGuest API is the industry benchmark preferred by online travel agents, designed solely for Asia's attractions, tours and activities. This comprehensive API provides real-time access to a vast inventory of travel products.

Key Features:

  • Product Discovery: Search and retrieve detailed information for a wide range of travel products, including attractions, tours, and activities.
  • Real-Time Availability and Pricing: Check live availability and get up-to-date pricing for specific product types and dates.
  • End-to-End Booking Management: Create, confirm, and cancel bookings seamlessly.
  • Voucher Retrieval: Access and download booking vouchers directly through the API.
  • Configuration: Fetch essential configuration data such as supported languages, currencies, and locations to customize your integration.
Download OpenAPI description
Languages
Servers
Mock server

https://docs.bemyguest.com.sg/_mock/openapi/

Api Demo Server

https://api.demo.bemyguest.com.sg/

Api Production Server

https://api.bemyguest.com.sg/

Products

Endpoints for searching and retrieving product details.

Operations

Product-Types

Endpoints for retrieving product type information, pricing, and availability.

Operations

Bookings

Endpoints for creating and managing bookings.

Operations

Request

Creates a new booking.

Before creating a booking, you should always check the availability and price using the /v2/product-types/{uuid}/price-lists/{date} endpoint.

The request body must contain all the necessary information for the booking, including customer details and product options.

Security
Authorization
Bodyapplication/jsonrequired

Create Booking Request

messagestring

message to host

productTypeUuidstring(uuid)

UUID of product type

customerobject(Booking Customer)

Booking person contact data

customer.​emailstringrequired

email

customer.​firstNamestringrequired

First name - accepts alphabets, spaces, hyphen and apostrophe only

customer.​lastNamestringrequired

Last name - accepts alphabets, spaces, hyphen and apostrophe only

customer.​phonestringrequired

Phone number

customer.​salutationstringrequired

Salutation

adultsintegerint32

Number of adults, can be 0 when minPax = 0

childrenintegerint32

Number of children

seniorsintegerint32

Number of seniors

timeSlotUuidstring(uuid)

UUID of timeslot. If timeslots provided.

arrivalDatestring(date)

Date

partnerReferencestring

Your own id of booking

optionsobject

Structure of a booking options object as used when creating a new booking

options.​perBookingArray of objects(BookingOptionValue)>= 0 itemsrequired

Options per booking array

options.​perBooking[].​uuidstring
options.​perBooking[].​valuestring or number
options.​perPaxArray of objects(BookingOptionsPerPax)>= 0 itemsrequired
Array [
options.​perPax[][].​uuidstring
options.​perPax[][].​valuestring or number
]
curl -i -X POST \
  https://docs.bemyguest.com.sg/_mock/openapi/v2/bookings \
  -H 'Content-Type: application/json' \
  -H 'X-Authorization: YOUR_API_KEY_HERE' \
  -d '{
    "message": "If you need to call, please consider we are in European time zone",
    "productTypeUuid": "efedb1fc-f150-5eaa-bf6e-fc202f6114bd",
    "customer": {
      "email": "example@bemyguest.com.sg",
      "firstName": "Example",
      "lastName": "Customer",
      "phone": "+65 0000 0000",
      "salutation": "Mr."
    },
    "adults": 1,
    "children": 0,
    "seniors": 0,
    "timeSlotUuid": "cd15153e-dfd1-5077-8aa3-115bec58e86e",
    "arrivalDate": "2018-03-10",
    "partnerReference": "OUR_BOOKING_NO_001",
    "options": {
      "perPax": [
        {
          "uuid": "46db421e-5727-46fc-9f2c-10679e026582",
          "value": "1"
        }
      ],
      "perBooking": []
    }
  }'

Responses

A successful response containing booking information.

Bodyapplication/json
dataobject(BookingDetails)

This object is returned in the response whenever a booking is created, modified or viewed in the API

data.​adultsinteger
data.​amountBreakdownArray of objects(AmountBreakdown)
data.​amountBreakdown[].​namestringrequired
data.​amountBreakdown[].​pricestringrequired
data.​amountBreakdown[].​quantityintegerrequired
data.​arrivalDatestring(date)
data.​cancellationRequestAtstring or null
data.​cancellationRequestStatusstring
data.​cancellationStatusstring or null
data.​childreninteger
data.​codestring
data.​completedAtstring or null
data.​createdAtstring
data.​currencyCodestring
data.​currencyUuidstring(uuid)
data.​emailstring(email)
data.​firstNamestring
data.​lastNamestring
data.​linksArray of objects(Link)
data.​links[].​methodstringrequired
data.​links[].​relstringrequired
data.​links[].​hrefstringrequired
data.​optionsArray of arrays
data.​partnerReferencestring
data.​phonestring
data.​productTypeTitlestring
data.​productTypeTitleTranslatedstring
data.​productTypeUuidstring(uuid)
data.​refundAmountnumber or null
data.​refundDatestring or null
data.​refundTransactionstring or null
data.​salutationstring
data.​seniorsinteger
data.​statusstring
data.​ticketTypesArray of objects(TicketType)
data.​ticketTypes[].​quantityintegerrequired
data.​ticketTypes[].​typestringrequired
data.​timeSlotstring
data.​totalAmountnumber
data.​updatedAtstring
data.​uuidstring(uuid)
timestampstring(date-time)
Response
application/json
{ "data": { "adults": 4, "amountBreakdown": [ … ], "arrivalDate": "2025-08-08", "cancellationRequestAt": null, "cancellationRequestStatus": "none", "cancellationStatus": null, "children": 0, "code": "CDAQ91W", "completedAt": "2025-08-08 13:04:07", "createdAt": "2025-08-08 13:01:57", "currencyCode": "SGD", "currencyUuid": "cd15153e-dfd1-5039-8aa3-115bec58e86e", "email": "example@bemyguest.com.sg", "firstName": "Example", "lastName": "Customer", "links": [ … ], "options": [], "partnerReference": "BMG90700965", "phone": "+650123456", "productTypeTitle": "Example Product Type Title", "productTypeTitleTranslated": "Example Product Type Title", "productTypeUuid": "ec8906df-9d13-4c78-a358-cb756fce31fc", "refundAmount": null, "refundDate": null, "refundTransaction": null, "salutation": "Mr.", "seniors": 0, "status": "approved", "ticketTypes": [ … ], "timeSlot": "14:00 - 14:00", "totalAmount": 126.08, "updatedAt": "2025-08-08 13:04:07", "uuid": "8139352b-b761-4275-951d-1d47f05e9b04" } }

Request

Retrieves a list of your bookings. You can filter the results by date_start, date_end, guest information (first_name, last_name, email, phone), partner_reference, and status.

Pagination is also supported.

Security
Authorization
Query
date_startstring

date_start - As compared with arrivalDate, format YYYY-MM-DD

date_endstring

date_end - As compared with arrivalDate, format YYYY-MM-DD

first_namestring

first_name - Guest's first name

last_namestring

last_name - Guest's last name

emailstring

email - Guest's email address

phonestring

phone - Guest's contact number

partner_referencestring

partner_reference - The given unique partnerReference ID of booking

pageintegerint32

page - Page number for results

per_pageintegerint32

per_page - How many results per page - if not provided default value from user account will be used

querystring

query - Free phrase for text search for example &query=John

statusstring

status - Filter bookings by status reserved|waiting|cancellation_requested|cancelled|approved|expired|rejected|refunded|refund_declined

curl -i -X GET \
  'https://docs.bemyguest.com.sg/_mock/openapi/v2/bookings?date_start=string&date_end=string&first_name=string&last_name=string&email=string&phone=string&partner_reference=string&page=0&per_page=0&query=string&status=string' \
  -H 'X-Authorization: YOUR_API_KEY_HERE'

Responses

A successful response containing a paginated list of bookings.

Bodyapplication/json
dataArray of objects(BookingSummary)
data[].​uuidstring

UUID of the booking

data[].​codestring

7 alphanumeric booking code

data[].​partnerReferencestring

External booking reference from partner

data[].​statusstring

booking status (reserved, waiting, approved, canceled, expired, rejected)

data[].​createdAtstring

created date/time

data[].​updatedAtstring

last updated date/time

Response
application/json
{ "data": [ { … }, { … } ], "links": [ { … } ], "meta": { "pagination": { … } }, "timestamp": "2025-08-18T12:18:09.480+08:00" }

Request

Retrieves the current status and details of a specific booking using its UUID.

Security
Authorization
Path
uuidstring(uuid)required

UUID of booking

curl -i -X GET \
  'https://docs.bemyguest.com.sg/_mock/openapi/v2/bookings/{uuid}' \
  -H 'X-Authorization: YOUR_API_KEY_HERE'

Responses

A successful response containing booking information.

Bodyapplication/json
dataobject(BookingDetails)

This object is returned in the response whenever a booking is created, modified or viewed in the API

data.​adultsinteger
data.​amountBreakdownArray of objects(AmountBreakdown)
data.​amountBreakdown[].​namestringrequired
data.​amountBreakdown[].​pricestringrequired
data.​amountBreakdown[].​quantityintegerrequired
data.​arrivalDatestring(date)
data.​cancellationRequestAtstring or null
data.​cancellationRequestStatusstring
data.​cancellationStatusstring or null
data.​childreninteger
data.​codestring
data.​completedAtstring or null
data.​createdAtstring
data.​currencyCodestring
data.​currencyUuidstring(uuid)
data.​emailstring(email)
data.​firstNamestring
data.​lastNamestring
data.​linksArray of objects(Link)
data.​links[].​methodstringrequired
data.​links[].​relstringrequired
data.​links[].​hrefstringrequired
data.​optionsArray of arrays
data.​partnerReferencestring
data.​phonestring
data.​productTypeTitlestring
data.​productTypeTitleTranslatedstring
data.​productTypeUuidstring(uuid)
data.​refundAmountnumber or null
data.​refundDatestring or null
data.​refundTransactionstring or null
data.​salutationstring
data.​seniorsinteger
data.​statusstring
data.​ticketTypesArray of objects(TicketType)
data.​ticketTypes[].​quantityintegerrequired
data.​ticketTypes[].​typestringrequired
data.​timeSlotstring
data.​totalAmountnumber
data.​updatedAtstring
data.​uuidstring(uuid)
timestampstring(date-time)
Response
application/json
{ "data": { "adults": 4, "amountBreakdown": [ … ], "arrivalDate": "2025-08-08", "cancellationRequestAt": null, "cancellationRequestStatus": "none", "cancellationStatus": null, "children": 0, "code": "CDAQ91W", "completedAt": "2025-08-08 13:04:07", "createdAt": "2025-08-08 13:01:57", "currencyCode": "SGD", "currencyUuid": "cd15153e-dfd1-5039-8aa3-115bec58e86e", "email": "example@bemyguest.com.sg", "firstName": "Example", "lastName": "Customer", "links": [ … ], "options": [], "partnerReference": "BMG90700965", "phone": "+650123456", "productTypeTitle": "Example Product Type Title", "productTypeTitleTranslated": "Example Product Type Title", "productTypeUuid": "ec8906df-9d13-4c78-a358-cb756fce31fc", "refundAmount": null, "refundDate": null, "refundTransaction": null, "salutation": "Mr.", "seniors": 0, "status": "approved", "ticketTypes": [ … ], "timeSlot": "14:00 - 14:00", "totalAmount": 126.08, "updatedAt": "2025-08-08 13:04:07", "uuid": "8139352b-b761-4275-951d-1d47f05e9b04" } }

Request

Updates the status of a booking to either confirm or cancel.

  • A new booking starts with the reserved status.
  • To confirm the booking and lock the inventory, you must update the status to waiting.
  • Bookings in the waiting status will expire if not actioned within 5 days.
  • To cancel a booking, a cancellation request is created and is subject to approval.
Security
Authorization
Path
uuidstring(uuid)required

UUID of booking

statusstringrequired

Status confirm or cancel

curl -i -X PUT \
  'https://docs.bemyguest.com.sg/_mock/openapi/v2/bookings/{uuid}/{status}' \
  -H 'X-Authorization: YOUR_API_KEY_HERE'

Responses

A successful response containing booking information.

Bodyapplication/json
dataobject(BookingDetails)

This object is returned in the response whenever a booking is created, modified or viewed in the API

data.​adultsinteger
data.​amountBreakdownArray of objects(AmountBreakdown)
data.​amountBreakdown[].​namestringrequired
data.​amountBreakdown[].​pricestringrequired
data.​amountBreakdown[].​quantityintegerrequired
data.​arrivalDatestring(date)
data.​cancellationRequestAtstring or null
data.​cancellationRequestStatusstring
data.​cancellationStatusstring or null
data.​childreninteger
data.​codestring
data.​completedAtstring or null
data.​createdAtstring
data.​currencyCodestring
data.​currencyUuidstring(uuid)
data.​emailstring(email)
data.​firstNamestring
data.​lastNamestring
data.​linksArray of objects(Link)
data.​links[].​methodstringrequired
data.​links[].​relstringrequired
data.​links[].​hrefstringrequired
data.​optionsArray of arrays
data.​partnerReferencestring
data.​phonestring
data.​productTypeTitlestring
data.​productTypeTitleTranslatedstring
data.​productTypeUuidstring(uuid)
data.​refundAmountnumber or null
data.​refundDatestring or null
data.​refundTransactionstring or null
data.​salutationstring
data.​seniorsinteger
data.​statusstring
data.​ticketTypesArray of objects(TicketType)
data.​ticketTypes[].​quantityintegerrequired
data.​ticketTypes[].​typestringrequired
data.​timeSlotstring
data.​totalAmountnumber
data.​updatedAtstring
data.​uuidstring(uuid)
timestampstring(date-time)
Response
application/json
{ "data": { "adults": 4, "amountBreakdown": [ … ], "arrivalDate": "2025-08-08", "cancellationRequestAt": null, "cancellationRequestStatus": "none", "cancellationStatus": null, "children": 0, "code": "CDAQ91W", "completedAt": "2025-08-08 13:04:07", "createdAt": "2025-08-08 13:01:57", "currencyCode": "SGD", "currencyUuid": "cd15153e-dfd1-5039-8aa3-115bec58e86e", "email": "example@bemyguest.com.sg", "firstName": "Example", "lastName": "Customer", "links": [ … ], "options": [], "partnerReference": "BMG90700965", "phone": "+650123456", "productTypeTitle": "Example Product Type Title", "productTypeTitleTranslated": "Example Product Type Title", "productTypeUuid": "ec8906df-9d13-4c78-a358-cb756fce31fc", "refundAmount": null, "refundDate": null, "refundTransaction": null, "salutation": "Mr.", "seniors": 0, "status": "approved", "ticketTypes": [ … ], "timeSlot": "14:00 - 14:00", "totalAmount": 126.08, "updatedAt": "2025-08-08 13:04:07", "uuid": "8139352b-b761-4275-951d-1d47f05e9b04" } }

Request

Retrieves the vouchers for a specific booking.

Please note that the download links provided require authorization and should not be sent directly to the end customer. You must download the vouchers and distribute them yourself.

Security
Authorization
Path
bookingUuidstring(uuid)required

Booking UUID

Query
pagestring

page - Page number for results. By default, the api response will only return back the first 15 vouchers on first page.

per_pagestring

per_page - How many results per page - if not provided default value will be 15

curl -i -X GET \
  'https://docs.bemyguest.com.sg/_mock/openapi/v2/bookings/{bookingUuid}/vouchers?page=string&per_page=string' \
  -H 'X-Authorization: YOUR_API_KEY_HERE'

Responses

A successful response showing a list of vouchers and download links for a booking

Bodyapplication/json
dataArray of objects(BookingVoucher)
data[].​uuidstring

UUID of voucher

data[].​generatedAtstring

voucher generated date/time

data[].​downloadedAtstring

voucher downloaded date/time via API

data[].​linksArray of objects

voucher download links - partner is required to download the vouchers to their system

data[].​visualIdstring or null

visual id of voucher if applicable

Default "null"
Response
application/json
{ "data": [ { … } ], "meta": { "pagination": { … } } }

Configuration

Endpoints for retrieving API configuration data.

Operations

Requests

Schemas that define requests.

Responses

Schemas that define API responses.

Webhooks