Build on Zunaro
Read and write your events, orders, and tickets over a REST API, and get signed webhooks the moment something sells, refunds, or checks in. It is the same engine your dashboard runs on.
Keys are minted in Dashboard → Settings → Developers.
curl https://api.zunaro.ai/v1/events \
-H "Authorization: Bearer zun_live_..."{
"object": "list",
"data": [
{
"id": "3f0e2c4a-9d1b-4c6e-8a2f-5b7d9e1c3a50",
"object": "event",
"title": "API Demo Night",
"admission_type": "general_admission",
"timezone": "America/New_York",
"is_archived": false,
"created_at": "2026-07-01T18:00:00.000Z"
}
],
"has_more": false
}One API across the whole box office.
Events & performances
List, create, and update events. Read schedules and live per-ticket-type availability — the same math the storefront buyer sees.
In the referenceOrders
Query sales by status, buyer email, event, or performance — and record offline box-office sales (cash or pay-later). Money never moves through the API.
In the referenceTickets & check-in
Read issued tickets and admit attendees from your own tooling, with the same atomic guards as the gate scanner.
In the referenceWebhooks
Seven event types — orders, refunds, tickets, check-ins, publishes — signed per Standard Webhooks, with retries, delivery logs, and redelivery.
In the referenceStart with a guide.
Get started with the Zunaro API
Create a key in Settings → Developers, make your first request, and read the envelope, errors, and rate limits.
Read the guideSell tickets with the API
Create a published event with one POST, check availability, place an idempotent order, and check tickets in.
Read the guideReceive webhooks
Register an endpoint, verify the Standard Webhooks signature in Node.js, and handle retries and redelivery.
Read the guideBoring where it should be boring.
Predictable conventions, documented limits, no surprises. Field names are snake_case, money is integer minor units, timestamps are ISO 8601.
Bearer API keys
Authorization: Bearer zun_live_… — your organizer is resolved from the key, and read/write scopes gate every operation. Keys live in Dashboard → Settings → Developers.
One error shape
Every failure is an RFC 9457 problem+json body, and every response carries an x-request-id header you can quote to support.
Cursor pagination
Lists take ?limit= (1–100) and ?starting_after=<last id> and answer {"object": "list", "data": [...], "has_more": true}.
Safe retries
Send an Idempotency-Key header on POST/PATCH — the response is memoized for 24 hours and retries replay it instead of re-executing.
Honest rate limits
600/min per IP before auth; 300/min read and 60/min write per key. Exceeding any limit answers 429 with retry-after: 60.
Signed webhooks
Standard Webhooks HMAC-SHA256 signatures, retries backing off from 30 seconds to 24 hours, and a 410 response to unsubscribe an endpoint.
Pick your reading format.
API reference
Every endpoint, request schema, and response example — with runnable code samples.
Open the referencellms.txt
The whole reference as one plain-markdown file, made for coding agents and LLMs.
View llms.txtAgents & MCP
Zunaro events are discoverable and bookable by AI agents over the Model Context Protocol — search, availability, seat maps, and cart holds in chat; checkout stays on your storefront.
See agentic discoveryGuides
Step-by-step Academy guides: get started with the API, sell tickets end-to-end, and receive signed webhooks.
Read the guides