Developers
Changelog
What shipped in each version of the Partner API, and what is still to come. The current version is 1.4.0.
Updated 2026-10-20
What is coming next?Coming soon
- Webhooks. Signed event delivery for booking and waiver events. Until then, poll
GET /bookings/{ref}.
Coming soon
No date is set. This page is updated when webhooks ship.
1.4.0: On-account credit limit, shared rate limits and hold release
- GET /me now includes creditLimitCents (your on-account credit limit) and openCents (open and invoiced statements plus on-account bookings not yet on a statement), both integer cents.
- New 409 CREDIT_LIMIT on POST /bookings for on-account bookings over the limit (details.reason: credit_limit, limitCents, openCents, requestedCents). Nothing is created; retry with the same Idempotency-Key once an invoice is paid. Test keys are never refused by the credit limit. Recommended: before booking, check that openCents plus the quote total is at most creditLimitCents, and do not retry CREDIT_LIMIT automatically.
- Fixed: per-key rate limits are now exact across all of our servers.
- Fixed: the cap on unpaid pay-link bookings holds exactly under concurrent requests, and seats from an expired hold are back on sale within 2 minutes of holdExpiresAt.
- Fixed: Idempotency keys are tied to your account, so a retry never creates a second booking, even after a change to your slug.
- Your client IP is now the verified edge IP, for IP allow-lists and per-IP limits.
- Documentation only: the error details fields (details.reason, details.field, maxDays, heldSeats, requestedSeats) and browser (CORS) preflight behaviour are now documented.
- Fixed: every 429 RATE_LIMITED now uses the standard error envelope, including per-IP 429s, which previously lacked requestId and details. details.retryAfterSeconds equals Retry-After, and X-Request-Id matches requestId.
1.3.0: Sandbox certification and API update notices
- GET /certification (test keys only): the sandbox checklist with progress and the exact next request. A live key answers 403 FORBIDDEN (details.reason: live_key).
- GET /me includes a certification progress block for test keys.
- Live access is switched on after the operator confirms your sandbox certification.
- API changes are emailed to your developer contact; see the overview page.
1.2.0: Pay-link settlement with capacity holds
- Pay-link accounts: POST /bookings returns 201 awaiting_payment with a payLinkUrl (our secure hosted payment page) and holdExpiresAt. The seats are held until then; unpaid bookings expire and release them, paid bookings become confirmed.
- Cancelling an unpaid pay-link booking releases the hold and answers refund: none. New UNAVAILABLE reasons: payment_in_progress (a charge is in flight) and too_many_open_holds (25 unpaid holds).
- An unpaid pay-link booking cannot be rescheduled; cancel it and book again.
- X-RateLimit-Limit and X-RateLimit-Remaining headers on every authenticated response.
1.1.0: Bookings, sandbox and statements
- POST /bookings with a required Idempotency-Key, plus GET /bookings, GET /bookings/{ref} and POST /bookings/{ref}/cancel.
- On-account bookings, invoiced to you on a monthly statement.
- Confirmation routing: to the customer, or to your notification address (account setting, or sendCustomerEmails: false per booking).
- Test keys with a sandbox: TST- bookings, no charge, no capacity held, deterministic triggers, a sandbox pay page and a 7-day purge.
- Browser (CORS) access for test keys from your listed origins.
- Bookings run the operator's full checkout validation and re-check capacity for the final cart.
1.0.0: Catalogue, availability and quotes
- GET /me, GET /experiences and GET /experiences/{slug}, with options priced for your pricing mode (list_plus_commission, net_rate, list_only).
- GET /availability (per day, up to 92 days) and GET /availability/slots (per time, seats left).
- POST /quote: prices, concession fee, totals and an advisory capacity answer.
- Bearer authentication, the { ok, data | error, requestId } envelope, per-key and per-IP rate limits, and GET /health.