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_idis the event'suniqueId.revenueincludes fees and tax, less discounts and refunds. It is not a payout figure.tickets_soldis sold minus what is held in checkouts right now.ticket_sold_last_24_hoursis payments minus refunds in the last 24 hours, and never below 0.totalcounts more events than the list can show, so usehasManyto 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.