What it does
The Events module powers your schedule UI. It exposes:
- Events (talks, workshops, sessions)
- Venues (rooms / locations)
- Speakers (bios and headshots)
Everything returned is already filtered to published items for the conference your API key belongs to.
Scopes
- events:read – required
- events:write – for workshop registrations + payment proof
Module gate: the Events module must be enabled for the conference.
List events
/api/public/v1/events/eventsPagination uses limit and offset. Default limit is 100, max is 500. Ordering is by start_at ascending (schedule order).
List venues
/api/public/v1/events/venuesVenues are returned sorted by name. No pagination is required.
List speakers
/api/public/v1/events/speakersSpeakers are returned sorted by name. No pagination is required.
List workshops
/api/public/v1/events/workshopsReturns published workshops only.
Register for a workshop
/api/public/v1/events/workshops/registrationsUses the same capacity / waitlist / offer rules as the web app. For paid workshops, a successful registration may return status=offered and a 24h offerExpiresAt.
Upload workshop payment proof
/api/public/v1/events/workshops/payment-proof/upload-urlPaid workshops require a proof file. This flow is two-step: (1) upload to a signed URL, (2) attach the returned storageUri to the workshop registration.
UI patterns (what to build)
Fetch events + venues once on your server, then group by day, track, or venue. Use start_at to build time blocks.
Fetch speakers and link them from event cards. Cache speaker data aggressively (it changes rarely).