Appearance
Event endpoints
Both endpoints are read-only GETs, unauthenticated, and scoped to one venue by the {slug} path segment. The JSON below comes from test-asserted fixtures — it is real API output, not hand-maintained.
List events
GET /t/{slug}/api/eventsReturns published, publicly listed events, 12 per page, with the pagination envelope described in the introduction.
bash
curl -s https://platypus.tickets/t/nbt/api/eventsjson
{
"data": [
{
"type": "events",
"id": "1",
"attributes": {
"title": "An Evening of One-Act Plays",
"slug": "an-evening-of-one-act-plays-2030-03-14",
"category": "Drama",
"event_date": "2030-03-14T00:00:00.000000Z",
"event_time": "19:30:00",
"date_mode": "single",
"occurrence_count": 0,
"next_occurrence": null,
"occurrences": [],
"description": "Four short plays from local writers, performed back to back with one interval.",
"location": "Main Stage",
"over_18": false,
"publish_status": "published",
"tickets_enabled": true,
"show_images": true,
"small_image_path": null,
"cancellation_reason": null,
"cancelled_at": null
},
"links": {
"self": "https://platypus.tickets/t/nbt/api/events/1"
}
},
{
"type": "events",
"id": "2",
"attributes": {
"title": "The Long Run",
"slug": "the-long-run-2030-04-05",
"category": "Comedy",
"event_date": "2030-04-05T00:00:00.000000Z",
"event_time": "19:30:00",
"date_mode": "multiple",
"occurrence_count": 3,
"next_occurrence": {
"occurrence_date": "2030-04-05",
"time_label": "7:30 PM",
"location_label": "Main Stage",
"status": "scheduled"
},
"occurrences": [
{
"occurrence_date": "2030-04-05",
"time_label": "7:30 PM",
"location_label": "Main Stage",
"status": "scheduled"
},
{
"occurrence_date": "2030-04-06",
"time_label": "7:30 PM",
"location_label": "Main Stage",
"status": "scheduled"
},
{
"occurrence_date": "2030-04-07",
"time_label": "2:00 PM",
"location_label": "Main Stage",
"status": "scheduled"
}
],
"description": "A three-night season of our award season favourite.",
"location": "Main Stage",
"over_18": false,
"publish_status": "published",
"tickets_enabled": true,
"show_images": true,
"small_image_path": null,
"cancellation_reason": null,
"cancelled_at": null
},
"links": {
"self": "https://platypus.tickets/t/nbt/api/events/2"
}
}
],
"links": {
"first": "https://platypus.tickets/t/nbt/api/events?page=1",
"last": "https://platypus.tickets/t/nbt/api/events?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "https://platypus.tickets/t/nbt/api/events?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"path": "https://platypus.tickets/t/nbt/api/events",
"per_page": 12,
"to": 2,
"total": 2
}
}Get one event
GET /t/{slug}/api/events/{id}{id} is the numeric event id — use the id from the index response, or the links.self URL directly. Unknown ids, drafts, private events, and hidden-cancelled events all return 404.
bash
curl -s https://platypus.tickets/t/nbt/api/events/1json
{
"data": {
"type": "events",
"id": "1",
"attributes": {
"title": "An Evening of One-Act Plays",
"slug": "an-evening-of-one-act-plays-2030-03-14",
"category": "Drama",
"event_date": "2030-03-14T00:00:00.000000Z",
"event_time": "19:30:00",
"date_mode": "single",
"occurrence_count": 0,
"next_occurrence": null,
"occurrences": [],
"description": "Four short plays from local writers, performed back to back with one interval.",
"location": "Main Stage",
"over_18": false,
"publish_status": "published",
"tickets_enabled": true,
"show_images": true,
"small_image_path": null,
"cancellation_reason": null,
"cancelled_at": null
},
"links": {
"self": "https://platypus.tickets/t/nbt/api/events/1"
}
}
}Attributes
| Attribute | Type | Notes |
|---|---|---|
title | string | Event title |
slug | string | URL slug of the public event page (/t/{slug}/events/{event-slug}) |
category | string | Venue-chosen category label (e.g. Drama) |
event_date | string | Event date as a datetime string. For multiple-mode events this mirrors the current/next stop and advances as stops pass |
event_time | string | HH:MM:SS. Mirrors the current stop for multiple-mode events |
date_mode | string | single or multiple |
occurrence_count | integer | Number of stops. Always 0 for single-mode events |
next_occurrence | object | null | Compact occurrence the venue is pointing at now (see below). Always null for single mode |
occurrences | array | All stops in date order (see below). Always [] for single mode |
description | string | Event description; may contain HTML authored in the admin editor |
location | string | Venue/location label |
over_18 | boolean | Age-restriction flag |
publish_status | string | published or cancelled (drafts are never returned) |
tickets_enabled | boolean | Whether the event sells tickets through Platypus |
show_images | boolean | Whether the venue wants event imagery shown |
small_image_path | string | null | Path of the event image, or null |
cancellation_reason | string | null | Set when publish_status is cancelled |
cancelled_at | string | null | ISO-8601 timestamp of cancellation |
Multi-date events
When a venue schedules an event across several dates (date_mode: "multiple"), every stop is embedded inline — there is no separate occurrences endpoint. Each compact occurrence carries occurrence_date (YYYY-MM-DD), time_label, location_label, and status (scheduled or cancelled). next_occurrence points at the nearest upcoming stop, and the flat event_date/event_time mirror it.
bash
curl -s https://platypus.tickets/t/nbt/api/events/2json
{
"data": {
"type": "events",
"id": "2",
"attributes": {
"title": "The Long Run",
"slug": "the-long-run-2030-04-05",
"category": "Comedy",
"event_date": "2030-04-05T00:00:00.000000Z",
"event_time": "19:30:00",
"date_mode": "multiple",
"occurrence_count": 3,
"next_occurrence": {
"occurrence_date": "2030-04-05",
"time_label": "7:30 PM",
"location_label": "Main Stage",
"status": "scheduled"
},
"occurrences": [
{
"occurrence_date": "2030-04-05",
"time_label": "7:30 PM",
"location_label": "Main Stage",
"status": "scheduled"
},
{
"occurrence_date": "2030-04-06",
"time_label": "7:30 PM",
"location_label": "Main Stage",
"status": "scheduled"
},
{
"occurrence_date": "2030-04-07",
"time_label": "2:00 PM",
"location_label": "Main Stage",
"status": "scheduled"
}
],
"description": "A three-night season of our award season favourite.",
"location": "Main Stage",
"over_18": false,
"publish_status": "published",
"tickets_enabled": true,
"show_images": true,
"small_image_path": null,
"cancellation_reason": null,
"cancelled_at": null
},
"links": {
"self": "https://platypus.tickets/t/nbt/api/events/2"
}
}
}