Hear about event changes¶
We can call your server when a venue creates or changes an event. Your site can then stay up to date without asking every few minutes.
Your Speakeasy contact sets this up per venue. Tell them your URL, the method and the event type.
| Event type | Sent when | Usual method |
|---|---|---|
EVENT_CREATED |
An event is published for the first time | POST |
EVENT_UPDATED |
A published event changes, or is turned on or off | PUT |
Drafts send nothing. We send each change to one URL per venue.
What we send¶
A JSON body like this, with Content-Type: application/json.
{
"eventType": "EVENT_CREATED",
"data": {
"id": "22222222-2222-4222-8222-222222222222",
"uniqueId": "EVE-ABC123",
"title": "Sample Night",
"startDateTime": "2026-11-15 03:00:00",
"endDateTime": "2026-11-15 08:00:00",
"coverImages": [],
"flyer": null,
"metadata": null,
"isDiscounted": false,
"status": "ENABLED",
"tickets": [
{
"id": "33333333-3333-4333-8333-333333333333",
"price": 25,
"tierName": "General Admission",
"tierDescription": null,
"order": 0
}
],
"venue": { "timezone": "America/New_York", "name": "Sample Bar" }
}
}
tickets holds only ticket types that are on sale to the public: enabled, not paused, not password protected and not add-ons. Times are in UTC. See
Time and money.
Your answer matters¶
- On a POST, the JSON you answer with is saved on the event as
metadata, and it replaces what was there. Use this to keep your own id for the event, such as{ "my_page_id": "123" }. We then send it back indata.metadataon later calls. - A PUT is only sent when the event already has
metadata. So an update for an event you never answered a POST for sends nothing. - A POST for updates would replace
metadataevery time. Use PUT for updates.
Things to plan for¶
- No signature. We do not sign these calls today. Put a long random secret in your URL and keep it private, and do not trust anything else in the request.
- No retries. We try once and wait up to 60 seconds. If your server is down, that change is gone. Read
GET /partners/eventsfrom time to time to catch up. - Answer quickly. Do the work after you answer.
- Only event changes. There are no webhooks for orders, guests or reservations today. Use the sync routes for those.