Skip to content

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 in data.metadata on 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 metadata every 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/events from 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.