What is here
- A REST API at
/api/v1: search upcoming public events, look one up, see a series and its sessions, quote the booking fee. JSON,GETonly. Described by OpenAPI 3.1 (JSON) and OpenAPI 3.1 (YAML). - An MCP server at
/mcp(Model Context Protocol, Streamable HTTP) so an AI assistant can do the same with tools. Its cards: server card and mcp.json. - Plain-text guides for assistants: llms.txt (what One Ticket is and costs) and llms-full.txt (the technical guide). The API catalog (RFC 9727) lists them all.
Booking stays on the website. Every event answer carries its page link, and that page is where a person books and pays. There is no write API, and no attendee, order or sales data: those belong to each organiser. A draft, private, unlisted or password-protected event is never returned. (The Assistant inside the organiser’s app, which drafts events, is separate: it is powered by Claude, made by Anthropic.)
REST API endpoints
| Method and path | What it answers | Cached |
|---|---|---|
GET /api/v1/events | Search upcoming public events | 1 minute |
GET /api/v1/events/{slug} | One public event, with ticket types and prices | 1 minute |
GET /api/v1/series/{slug} | A series and its upcoming public sessions | 1 minute |
GET /api/v1/fees | Quote the booking fee for a ticket price | 1 hour |
GET /api/v1/stats | Tickets issued through One Ticket | 5 minutes |
GET /api/v1 | What the API is and where it is described | 1 hour |
Search takes q, city, from, to, online, free, limit (1 to 20, default 10) and cursor, and returns the events soonest first with a total and a nextCursor. Errors are {"error": "…"} with a 4xx or 5xx status.
Try it
Find a class near you
curl "https://oneticket.com.au/api/v1/events?q=yoga&city=darwin&limit=5"
Look one up
curl https://oneticket.com.au/api/v1/events/sunday-run-club
Quote the booking fee
curl "https://oneticket.com.au/api/v1/fees?price=25¤cy=aud"
Each search result has a slug (for the event lookup) and a bookUrl: send the person there to book.
Connect an AI assistant
The MCP endpoint is https://oneticket.com.au/mcp. It needs no sign-in, so a client that takes a remote server URL connects as it is. Tools (all read-only):
| Tool | What it does |
|---|---|
search_events | Find upcoming public events by words, place, dates, online or free |
get_event | One event, with its ticket types and prices |
get_series | A series and its upcoming public sessions |
quote_ticket_fee | The booking fee for a ticket price |
get_platform_stats | Tickets issued through One Ticket |
Cursor and other clients that take a URL
{
"mcpServers": {
"oneticket": {
"url": "https://oneticket.com.au/mcp"
}
}
}
Claude Desktop (configuration file)
Claude Desktop can also add it as a custom connector, with the URL above. In its configuration file it goes through the mcp-remote bridge:
{
"mcpServers": {
"oneticket": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://oneticket.com.au/mcp"]
}
}
}
Claude Code
claude mcp add --transport http oneticket https://oneticket.com.au/mcp
Limits and rules
- Read-only, public data only, no key and no sign-in. Anything else than GET (or the CORS OPTIONS) is refused.
- Reads of events, series and the platform figures (and the same tools over MCP) are limited to 120 requests a minute for each network. Past it you get a 429 with a Retry-After header. The fee quote and the discovery files are not counted.
- Answers are cached for up to an hour, so there is no need to poll.
- Any website may call the API from a browser: it answers with open CORS.
- An event that is not public and live answers “not found”, in the same words whatever the reason.
Files for programs
| File | What it is |
|---|---|
| /openapi.json | OpenAPI 3.1 description (JSON) |
| /openapi.yaml | The same description as YAML |
| /.well-known/mcp/server-card.json | The MCP server card |
| /.well-known/mcp.json | The MCP server’s short card |
| /.well-known/api-catalog | API catalog (RFC 9727) |
| /llms.txt | What One Ticket is, in plain text, for assistants |
| /llms-full.txt | The technical guide: API, MCP, fees |
| /api | This index as JSON |
Questions, or something missing? Contact support.
Common questions
- Do I need an API key?
- No. The API and the MCP server are open and read-only, and return only what is already on public event pages.
- Can an AI assistant book tickets for me?
- No. An assistant can find events and read their prices, then send you to the event page, where you book and pay yourself.
- How many requests can I make?
- 120 reads a minute for each network, for the REST API and the MCP server together. Past that the API answers 429 with a Retry-After header. Answers are cached, so there is no need to poll.
- Which events can the API see?
- Only public, live events (and their series). Drafts, private, unlisted and password-protected events are never returned, and the API does not say whether one exists.