REST API Overview
REST API Overview
Building a custom frontend, syncing events with a mobile app, or integrating with a third-party service requires programmatic access to your event data. Tickets Please exposes a full REST API that covers events, venues, organizers, tickets, attendees, cart operations, checkout, and more. The API follows WordPress REST conventions, so if you have worked with the WordPress REST API before, you already know how authentication and request patterns work.
API Namespaces
Tickets Please registers endpoints under two namespaces:
| Namespace | Resources | Purpose |
|---|---|---|
tribe/events/v1 | Events, Venues, Organizers | Event content management |
tribe/tickets/v1 | Tickets, Attendees, Cart, Checkout, Refund Requests, My Tickets, Guest Order | Ticketing and purchasing |
All endpoints are prefixed with your site’s REST URL. For a site at example.com, the base URLs are:
https://example.com/wp-json/tribe/events/v1/https://example.com/wp-json/tribe/tickets/v1/Authentication
The API uses standard WordPress REST API authentication. Which method you use depends on where your requests originate.
Logged-in users (same site): WordPress nonce authentication. Include the X-WP-Nonce header with a nonce generated by wp_create_nonce( 'wp_rest' ). This is the default method for JavaScript running on your WordPress site.
External applications: Use Application Passwords (built into WordPress 5.6+) or HTTP Basic Auth over HTTPS. Generate an Application Password under Users > Profile > Application Passwords in the WordPress admin.
Public endpoints: Some read-only endpoints (event listings, venue details) are accessible without authentication, following the same visibility rules as your site’s frontend.
Events Endpoints
The events resource at tribe/events/v1/events supports full CRUD operations.
List Events
GET /wp-json/tribe/events/v1/eventsQuery parameters:
| Parameter | Type | Description |
|---|---|---|
page | Integer | Page number for pagination (default: 1) |
per_page | Integer | Events per page (default: 10, max: 50) |
start_date | String | Filter events starting on or after this date (YYYY-MM-DD) |
end_date | String | Filter events starting on or before this date (YYYY-MM-DD) |
search | String | Search event titles and content |
categories | String | Comma-separated category term IDs |
tags | String | Comma-separated tag term IDs |
featured | Boolean | Filter to featured events only |
venue | Integer | Filter by venue post ID |
organizer | Integer | Filter by organizer post ID |
status | String | Post status (publish, draft, pending, etc.) |
Single Event
GET /wp-json/tribe/events/v1/events/{id}Create Event
POST /wp-json/tribe/events/v1/eventsRequires authentication with edit_posts capability.
Update Event
PUT /wp-json/tribe/events/v1/events/{id}Delete Event
DELETE /wp-json/tribe/events/v1/events/{id}Venues and Organizers
Venues and organizers follow the same CRUD pattern:
GET /wp-json/tribe/events/v1/venuesGET /wp-json/tribe/events/v1/venues/{id}POST /wp-json/tribe/events/v1/venuesPUT /wp-json/tribe/events/v1/venues/{id}DELETE /wp-json/tribe/events/v1/venues/{id}
GET /wp-json/tribe/events/v1/organizersGET /wp-json/tribe/events/v1/organizers/{id}POST /wp-json/tribe/events/v1/organizersPUT /wp-json/tribe/events/v1/organizers/{id}DELETE /wp-json/tribe/events/v1/organizers/{id}Tickets Endpoints
The tickets namespace handles everything related to purchasing and attendee management.
GET /wp-json/tribe/tickets/v1/ticketsGET /wp-json/tribe/tickets/v1/tickets/{id}POST /wp-json/tribe/tickets/v1/ticketsPUT /wp-json/tribe/tickets/v1/tickets/{id}DELETE /wp-json/tribe/tickets/v1/tickets/{id}
GET /wp-json/tribe/tickets/v1/attendeesGET /wp-json/tribe/tickets/v1/attendees/{id}POST /wp-json/tribe/tickets/v1/attendeesPUT /wp-json/tribe/tickets/v1/attendees/{id}DELETE /wp-json/tribe/tickets/v1/attendees/{id}Cart and Checkout
GET /wp-json/tribe/tickets/v1/cartPOST /wp-json/tribe/tickets/v1/cartPOST /wp-json/tribe/tickets/v1/checkoutAdditional Resources
POST /wp-json/tribe/tickets/v1/refund-requestsGET /wp-json/tribe/tickets/v1/my-ticketsGET /wp-json/tribe/tickets/v1/guest-orderThe my-tickets endpoint returns tickets for the authenticated user. The guest-order endpoint lets unauthenticated buyers look up their order by email and order ID.
Auto-Generated Documentation
Send a GET request to the documentation endpoint for a machine-readable list of all available routes, parameters, and response schemas:
GET /wp-json/tribe/events/v1/docThis returns a JSON document describing every endpoint in the tribe/events/v1 namespace with parameter types, required fields, and descriptions.
Response Format
All endpoints return standard WordPress REST API response structures. List endpoints include pagination headers:
X-WP-Total— total number of itemsX-WP-TotalPages— total number of pages
Responses use standard HTTP status codes: 200 for success, 201 for created, 400 for bad requests, 401 for unauthorized, 404 for not found, and 500 for server errors.
Common Questions
Can I access the API without authentication? Read-only access to published events, venues, and organizers works without authentication. Creating, updating, deleting resources, and accessing attendee or order data requires authentication.
What permissions do I need to create events via the API?
The same WordPress capabilities as creating events in the admin. Any user with the edit_posts capability can create events. Managing tickets and attendees requires edit_others_posts.
Is there rate limiting? Tickets Please does not add rate limiting beyond what your server or hosting provider enforces. If you are building a high-traffic integration, consider caching responses on your end.
Can I filter the API response fields?
Yes. Use the standard WordPress _fields parameter to request only specific fields: GET /wp-json/tribe/events/v1/events?_fields=id,title,start_date.
Does the API support batch requests?
The WordPress REST API batch endpoint (/wp-json/batch/v1) works with Tickets Please routes, allowing you to combine multiple operations into a single HTTP request.
How do I look up attendees for a specific event?
Filter the attendees endpoint by event: GET /wp-json/tribe/tickets/v1/attendees?event_id=123.
Next Steps
- REST API Reference — full endpoint details with request and response examples
- Shortcodes Reference — embed event data without writing code
- Template Overrides — customize how API-driven content renders on the frontend