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/me

Returns 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"
}
FieldMeaning
modetest or live, matching the key you called with
settlementModeon_account (invoiced to you) or pay_link (customer pays on our secure hosted payment page)
commsModecustomer sends the confirmation to the customer; vendor routes it to your notification address
pricingModeOne of list_plus_commission, net_rate, list_only. See below.
commissionWith 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.
netRateBpsWith net_rate only (basis points).
freeCancelHoursHow long before the start a cancellation is free. See cancellation.
holdMinutesHow long a pay-link booking is held awaiting payment.
rateLimitPerMinuteYour per-key request limit.
creditLimitCentsYour 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.
openCentsWhat 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.
certificationTest keys only: sandbox checklist progress and the next step to do. See Certification.

Which experiences can I sell?

GET/experiences

Returns 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"
}
  • images holds absolute URLs for thumb, main and hero; any of them can be null, so have a fallback.
  • publicUrl is the experience's page on the operator's own site.
  • leadTimeHours is the minimum notice for this experience (or null). Availability already applies it.
  • options are what a customer picks (for example a lap package). Use the option id as optionId when you quote or book. isRideAlong options take no driving seat.
  • An unknown slug is 404 NOT_FOUND. A real experience that is not enabled for your account is 403 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.

pricingModeOption fieldsWhat it means
list_plus_commissionlistPriceCents, commissionCentsYou sell at the list price and earn the commission shown per option. For a fixed commission, commissionCents is the flat per-booking amount.
net_ratelistPriceCents, netPriceCentsYou pay the net price for each option; the difference to the list price is your margin. The concession fee passes through in full.
list_onlylistPriceCentsList 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.