Public API for AI-assisted bookings
Via the public customer API you can search playrooms and create bookings up to a hosted
payment session, including directly through AI assistants. All paths live under /v1/
and are lowercase.
Public endpoints
No API key is needed for searching and reading:
| Method | Path | Description |
|---|---|---|
GET | /v1/playrooms | Browse the playroom catalog (20 items per page) |
GET | /v1/playrooms/{urlPath} | Details for a playroom |
GET | /v1/playrooms/{urlPath}/booking-options | Available check-in/check-out times and prices |
GET | /v1/openapi.json | OpenAPI description of the whole API |
Booking with an API key
Creating and paying a booking requires an API key, sent in the X-API-Key header:
| Method | Path | Description |
|---|---|---|
POST | /v1/orders | Create a booking (requires Idempotency-Key) |
GET | /v1/orders/{orderId} | Status and details of a booking |
POST | /v1/orders/{orderId}/payment | Create the payment link for a booking |
Creating an API key
Create and manage your API keys yourself in your account under API keys. The key is shown only once — store it securely. Bookings created with one of your keys are assigned to your account.
OpenAPI specification
The complete machine-readable description of all endpoints, schemas and error cases lives at /v1/openapi.json.
MCP server
AI assistants can use the same capabilities through the MCP server: /mcp. It exposes the tools search_playrooms, get_playroom, get_booking_options, create_booking, get_booking and create_payment_session.
Rules and versioning
- Versioning happens via the URL path (
/v1/, later/v2/); all paths are lowercase. - Idempotency:
POST /v1/ordersrequires anIdempotency-Keyheader so repeated calls never create a duplicate booking. - Errors: Application errors normally use
ProblemDetailswithtitle,status, anddetail; do not rely on a stablecodefield. - Rate limiting: The public API allows 200 requests per 60 seconds, partitioned by API key or client IP. There is no documented daily limit.
- Webhooks: The public API has no outgoing booking webhooks yet. Poll the order endpoint for status.