Developers
Catalog
Find out who you are, which experiences are enabled for your account, and what each option costs you.
Updated 2026-10-20
Who am I calling as?
GET
/meReturns your partner profile, the key mode, your pricing and communication settings, and the experiences allow-listed for your account. Call it first to confirm a key works.
json200 OK
{
"ok": true,
"data": {
"id": "ptr_1042",
"name": "Example Travel Desk",
"slug": "example-travel-desk",
"mode": "test",
"sandbox": true,
"keyId": "pk_test_AbC123dEf456GhI7",
"settlementMode": "on_account",
"commsMode": "customer",
"pricingMode": "list_plus_commission",
"commission": { "type": "percentage", "value": 1000, "onFee": true },
"holdMinutes": 30,
"freeCancelHours": 48,
"rateLimitPerMinute": 60,
"creditLimitCents": 2500000,
"openCents": 0,
"experiences": [
{ "slug": "supercar-drive", "name": "Supercar Driving Experience" },
{ "slug": "off-road-adventure", "name": "Off-Road Adventure" }
]
},
"requestId": "req_0a91d3"
}| Field | Meaning |
|---|---|
mode | test or live, matching the key you called with |
settlementMode | on_account (invoiced to you) or pay_link (customer pays on our secure hosted payment page) |
commsMode | customer sends the confirmation to the customer; vendor routes it to your notification address |
pricingMode | One of list_plus_commission, net_rate, list_only. See below. |
commission | With list_plus_commission only. percentage values are basis points (1000 = 10%); fixed values are cents per booking. onFee says whether the commission includes the fee. |
netRateBps | With net_rate only (basis points). |
freeCancelHours | How long before the start a cancellation is free. See cancellation. |
holdMinutes | How long a pay-link booking is held awaiting payment. |
rateLimitPerMinute | Your per-key request limit. |
creditLimitCents | Your on-account credit limit, in cents (0 = no on-account bookings). An on-account booking that would take openCents plus its total over this is refused with 409 CREDIT_LIMIT. Since 1.4.0. |
openCents | What you owe on account right now, in cents: your open and invoiced (unpaid) statements, plus any confirmed on-account booking not yet on a statement. Optional: omitted when the balance cannot be read at that moment; treat a missing value as unknown, not 0. Since 1.4.0. |
certification | Test keys only: sandbox checklist progress and the next step to do. See Certification. |
Which experiences can I sell?
GET
/experiencesReturns an array of the experiences enabled for your account, each shaped like the single-experience response below. Experiences that are not enabled for you are not listed, and experiences hidden on the public site are not returned.
What does one experience look like?
GET
/experiences/{slug}json200 OK
{
"ok": true,
"data": {
"slug": "supercar-drive",
"name": "Supercar Driving Experience",
"description": "Drive a supercar on a closed course with an instructor beside you.",
"category": { "slug": "driving-experiences", "name": "Driving Experiences" },
"images": {
"thumb": "https://booking.example.com/images/supercar-drive-thumb.webp",
"main": "https://booking.example.com/images/supercar-drive.webp",
"hero": "https://booking.example.com/images/supercar-drive-hero.webp"
},
"publicUrl": "https://booking.example.com/experiences/supercar-drive",
"leadTimeHours": 24,
"options": [
{
"id": "opt_5lap",
"name": "5 laps",
"lapCount": 5,
"isRideAlong": false,
"listPriceCents": 30000,
"commissionCents": 3000
},
{
"id": "opt_ridealong",
"name": "Ride-along (2 laps)",
"lapCount": 2,
"isRideAlong": true,
"listPriceCents": 8000,
"commissionCents": 800
}
]
},
"requestId": "req_5be2c8"
}imagesholds absolute URLs forthumb,mainandhero; any of them can benull, so have a fallback.publicUrlis the experience's page on the operator's own site.leadTimeHoursis the minimum notice for this experience (ornull). Availability already applies it.optionsare what a customer picks (for example a lap package). Use the optionidasoptionIdwhen you quote or book.isRideAlongoptions take no driving seat.- An unknown slug is
404 NOT_FOUND. A real experience that is not enabled for your account is403 FORBIDDEN.
How is each option priced for me?
Every option carries listPriceCents, the public price. What else you see depends on your account's pricing mode (pricingMode in GET /me). All amounts are integer cents in USD.
| pricingMode | Option fields | What it means |
|---|---|---|
list_plus_commission | listPriceCents, commissionCents | You sell at the list price and earn the commission shown per option. For a fixed commission, commissionCents is the flat per-booking amount. |
net_rate | listPriceCents, netPriceCents | You pay the net price for each option; the difference to the list price is your margin. The concession fee passes through in full. |
list_only | listPriceCents | List price only; no commission or net figure is exposed. |
net_rate option
json
{
"id": "opt_5lap",
"name": "5 laps",
"lapCount": 5,
"isRideAlong": false,
"listPriceCents": 30000,
"netPriceCents": 24000
}list_only option
json
{
"id": "opt_5lap",
"name": "5 laps",
"lapCount": 5,
"isRideAlong": false,
"listPriceCents": 30000
}Note
These are catalogue prices. The price of an actual cart can differ (dynamic pricing rules for the date and time, extras, a concession fee), so show customers the result of a quote, not the option list price.