Search Documentation
Search for a documentation page...
Events API
REST API endpoints for creating, listing, updating events and reading attendees.
An event is a product flagged as an event (with a date, location, and capacity) and a single non-shippable ticket variant. Tickets are sold through the normal cart and checkout, and ticketsSold/attendees are derived from paid orders.
All endpoints require the Events tool to be enabled for the store — requests return 404 when it is off. Because events are products, they are excluded from GET /api/v1/products by default; pass ?includeEvents=true there to include them, or use the endpoints below.
List Events
Returns the store's events with their event metadata and tickets-sold counts (derived from paid orders).
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | number | — | Events per page (1-100) |
offset | number | 0 | Number of events to skip |
Response
Get Event
Returns a single event by product UUID or URL slug. Returns 404 when the product is not an enabled event.
Response
Create Event
Creates an event — internally a product with a single non-shippable ticket variant priced at price. Image URLs are downloaded and re-uploaded to the store's CDN. The slug is generated from name when omitted and must be unique within the store.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Event display name |
price | string | Yes | Ticket price as a decimal string (e.g. "29.99") |
slug | string | No | URL-friendly identifier (^[a-z0-9-]+$); auto-generated from name when omitted |
startsAt | string | No | Event start time as an ISO 8601 string |
location | string | No | Event location |
capacity | number | No | Maximum attendees — metadata only, not wired to inventory |
description | string | No | Plain text event description |
status | string | No | draft or published (default: published) |
images | string[] | No | Array of image URLs to upload |
Response (201)
Returns 409 when the slug already exists in the store.
Update Event
Partially updates event metadata. Only the fields you send are changed — omit a field to leave it unchanged, or send null to clear it. This endpoint does not change the ticket price or variants (use the Products API for those).
Request Body
| Field | Type | Description |
|---|---|---|
name | string | Event display name |
startsAt | string | null | Event start time (ISO 8601), or null to clear |
location | string | null | Event location, or null to clear |
capacity | number | null | Maximum attendees, or null to clear |
description | string | null | Plain text description, or null to clear |
status | string | draft or published |
images | string[] | Replace the event's images. External URLs are uploaded to the CDN; CDN URLs pass through. |
Response
Returns 404 when the event does not exist.
Event Attendees
Returns the attendee rollup for an event: buyers (name and email) with summed ticket quantities, aggregated from paid orders whose line items reference the event. Returns 404 when the product is not an enabled event.