This page tracks notable changes to the v2 API specification. Entries are ordered newest-first. Subscribe to this page or check back regularly to stay informed about upcoming and recently shipped changes.
2.3.2 (2026-11-11)
- An
onboardingvenue can now leaveGET /v2/venueswithout becominginactive. If the agreement the venue signed is cancelled before it goes live, the venue is removed from the list andGET /v2/venues/{id}returns404 Not Foundfor it until it signs a new one. It then returns inonboardingwith a newcreated_at. If your integration treats a venue missing from the list as deleted, expect it to come back under the sameid. See the API reference.
2.3.1 (2026-10-04)
updated_aton venues (GET /v2/venuesandGET /v2/venues/{id}) now also changes when the venue's nested data changes: its address, images (including a replaced image file), operating hours, seating areas, status timeline, seat commitments, and the availability behindmax_party_size. It also changes whenever the venue'sstatusormarket_idchanges. If your integration detects venue updates byupdated_at, it now picks up these changes. It can also change when only another entity's seat commitments change, so a newer value does not always mean the venue data you receive is different. Renaming a program updatesprogram_namein the deprecatedseat_commitmentsblock without changingupdated_at. See the API reference.updated_aton entities now also changes when the entity's logo changes.
2.3.0 (2026-09-26)
- Reservations for guests who have requested erasure of their data no longer appear in
GET /v2/reservations. Requests for them onGET /v2/reservations/{id},PATCH /v2/reservations/{id}, andPOST /v2/reservations/{id}/cancelreturn410 Gone, with a problemtypeending in/gone. - New Spanish and Arabic market locale codes on
_Locale, accepted bylocaleonPOST /v2/reservationsanddefault_localeon entities:es-AR,es-BO,es-CL,es-CO,es-CR,es-DO,es-EC,es-GT,es-HN,es-MX,es-NI,es-PA,es-PE,es-PR,es-PY,es-SV,es-US,es-UY,es-VE,ar-AE,ar-BH,ar-EG,ar-IQ,ar-JO,ar-KW,ar-LB,ar-LY,ar-MA,ar-MR,ar-OM,ar-PS,ar-QA,ar-SA,ar-YE. Every Spanish code above uses the same Spanish (Latin America) email copy and every Arabic code above the same Modern Standard Arabic copy, with times shown in the 12- or 24-hour format of the guest's market. See the Localization guide. - The region-neutral codes
es-419andar-001are removed from_Locale, replaced by the market codes above, and are no longer accepted. Requests that send either value return400 Bad Request. Send the code for the guest's country instead. external_idonPOST /v2/entitiesandPATCH /v2/entities/{id}now accepts only letters, numbers, hyphens, underscores, and periods (pattern^[A-Za-z0-9._-]+$), because the value can appear in guest email links. Requests with any other character return400 Bad Request.- New price fields on
AvailabilityOption:price_subunits(price per seat),admin_fee_subunits(admin fee per seat), andcurrency, so you can see what an option costs before holding or booking it. See the API reference. - New fields on
Hold:seat_commitment_id(the seat commitment that priced the hold, ornullwhen none did),price_subunits,admin_fee_subunits, andcurrency, copied from the availability option when the hold is created. - New fields on
Reservation:seat_commitment_id(nullwhen no seat commitment priced it),price_subunits(price per seat),admin_fee_subunits, andcurrency. On a reservation,admin_fee_subunitsis the admin fee for the whole party (the per-seat fee times the billable party size), not the per-seat amount shown on options and holds.
2.2.1 (2026-06-02)
- Documentation:
AvailabilityOption.seating_areadescription corrected from "null when venue has no seating areas configured" to "null when not assigned" —nullis also returned when the venue has seating areas but the underlying allocation is not scoped to one. - Documentation: single-resource success responses are now documented with the
{ "data": ... }envelope they have always returned. This affectsPOST /v2/reservations,GET /v2/reservations/{id},PATCH /v2/reservations/{id},POST /v2/reservations/{id}/cancel,GET /v2/venues/{id},POST /v2/entities,GET /v2/entities/{id},PATCH /v2/entities/{id},PUT /v2/entities/{id}/programs, andPOST /v2/entities/{id}/logo. The spec previously showed these as bare objects. The API behavior is unchanged — these responses have always been enveloped; this entry only corrects the spec to match runtime behavior. (POST /v2/holdsintentionally remains a bare object and is unchanged.) - Documentation: several fields that have always been able to return
nullare now correctly documented as nullable —aspect_ratio,width, andheighton image objects (nulluntil image dimensions have been processed),descriptionon seating areas (nullwhen not set),addressonGET /v2/venues/{id}(nullwhen no address is set), andline2within a present address (nullwhen the address has no second line). The spec previously declared these non-nullable, so clients validating responses strictly against 2.2.0 may have rejected nulls they were in practice receiving. The API behavior is unchanged; this entry only corrects the spec to match runtime behavior.
2.2.0 (2026-05-27)
- New
org_idJWT claim on organization-bound access tokens — the recommended way to bind entity context, especially for credentials with access to multiple entities. See requesting an organization-bound token. - New identity introspection endpoints —
GET /v2/identities/mereturns your identity with its associated entity IDs and the IDs of any delegated identities you manage;GET /v2/identities/me/delegates+GET /v2/identities/me/delegates/{id}resolve those IDs to full records. See Authentication. - New
PUT /v2/entities/{id}/programsendpoint — replaces an entity's assigned programs. Requiresentities:update. See the API reference. - New
Entityschema fields —default_program_idat the top level (settable onPOSTandPATCH),unallocated_seat_accesson eachprograms[]entry, andorg_id(the organization id you pass as theorganizationparameter when requesting a token). - New Commitments endpoints —
GET /v2/commitments,GET /v2/commitments/{id},PUT /v2/commitmentsfor viewing and managing your seat allocations. New scopes:commitments:read,commitments:update. See the Seat Allocations guide. - On
GET /v2/commitmentsrows withassignment_status: ended,peer_seatsandunallocated_seatsnow return historical snapshots of the commitment's state when the parent agreement ended (previouslynull); both fields are no longer nullable. The seat math equationtotal_seats = entity_seats + peer_seats + unallocated_seatsnow holds on ended rows. See the Seat Allocations guide. - Deprecated: the
X-Entity-Idrequest header is superseded byorg_id-bound tokens. Existing integrations continue to work and will receive adequate notice before any removal. See requesting an organization-bound token. - Deprecated: the
seat_commitmentsblock onGET /v2/venues/{id}— the block remains in responses with its current shape, andvenues:readcontinues to grant access. Migrate toGET /v2/commitments?venue_id=<id>for the same per-venue view. Removal date will be announced once existing integrations have migrated. - Documentation:
Reservation.program_idis now documented — the program id when the reservation was booked against a program-allocated seat commitment, otherwisenull. The field has always been present in responses; this entry only updates the spec.
2.1.0 (2026-04-28)
- New optional
localefield onPOST /v2/reservationscontrols the language of confirmation, reminder, and cancellation emails sent to the guest. If omitted, the server uses the entity'sdefault_locale. See the Localization guide for supported codes and resolution behavior. - Entities now accept a
default_locale(settable on create and update) that serves as the fallback locale for reservations that do not specify one. Defaults toen-US. - New
_Localereusable schema: a BCP 47-style string enum with 22 supported locale codes, shared by reservation and entity endpoints. - Seating area names are now constrained to a maximum of 32 characters across all responses that include a
seating_areaobject. - Documentation: the
_Addressschema's street fields are now correctly documented asline1andline2(previously shown asline_1/line_2in the spec). The actual API response has always usedline1/line2— this only updates the spec to match. - Documentation: clarified entity context resolution to describe JWT
org_idprecedence overX-Entity-Id. Tokens issued for an organization now resolve entity context automatically; theX-Entity-Idheader remains supported for credentials whose tokens are not org-bound. See the Authentication guide for details. No request/response schema changes. - Documentation:
GET /v2/markets,GET /v2/venues,GET /v2/reservations,POST /v2/holds,GET /v2/entities, andPOST /v2/entitiesnow document a404 Not Foundresponse. The endpoint behavior is unchanged — these endpoints have always been able to return 404 when the calling Identity cannot be resolved or when entity context resolution fails. This entry only updates the spec to match runtime behavior. - Documentation:
GET /v2/entitiesis now described as returning entities scoped to the calling Identity, rather than "all entities accessible to the caller" — the listing has always honored the Identity's entity assignments.
2.0.0 (2026-02-26)
Initial v2 release.