Skip to content

Events

List events

GET /partners/events lists your venue's events. It returns everything by default, including past events, drafts and events that are turned off, so filter for what you want.

For events you can show the public, use:

curl "https://production.speakeasygo.com/partners/events?version=PUBLISHED&status=ENABLED&eventStatus=APPROVED&timeVersion=UPCOMING&orderBy=startDateTime|asc&take=50" \
  -H "token: $SPEAKEASY_VENUE_TOKEN" \
  -H "timezone: America/New_York"

Members-only events are never on this list. Discounted events are left out unless you send isDiscounted=true.

Parameters

Parameter Meaning
skip, take Paging. take is 1 to 50, and the default is 10.
version PUBLISHED or DRAFTED
status ENABLED or DISABLED
eventStatus APPROVED, IN_REVIEW, EDITING or REJECTED
timeVersion PAST (ended), UPCOMING (today and later), FUTURE (after today) or TODAY
isPremium true for events with online tables or table requests
isDiscounted true for discounted events only
orderBy field|asc or field|desc. The field can be startDateTime, endDateTime, createdAt, updatedAt or title.
include Linked records to add, see below. Repeat it for several.

Send your venue's time zone in the timezone header. It decides where "today" starts. Without a valid one we use America/Chicago.

What comes back

list, total, count and hasMany. Fields to use on each event:

Field Meaning
id The event id
uniqueId The public code, such as EVE-ABC123
venueId The venue
title, description Text. description can hold HTML.
startDateTime, endDateTime yyyy-MM-dd HH:mm:ss, in UTC
status, version, eventStatus See the parameters above
isEnableOnlineTables, isEnableReservationRequest Whether the event sells tables or takes requests
isPremium true when either of those has something on offer
totalTicketIssued, totalTicketSold, totalSales Stock and sales so far
artists id, name, imageUrl, profileUrl, source
metadata What your webhook answer stored, or your Webflow id
createdAt, updatedAt ISO 8601 in UTC

Linked records

include value Adds
eventTicket Ticket types, see below
eventTicket.eventTicketHasMembershipTiers The membership tiers of each ticket type
eventTicket.eventTicketHasMembershipTiers.membershipTier The same, with the tier itself
flyer The flyer image
eventTicketLinks Rules that link one ticket type to another
customVenue The location, when the event is held somewhere else
venue The venue
venue.logo, venue.venueAttachment The venue's logo and files
venue.venueSettings The venue's settings, including currencyCode
venue.venueSettings.venueEventSettings The venue's event settings

Anything else in include is ignored.

Ticket types

With include=eventTicket, each event has a list eventTicket. Fields to use:

Field Meaning
id, uniqueId The ticket type
tierName, tierDescription Its name and text
price The price, before fees and tax
issuedUnits, soldUnits, inCartUnits Stock. soldUnits includes tickets held in checkouts (inCartUnits).
beginSale, endSale The sale window, yyyy-MM-dd HH:mm:ss in UTC
isAddOn An add-on
order The order to show them in
status, isDeleted Show only ENABLED and not deleted
sellingPaused, isProtected, isMembersOnly Do not show these as on sale to the public

The list is not filtered for you. Filter it yourself before you show it.

These numbers are for showing. They do not hold anything.

Sales numbers

GET /partners/events/statistics gives sales for your venue's events that are public and start today or later. They come latest first. No parameters are needed, apart from skip and take (up to 50, and the default is 50).

{
  "total": 12,
  "list": [
    {
      "event_id": "EVE-ABC123",
      "ticket_sold": 118,
      "total_revenue": 3540.5,
      "ticket_sold_last_24_hours": 9,
      "ticket_types": [
        { "ticket_name": "General Admission", "tickets_sold": 100, "price": 25, "revenue": 2750 }
      ]
    }
  ],
  "hasMany": false,
  "count": 1
}
  • event_id is the event's uniqueId.
  • revenue includes fees and tax, less discounts and refunds. It is not a payout figure.
  • tickets_sold is sold minus what is held in checkouts right now.
  • ticket_sold_last_24_hours is payments minus refunds in the last 24 hours, and never below 0.
  • total counts more events than the list can show, so use hasMany to page.

Store a Webflow item id

POST /partners/event/:eventId/update-webflow-cms-id stores your Webflow item id on an event. eventId is the event's id, not its uniqueId.

curl -X POST "https://production.speakeasygo.com/partners/event/22222222-2222-4222-8222-222222222222/update-webflow-cms-id" \
  -H "token: $SPEAKEASY_VENUE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "webflowCmsId": "abc123" }'

The answer is true.

Warning

This replaces the event's metadata with { "webflow_item_ID": "abc123" }. Anything else stored there is gone. It changes nothing in Webflow itself.

An event that is not found, is deleted or belongs to another venue gets a 400.