> This page is for Entria API Reference.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.navipartner.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.navipartner.com/_mcp/server.

# Introduction

Welcome to the Entria API documentation.

Entria powers ticketing and commerce for attractions, museums and venues, timed-admission tickets, memberships, gift vouchers and donations.

This is a public API, you can build a complete storefront of your own on it: read the catalog, check availability, preview prices, build a cart, hand the shopper to a hosted payment page, and read the finished order back.

If you want to explore the API in a tool like Postman, you can download the OpenAPI file here:\
[OpenAPI JSON](https://api.entria.app/openapi.json)

## The `x-entria` store header

Every store-scoped request must carry an `x-entria` header. It identifies which store the request is for, it is not authentication and not a secret, so it's safe to send from a browser. You're given its value once your Entria backend has been created and configured.

* Header missing → `400`
* Header present but not a known store → `404`

## Authentication

Authentication is a separate concern from the store header, and most of this API needs none:

* Catalog, schedules and cart operations only need the `x-entria` header.
* `GET /api/members`, `GET /api/membership/alterations`, `GET /api/ticket/find`, and `POST /api/ticket/exchange-for-coupon` additionally require `Authorization: Bearer <token>`. Obtain one from `POST /oauth/token` — the key pair behind it is registered for your store during setup.
* `GET /api/member/me` and `GET /api/member/alterations` require a member token instead, sent as `Authorization: Bearer <token>`. The shopper gets a login code by email from `POST /api/member/login`, and `POST /api/member/session` exchanges that code for the token. A member token and a `POST /oauth/token` token are not interchangeable.
* `DELETE /api/cache` is an operational endpoint and uses a Bearer token from `POST /oauth/token`.

## Getting Started

To build a storefront on top of the API:

1. **Browse** — `GET /api/catalog/categories`, then `GET /api/catalog` for a category.
2. **Product detail** — `GET /api/product/handle/{handle}`.
3. **Availability** — `GET /api/schedules/ticket` for the dates, timeslots, capacity and indicative prices a calendar is built from.
4. **Cart** — `POST /api/cart`, then `POST /api/cart/lines`; `PATCH`/`DELETE` on cart lines as the shopper edits the basket, and `POST /api/cart/discounts` to apply discount codes.
5. **Pay** — send the shopper to the cart's `checkoutUrl`. Payment always happens on that hosted page; card details never pass through this API.
6. **Receipt** — `GET /api/order/confirmation` (or `GET /api/subscription/confirmation` for a recurring contract).

See the API Reference in the sidebar for the full set of endpoints, grouped by Catalog, Ticketing, Cart, Order, Subscription, Membership, OTP Members and Auth.