Learn

ticketZ for Developers

Read events, venues, and seating from the ticketZ API, and build on the same endpoints our mobile app uses.

ticketZ exposes a JSON API under /api on the same domain as the website. Public listing endpoints need no authentication. Endpoints that read or change account data expect a Clerk session, either the browser cookie or a bearer token issued to the mobile app.

The API is versionless today and may change. Pin your integration to the fields you use and check Updates for announcements.

List published events

Returns events with organizer details and aggregated availability and lowest price.

curl https://your-ticketz-domain/api/events?status=published

Fetch one event

Includes the venue, ticket types, and media for the event page.

curl https://your-ticketz-domain/api/events/EVENT_ID

Read a seating map

Sections, layout objects, and seat status for a seated event. Expired holds are released on read.

curl https://your-ticketz-domain/api/seating/EVENT_ID

Authenticated requests

Pass a Clerk session token as a bearer token. The response mirrors the signed-in user, including role.

curl https://your-ticketz-domain/api/mobile/auth/me \
  -H "Authorization: Bearer CLERK_SESSION_TOKEN"

Endpoint overview

GET /api/events

Public. Filter with status and adminId query parameters.

GET /api/events/:id

Public. Full event document with populated organizer.

GET /api/venues, GET /api/venues/:id

Public. Venue details, address, map coordinates, and capacity.

GET /api/seating/:eventId

Public. Seat map with live availability.

POST /api/seating/:eventId/hold and /release

Signed in. Reserve or release seats during checkout.

GET /api/tickets, GET /api/orders

Signed in. The current user’s tickets and orders.

POST /api/validate

Organizer or staff. Validate a QR payload at the door.

POST /api/mobile/payments/create-intent

Signed in. Create a Stripe PaymentIntent for the mobile checkout.

Good to know

  • All IDs are MongoDB ObjectIds. Invalid IDs return a 400 with an error message.
  • Writes to events, venues, and ticket types require an organizer account and are scoped to that organizer.
  • Stripe and Clerk webhooks are handled server-side. You do not need to forward them.
  • Rate limits are not enforced yet, but please cache listing responses for at least 30 seconds.

Building something?

Let us know what you are integrating so we can keep the endpoints you rely on stable.