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

Configuration

Endpoints for retrieving API configuration data.

Operations

Requests

Schemas that define requests.

Responses

Schemas that define API responses.

Webhooks

ProductType

The full ProductType Details information object

uuidstring

UUID of product-type

titlestring

Title of product type, always in English

titleTranslatedstring

Title of product type translated on requested language

descriptionstring

Description of product type, always in English

descriptionTranslatedstring

Description of product translated on requested language

durationDaysintegerint32

Duration of activity in days

durationHoursintegerint32

Duration of activity in hours

durationMinutesintegerint32

Duration of activity in minutes

daysInAdvanceinteger or nullint32

How many days in advance booking can be made. NULL if not applicable

cutOffTimestring or null

Booking can't be made after this time. NULL if not applicable

isNonRefundableboolean

Product type non-refundable true/false

allowChildrenboolean

Is a child allowed to book this product type

allowInfantboolean

Is an infant allowed for this product type (there is no pricing for infants!)

minInfantAgeinteger or nullint32

Minimum age allowed for an infant

maxInfantAgeinteger or nullint32

Maximum age allowed for an infant

maxGroupinteger or nullint32

Maximum number of group: sum of adults, children and senior or null when not applicable

minGroupinteger or nullint32

Minimum number of group: sum of adults, children and senior or null when not applicable

instantConfirmationboolean

TRUE then confirmed booking this product should return new Booking status = approved, but if we're out of stock of e-tickets it can still return a 'Waiting' status

nonInstantVoucherboolean

TRUE = voucher needs manual processing

directAdmissionboolean

TRUE, the voucher allows direct admission, otherwise customer needs to redeem vouchers. Information about voucher redemption is showed in voucherUse and voucherRedemptionAddress

voucherUsestring or null

Instruction on how to use the voucher

Default "null"
voucherUseTranslatedstring or null

voucherUser translated on request language

Default "null"
voucherRedemptionAddressstring or null

Voucher redemption address if client needs to redeem a voucher.

Default "null"
voucherRedemptionAddressTranslatedstring or null

voucherRedemptionAddress translated on requested language.

Default "null"
voucherRequiresPrintingboolean

TRUE voucher needs to be printed. Otherwise, it can be presented eg. on mobile device

meetingTimestring or null

Meeting time

Default "null"
meetingAddressstring or null

Meeting location address

Default "null"
meetingLocationstring or null

Instructions about meeting location

Default "null"
meetingLocationTranslatedstring or null

Translated version of meetingLocation on requested language

Default "null"
cancellationPoliciesArray of objects

Cancellation Policies only applicable for refundable product

cancellationPolicySummarystring or null

Summary of Cancellation Policies for refundable product

ticketTypesArray of objects(TicketTypes)

List of all ticket types for this product type

ticketTypes[].​typestringrequired
ticketTypes[].​labelstringrequired
ticketTypes[].​allowedbooleanrequired
ticketTypes[].​minintegerint32required
ticketTypes[].​maxintegerint32required
ticketTypes[].​minAgeintegerint32required
ticketTypes[].​maxAgeintegerint32required
ticketTypes[].​recommendedMarkupnumberDeprecatedrequired
ticketTypes[].​parityPricenumberDeprecatedrequired
ticketTypes[].​gateRatePriceintegerint32Deprecatedrequired
validityobject

Four validity types of the e-tickets/vouchers currently available:

timeslotsArray of objects

Available timeslots for product, might be null. If the ProductType has timeslots, the timeslotUUID of the product is REQUIRED in Check a Booking and Create a new booking methods

timezonestring

Timezone of the product type

optionsobject(ProductTypeOptions)

Booking options

options.​perBookingArray of objects(ProductTypeOption)>= 0 items

Options per booking array

options.​perBooking[].​uuidstringrequired
options.​perBooking[].​namestringrequired
options.​perBooking[].​nameTranslatedstringrequired
options.​perBooking[].​descriptionstringrequired
options.​perBooking[].​descriptionTranslatedstringrequired
options.​perBooking[].​requiredbooleanrequired
options.​perBooking[].​addOnbooleanrequired
options.​perBooking[].​formatRegexstringrequired
options.​perBooking[].​inputTypeintegerint32required
options.​perBooking[].​minNumberintegerint32required
options.​perBooking[].​maxNumberintegerint32required
options.​perBooking[].​validFromstringrequired
options.​perBooking[].​validTostringrequired
options.​perPaxArray of objects(ProductTypeOption)>= 0 items

Options that are required/available for each person on the booking

options.​perPax[].​uuidstringrequired
options.​perPax[].​namestringrequired
options.​perPax[].​nameTranslatedstringrequired
options.​perPax[].​descriptionstringrequired
options.​perPax[].​descriptionTranslatedstringrequired
options.​perPax[].​requiredbooleanrequired
options.​perPax[].​addOnbooleanrequired
options.​perPax[].​formatRegexstringrequired
options.​perPax[].​inputTypeintegerint32required
options.​perPax[].​minNumberintegerint32required
options.​perPax[].​maxNumberintegerint32required
options.​perPax[].​validFromstringrequired
options.​perPax[].​validTostringrequired
hasOptionsboolean

true/false, indicate whether product type has booking options.

hasFileUploadOptionsboolean

true/false, indicate whether product type has booking option that require file upload

hasPriceOptionsboolean

true/false, indicate whether product type has booking option which has a price.

hasRequiredPriceOptionsboolean

true/false, indicate whether product type has booking option which has a price and required is TRUE

isBmgVoucherboolean

true/false, indicate whether product type using BMG own voucher code

firstAvailabilityDatestringDeprecated

First date that is available for booking. 'False' if there is no availability date Use calendar endpoint to check availability

allowAdultsbooleanDeprecated

Is an adult allowed to book this product type true/false. Use the ticketTypes object for this information

minPaxinteger or nullint32Deprecated

Minimum number of adults. NULL if not applicable. Use the ticketTypes object for this information

maxPaxinteger or nullint32Deprecated

Maximum number of adults. NULL if not applicable. Use the ticketTypes object for this information

minAdultAgeinteger or nullint32Deprecated

Minimum age allowed for an adult. NULL if not applicable. Use the ticketTypes object for this information

maxAdultAgeinteger or nullint32Deprecated

Maximum age allowed for an adult. NULL if not applicable. Use the ticketTypes object for this information

hasChildPricebooleanDeprecated

Does product has child price

minChildreninteger or nullint32Deprecated

Minimum number of children or null when not allowed. NULL if not applicable. Use the ticketTypes object for this information

maxChildreninteger or nullint32Deprecated

Maximum number of children or null when not allowed. NULL if not applicable. Use the ticketTypes object for this information

minChildAgeinteger or nullint32Deprecated

Minimum age allowed for a child. NULL if not applicable. Use the ticketTypes object for this information

maxChildAgeinteger or nullint32Deprecated

Maximum age allowed for a child. NULL if not applicable. Use the ticketTypes object for this information

allowSeniorsbooleanDeprecated

Is a senior allowed to book this product type. Use the ticketTypes object for this information

minSeniorsinteger or nullint32Deprecated

Minimum number of seniors. NULL if not applicable. Use the ticketTypes object for this information

maxSeniorsinteger or nullint32Deprecated

Maximum number of senior. NULL if not applicable. Use the ticketTypes object for this information

minSeniorAgeinteger or nullint32Deprecated

Minimum age allowed for a senior. NULL if not applicable. Use the ticketTypes object for this information

maxSeniorAgeinteger or nullint32Deprecated

Maximum age allowed for a senior. NULL if not applicable. Use the ticketTypes object for this information

recommendedMarkupnumber or nullDeprecated

Recommended markup to adult prices if you want to match with BMG's recommended prices (RRP). Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

childRecommendedMarkupnumber or nullDeprecated

Recommended markup for child prices if you want to match with BMG's recommended prices (RRP). Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

seniorRecommendedMarkupnumber or nullDeprecated

Recommended markup for senior prices if you want to match with BMG's recommended prices (RRP). Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

adultParityPricenumber or nullDeprecated

Minimal retail price for adult. Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

childParityPricenumber or nullDeprecated

Minimal retail price for child. Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

seniorParityPricenumber or nullDeprecated

Minimal retail price for senior. Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

adultGateRatePricenumber or nullDeprecated

The rate that an adult get directly at the attraction website or gate. Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

childGateRatePricenumber or nullDeprecated

The rate that a child get directly at the attraction website or gate. Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

seniorGateRatePricenumber or nullDeprecated

The rate that a senior get directly at the attraction website or gate. Null if not applicable. Use either the calendar endpoint or price-list endpoint to check pricing

isSrvEligiblebooleanDeprecated

true/false. indicate whether this product type is available for Singapore Rediscover Vouchers Promo.

{ "uuid": "d11b9919-4da2-5a4c-bcea-c3b9f688cc62", "title": "River Safari Admission with Two Boat Rides", "titleTranslated": "River Safari Admission with Two Boat Rides", "description": "description.... descriptions....", "descriptionTranslated": "descriptions...descriptions....", "durationDays": 0, "durationHours": 8, "durationMinutes": 0, "daysInAdvance": 1, "cutOffTime": "17:00", "firstAvailabilityDate": "2024-01-20", "isNonRefundable": true, "allowAdults": true, "minPax": 1, "maxPax": 10, "minAdultAge": 13, "maxAdultAge": 60, "hasChildPrice": true, "allowChildren": true, "minChildren": 0, "maxChildren": 10, "minChildAge": 6, "maxChildAge": 12, "allowSeniors": true, "minSeniors": 0, "maxSeniors": 10, "minSeniorAge": 61, "maxSeniorAge": 90, "allowInfant": true, "minInfantAge": 0, "maxInfantAge": 2, "maxGroup": 5, "minGroup": 2, "instantConfirmation": true, "nonInstantVoucher": false, "directAdmission": true, "voucherUse": "instruction..instruction....", "voucherUseTranslated": "how to use....how to use....", "voucherRedemptionAddress": "redeem here....redeem here....", "voucherRedemptionAddressTranslated": "redeem here...redeem here....", "voucherRequiresPrinting": false, "meetingTime": "13:00", "meetingAddress": "This address...this address", "meetingLocation": "Meet here....meet here...", "meetingLocationTranslated": "Meet here....meet here....", "cancellationPolicies": [ {}, {} ], "cancellationPolicySummary": "Cancellation of at least 48 hrs before arrival: 100% refund\\nCancellation between 48 hrs and 24 hrs before arrival: 10% refund\\nExtra cancellation or refund fees may apply. Any cancellations falling outside of the above policy are strictly non-refundable", "recommendedMarkup": 66.67, "childRecommendedMarkup": 66.67, "seniorRecommendedMarkup": 66.67, "adultParityPrice": 60, "childParityPrice": 60, "seniorParityPrice": 60, "adultGateRatePrice": 80, "childGateRatePrice": 80, "seniorGateRatePrice": 80, "ticketTypes": [ {}, {}, {}, {}, {} ], "validity": { "type": "only_visit_date", "days": null, "date": null, "hasBatchValidityDate": false }, "timeslots": [ {}, {}, {}, {}, {}, {}, {}, {}, {} ], "timezone": "Europe/Berlin", "options": { "perBooking": [], "perPax": [] }, "hasOptions": true, "hasFileUploadOptions": false, "hasPriceOptions": false, "hasRequiredPriceOptions": false, "isBmgVoucher": false, "isSrvEligible": false }

ProductTypeOption

A booking option that is a available for a ProductType

uuidstringrequired
namestringrequired
nameTranslatedstringrequired
descriptionstringrequired
descriptionTranslatedstringrequired
requiredbooleanrequired
addOnbooleanrequired
formatRegexstringrequired
inputTypeintegerint32required
minNumberintegerint32required
maxNumberintegerint32required
validFromstringrequired
validTostringrequired
{ "uuid": "string", "name": "string", "nameTranslated": "string", "description": "string", "descriptionTranslated": "string", "required": true, "addOn": false, "formatRegex": "string", "inputType": 4, "minNumber": 0, "maxNumber": 0, "validFrom": "string", "validTo": "string" }

ProductTypeOptions

perBookingArray of objects(ProductTypeOption)>= 0 items

Options per booking array

perBooking[].​uuidstringrequired
perBooking[].​namestringrequired
perBooking[].​nameTranslatedstringrequired
perBooking[].​descriptionstringrequired
perBooking[].​descriptionTranslatedstringrequired
perBooking[].​requiredbooleanrequired
perBooking[].​addOnbooleanrequired
perBooking[].​formatRegexstringrequired
perBooking[].​inputTypeintegerint32required
perBooking[].​minNumberintegerint32required
perBooking[].​maxNumberintegerint32required
perBooking[].​validFromstringrequired
perBooking[].​validTostringrequired
perPaxArray of objects(ProductTypeOption)>= 0 items

Options that are required/available for each person on the booking

perPax[].​uuidstringrequired
perPax[].​namestringrequired
perPax[].​nameTranslatedstringrequired
perPax[].​descriptionstringrequired
perPax[].​descriptionTranslatedstringrequired
perPax[].​requiredbooleanrequired
perPax[].​addOnbooleanrequired
perPax[].​formatRegexstringrequired
perPax[].​inputTypeintegerint32required
perPax[].​minNumberintegerint32required
perPax[].​maxNumberintegerint32required
perPax[].​validFromstringrequired
perPax[].​validTostringrequired
{ "perBooking": [ {} ], "perPax": [ {} ] }