For developers

Public API and discovery

The booking on a website uses a small public API, and denira.io publishes machine-readable resources for agents. The admin is not part of the public API.

Machine-readable resources

Discovery resources
ResourceURLDescription
API cataloghttps://www.denira.io/.well-known/api-catalogMachine-readable catalog per RFC 9727 with links to docs, OpenAPI and status.
OpenAPIhttps://www.denira.io/openapi/public-booking.jsonOpenAPI 3.1 for the public booking and discovery endpoints listed below.
Statushttps://www.denira.io/api/healthPublic status endpoint for monitoring.
MCP server cardhttps://www.denira.io/.well-known/mcp/server-card.jsonServer card for Denira's public MCP server, which describes denira.io.
Agent skillshttps://www.denira.io/.well-known/agent-skills/index.jsonIndex of Denira's public agent skills with SHA-256 digests.

Public endpoints

Public endpoints
MethodPathDescription
GET/api/healthStatus check.
POST/api/public-booking/cart/bootstrapCreates the guest's cart and sets its token as a cookie.
GET/api/public-booking/cartThe guest's cart in the booking.
POST/api/public-booking/reservationsHolds places while the guest pays.
POST/api/public-booking/checkout/stripeCreates a Stripe Checkout payment.
POST/api/public-booking/checkout/invoiceCreates a booking paid by invoice.
POST/api/public-booking/vouchers/previewChecks a discount code or gift card against the booking.

Authentication

The endpoints above need no sign-in. The cart, reservations and checkout belong to a cart token. POST /api/public-booking/cart/bootstrap creates it and sets the denira_public_booking_cart cookie. Without the cookie, send the token in the x-denira-cart-token header. The token has nothing to do with signing in to the admin.

Without a token, GET /api/public-booking/cart returns an empty cart, reservations and checkout answer 400, and the voucher check answers 403 when the reservations don't belong to the token.

Denira does not publish OAuth or OIDC metadata for the admin, because there is no OAuth resource for agents yet.

Examples

Create a cart and fetch it with its token. merchantId is the facility's id in Denira.

Create the cart
curl -X POST https://www.denira.io/api/public-booking/cart/bootstrap \
  -H "Content-Type: application/json" \
  -d '{"merchantId": "<facility id>", "locale": "en"}'

# Response: {"success": true, "cartToken": "…"}
# And the cookie: denira_public_booking_cart=…
Fetch the cart with its token
curl https://www.denira.io/api/public-booking/cart \
  -H "x-denira-cart-token: <cartToken>"

Get started today

Create the account yourself, or let us set everything up with setup help. Start costs SEK 0 a month.

Create account

No card needed for Start. Setup help: free for the first 20 businesses.

Ask a question

We reply within 24 hours.

Moving from Bookspot?

The import brings over experiences, prices and bookings, and setup help is free for you.

Questions?

Write to us and we will reply within 24 hours.