Events API
The events API is a Pro feature. It gives you your upcoming events as data, so you can design your own events page or work with them in an AI tool.
Your link
Each output has its own link, in this form:
https://www.stagewire.co/v1/events/YOUR-OUTPUT-IDFind yours in the Switchboard: press Get Embed Code and copy the link under Events JSON API. No key or login is needed. It shows the same events as your widget, which are already public on your website.
Using it with an AI tool
Paste your link into ChatGPT, Claude or a similar AI chat and ask for what you want, for example: read this link and write an Instagram post about this weekend's gigs.
Ask it to use startLocal for times. The start field is in UTC, so 8:30pm in Sydney appears there as 09:30.
If your AI cannot open links, open the link in your browser, copy everything on the page and paste it into the chat instead.
When it updates
The link shows the events your last scheduled sync collected, usually once a day. Opening it never starts a sync, however often it is opened. Changes can take up to 15 minutes to appear, because responses are cached.
It returns up to 50 upcoming events, soonest first, whatever your widget's event limit is set to. Past events are not included.
Venue fields
status | active, or inactive when the wire is switched off (events is then empty). |
venue.name | Your venue name as set in the Switchboard, or your Facebook Page name. |
venue.timezone | The timezone your times are shown in, e.g. Australia/Sydney. |
generatedAt | When this response was built, in UTC. |
version | The format version. It only changes if a field is removed or renamed. |
Event fields
id | A stable ID for the event. Use it to tell events apart. |
name | The event title. |
start | Start time in UTC (ISO 8601). For display, use startLocal. |
end | End time in UTC, or null if the listing has none. |
startLocal | Start time in the venue's own timezone, with its UTC offset. Use this to show times. |
endLocal | End time in the venue's own timezone, or null. |
venue | Where it is on. Some Facebook listings put the street address here. |
address | The street address, when Facebook provides it separately. Often null. |
description | The full description, not shortened. |
image | The cover photo URL, or null. |
ticketUrl | A ticket link, or null. |
facebookUrl | The Facebook event page, or null for events that did not come from Facebook. |
Example response
{
"version": 1,
"outputId": "5c24ecaa-5f7f-43d3-81bf-0ae5849fd49b",
"status": "active",
"venue": {
"name": "Your Venue",
"timezone": "Australia/Sydney"
},
"generatedAt": "2026-10-09T06:00:00.000Z",
"events": [
{
"id": "dc2c18bb-c7cc-4752-b102-e4dced784916",
"name": "The Narrators",
"start": "2026-10-09T09:30:00+00:00",
"end": "2026-10-09T12:30:00+00:00",
"startLocal": "2026-10-09T20:30:00+11:00",
"endLocal": "2026-10-09T23:30:00+11:00",
"venue": "Your Venue",
"address": "138 Example St, Thirroul NSW 2515",
"description": "The Narrators live from 8:30.",
"image": "https://example.com/cover.jpg",
"ticketUrl": null,
"facebookUrl": "https://www.facebook.com/events/2132792240930226"
}
]
}Using it on your website
Your website can call the link directly from the browser. It allows requests from any site.
const res = await fetch("https://www.stagewire.co/v1/events/YOUR-OUTPUT-ID");
const { venue, events } = await res.json();
for (const e of events) {
// startLocal is already in the venue's timezone.
console.log(e.name, e.startLocal);
}Errors
403 pro_required | The output belongs to a Standard wire. The API is part of Pro. |
404 not_found | No output has that ID. Check the link was copied in full. |