Skip to main content

Public endpoints

All endpoints use https://api.my-playrooms.de/v1. The complete machine-readable contract is available at /v1/openapi.json.

Catalog​

MethodPathAuthenticationResult
GET/v1/playroomsNoneArray of playroom summaries. currentPage can select a page; the server currently returns up to 20 items without pagination metadata.
GET/v1/playrooms/{urlPath}NoneDetailed playroom information.
GET/v1/playrooms/{urlPath}/booking-optionsNoneAvailable booking times and prices.

Orders​

MethodPathAuthenticationResult
POST/v1/ordersX-API-Key and Idempotency-KeyCreates an order and returns its orderId.
GET/v1/orders/{orderId}X-API-KeyReturns the order owned by the API key.
POST/v1/orders/{orderId}/paymentX-API-KeyCreates a hosted payment session and returns paymentUrl.

The API creates the booking and payment session; it does not process card payment inside the API request. The guest completes payment at the hosted payment page.

Errors and limits​

  • 400: invalid request or domain validation error.
  • 401: missing or invalid API key.
  • 404: resource or order not found.
  • 429: rate limit exceeded.
  • 500: unexpected server error.

Application errors normally use ProblemDetails with title, status, and detail. Do not rely on a stable code property. Some unexpected legacy 500 responses use a legacy error envelope, so clients should handle both forms defensively.

The public API permits 200 requests per 60 seconds, partitioned by API key when one is supplied and otherwise by client IP. There is no documented daily limit.

Webhooks​

The public API currently provides no outgoing booking webhooks. Poll GET /v1/orders/{orderId} for order status. Stripe webhook endpoints in the backend are internal payment integrations and are not public API endpoints.