Changelog
Newest first. Breaking changes are marked Breaking.
October 22, 2026
Section titled “October 22, 2026”POST /sessions/:id/completerefuses the samekeytwice inphotoswith a 400. Until this change it failed with a 500.
October 18, 2026
Section titled “October 18, 2026”POST /sets/:setId/sessionson the cloud refuses an event in venue mode with a 409,This event registers at the venue.Register on the venue server instead.
September 30, 2026
Section titled “September 30, 2026”GET /eventsandGET /events/:eventSlug/sets/:setSlugreturnvenueMode,truewhen the event runs on the venue server. The routes are the same either way.GET /healthalso returnsvenue:truefrom the venue server,falsefrom the cloud.- New page, Venue mode: how an event runs on a venue server, and
GET /venue/syncandPOST /venue/syncfor the booth to watch and start syncs to the cloud. - Breaking: events without guest details are gone, for now.
captureis no longer returned, andPOST /sets/:setId/sessionstakes 1–12 guests on every event; an emptyguestsis a 400,Add at least one guest.Labels are always the guests’ first names. POST /sessions/:id/completetakes up to 200 photos, as documented. Until this change a call with more than 14 failed with a 500 and the gallery stayed unpublished; call it again for any session that failed that way.
September 25, 2026
Section titled “September 25, 2026”- Events can take no guest details.
GET /eventsandGET /events/:eventSlug/sets/:setSlugreturncapture,"collect"or"none". On a"none"event,POST /sets/:setId/sessionstakes{ "guests": [] }, labels the sessionSession 1,Session 2and so on, and refuses guests with a 400. The queue’sguestsis then empty. - An empty
guestson an event that takes details is still a 400, now with the messageAdd at least one guest.instead of a validation error.
September 24, 2026
Section titled “September 24, 2026”POST /sets/:setId/sessionsonly registers while the event is running, the same window asGET /events: from a day before it starts until a day after it ends. Outside it you get 409.- Breaking: these docs now cover the booth API only. Routes that were documented for other uses are no longer public.
- Breaking: the booth routes lose their
/boothprefix:GET /events,GET /sets/:setId/sessions,POST /sessions/:id/uploads,POST /sessions/:id/completeandPOST /sessions/:id/cancel. The old paths give404. POST /sets/:setId/sessionscreates a session from the booth, for events without a kiosk. It takes 1–12 guests, each with a first name and an email, a phone, or both, and is limited to 60 a minute per IP address.GET /events/:eventSlug/sets/:setSlugfinds a set from the short names in its kiosk link.- New photo keys are shorter:
<event-id>/<session-id>/<photo>.jpg, without theevents/andsessions/folders. Use thekeyyou are given, as before; existing photos keep their old keys and URLs. A key fromuploadsissued before this change is refused bycompletewith a 422; upload that photo again. - Breaking: the one shared booth key is gone. Each integration gets an API key tied to one of our accounts, sent the same way (
Authorization: Bearer tlb_…). The old key now gives401. - Registration takes
firstNameandlastNameper guest again, as typed.lastNamemay be empty or left out; a missing or blankfirstNameis a 400. The singlenamefield is deprecated and will be removed.
September 23, 2026
Section titled “September 23, 2026”POST /booth/sessions/:id/uploads?count=nreturnsnsigned uploads in one call. Withoutcountthe response is unchanged.- PNG photos:
POST /booth/sessions/:id/uploads?type=pngsigns forimage/pngand gives.pngkeys. JPEG stays the default. - New photo keys sit in a folder per event:
events/<event-id>/sessions/<session-id>/<photo>.jpg. Use thekeyyou are given, as before; existing photos keep their old keys. - Registration refuses a phone number without a leading
+unless it is a real US or Canadian number, with a 400. Numbers from other countries need+and the country code.
September 22, 2026
Section titled “September 22, 2026”Docs published. No API change.
September 18, 2026
Section titled “September 18, 2026”- Rate limits added to some write routes (errors and limits). The booth routes are unaffected.
- Security headers (HSTS,
X-Frame-Options,X-Content-Type-Options,Referrer-Policy) on every response.
September 14, 2026
Section titled “September 14, 2026”- Breaking: registration takes one
nameper guest instead of separate first and last names. The server splits on the first space.
September 11, 2026
Section titled “September 11, 2026”- Gallery links are sent to guests on completion, by email and SMS, as part of
POST /booth/sessions/:id/complete.
September 10, 2026
Section titled “September 10, 2026”First booth API: /booth/events, /booth/sets/:setId/sessions, presigned JPEG
uploads, complete and cancel.