This is the generated support view for every stable public server operation. The API manifest, exact request/success contracts, rate policies, browser-manage capability registry, side-effect registry, and release-support metadata generate every row. A new operation cannot silently appear in the API without appearing here exactly once.
Use the machine-readable JSON for release automation. Use OpenAPI 3.1 for client generation. Each operation links to its workflow guide.
Reading the matrix
- Stable means the route is part of the customer-facing REST and server SDK contract. The matrix and JSON list only those supported operations; any route not shown here is not part of the public server API.
- Auth states secret-key access and the exact
mse_capability alternatives for the 26 operations that deliberately accept a browser manage token. - Schemas are named request and primary success schemas.
no bodyis an explicit contract, not missing documentation. - Reliability distinguishes transient read/header-replay retries from single-attempt mutations and shows only the rate budgets runtime enforces.
- Side effects name documented webhook events and durable audit surfaces. “No public side effect declared” does not exclude metrics, traces, caches, or internal diagnostic logging.
- Expand Error contract for the exact operation status/code set.
Health
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
getReadinessGET /health/readystable | None | no body → 200 ReadinessReport | transient-read; readiness 30/60sError contract429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Charts
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
listChartsGET /v1/chartsstable | Secret key only | no body → 200 ChartPage | transient-read; no published operation budgetError contract401 bad_key, 404 workspace_not_found_or_disabled, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createChartPOST /v1/chartsstable | Secret key only | ChartCreateRequest → 201 ChartEnvelope | exact-header-replay; no published operation budgetError contract400 name_required|invalid_idempotency_key, 401 bad_key, 403 forbidden, 409 idempotency_conflict|idempotency_in_progress, 422 workspace_not_found_or_disabled|invalid_chart, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveChartGET /v1/charts/{chartId}stable | Secret key only | no body → 200 ChartDocument | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateChartPUT /v1/charts/{chartId}stable | Secret key only | ChartUpdateRequest → 200 ChartEnvelope | single-attempt; no published operation budgetError contract400 expectedUpdatedAt_required, 401 bad_key, 403 forbidden|edit_not_allowed|feature_policy_violation, 404 not_found|chart_not_found, 409 conflict|draft_snapshot_missing|draft_snapshot_invalid|safe_mode_violation|published_snapshot_missing|published_snapshot_invalid, 413 chart_too_large, 422 invalid_chart, 500, 503 maintenance_mode | audit: chart-semantic-audit | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
deleteChartDELETE /v1/charts/{chartId}stable | Secret key only | no body → 200 DeleteChartResult | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
copyChartPOST /v1/charts/{chartId}/duplicatestable | Secret key only | ChartCopyRequest → 201 ChartEnvelope | exact-header-replay; no published operation budgetError contract400 invalid_idempotency_key, 401 bad_key, 403 forbidden, 404 not_found, 409 idempotency_conflict|idempotency_in_progress, 422 workspace_not_found_or_disabled, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
archiveChartPOST /v1/charts/{chartId}/archivestable | Secret key only | no body → 200 ChartEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
unarchiveChartPOST /v1/charts/{chartId}/unarchivestable | Secret key only | no body → 200 ChartEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
publishChartPOST /v1/charts/{chartId}/publishstable | Secret key only | no body → 200 PublishChartResult | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 409 review_required|conflict, 422 nothing_to_publish|invalid_chart, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Templates
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
instantiateTemplatePOST /v1/templates/{templateId}/instantiatestable | Secret key only | TemplateInstantiateRequest → 201 ChartEnvelope | exact-header-replay; no published operation budgetError contract400 invalid_request|invalid_idempotency_key, 401 bad_key, 403 forbidden, 404 template_not_found, 409 template_version_mismatch|idempotency_conflict|idempotency_in_progress, 413 payload_too_large, 422 invalid_version|invalid_chart|unsafe_chart_asset|workspace_not_found_or_disabled, 500, 503 template_artifact_unavailable|template_integrity_error|maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Events
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
listEventsGET /v1/eventsstable | Secret key only | no body → 200 EventPage | transient-read; no published operation budgetError contract401 bad_key, 404 workspace_not_found_or_disabled, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createEventPOST /v1/eventsstable | Secret key only | EventCreateRequest → 201 EventEnvelope | exact-header-replay; no published operation budgetError contract400 chartId_required|invalid_idempotency_key, 401 bad_key, 402 insufficient_credits, 403 forbidden, 404 chart_not_found, 409 event_exists|idempotency_conflict|idempotency_in_progress, 422 invalid_currency|invalid_slug|chart_not_published|workspace_not_found_or_disabled|invalid_description|invalid_ends_at|invalid_timezone|invalid_locale|ends_before_starts|invalid_external_ref|invalid_event_inventory, 500, 503 maintenance_mode | webhook: event.created | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveEventGET /v1/events/{eventKey}stable | Secret key only | no body → 200 EventDetail | transient-read; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveEventConfigurationBindingGET /v1/events/{eventKey}/event-configurationstable | Secret key only | no body → 200 EventConfigurationBinding | transient-read; no published operation budgetError contract401 bad_key, 404 not_found|version_not_found, 409 configuration_inventory_state_conflict|configuration_inventory_seat_conflict, 500, 503 configuration_artifact_unavailable|configuration_artifact_integrity_error|configuration_inventory_state_invalid|configuration_inventory_state_conflict | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateEventConfigurationBindingPUT /v1/events/{eventKey}/event-configurationstable | Secret key only | EventConfigurationBindingUpdateRequest → 200 EventConfigurationBinding | single-attempt; no published operation budgetError contract401 bad_key, 403 module_not_enabled, 404 not_found|version_not_found, 409 event_not_editable|configuration_binding_conflict|version_not_published|event_chart_provenance_missing|incompatible_configuration|configuration_binding_invalid|configuration_inventory_state_conflict|configuration_inventory_seat_conflict, 422 invalid_request, 500, 503 configuration_artifact_unavailable|configuration_artifact_integrity_error|event_chart_unavailable|configuration_inventory_state_invalid|configuration_inventory_state_conflict|configuration_inventory_commit_pending|maintenance_mode | webhook: seat.blocked, seat.released; audit: event-configuration-binding-audit, event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateEventPATCH /v1/events/{eventKey}stable | Secret key only | EventUpdateRequest → 200 EventEnvelope | single-attempt; no published operation budgetError contract400 nothing_to_update, 401 bad_key, 403 mode_mismatch, 404 not_found|chart_unavailable, 422 invalid_section_states|unknown_section|invalid_section_state|invalid_currency|invalid_description|invalid_ends_at|invalid_timezone|invalid_locale|ends_before_starts, 500, 503 maintenance_mode | audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
deleteEventDELETE /v1/events/{eventKey}stable | Secret key only | no body → 200 Ok | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateEventPosterPUT /v1/events/{eventKey}/posterstable | Secret key only | BinaryImage → 200 EventEnvelope | single-attempt; no published operation budgetError contract400 empty_body, 401 bad_key, 403 mode_mismatch|forbidden, 404 not_found, 413 image_too_large, 415 unsupported_image, 422 image_dimensions_unsupported, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
deleteEventPosterDELETE /v1/events/{eventKey}/posterstable | Secret key only | no body → 200 EventEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch|forbidden, 404 not_found|no_poster, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateEventChartPOST /v1/events/{eventKey}/update-chartstable | Secret key only | EventChartUpdateRequest → 200 EventChartUpdateResult | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found|chart_not_found|chart_unavailable, 409 event_not_mutable|event_configuration_bound|channel_assignment_would_drop|seats_would_vanish, 500, 503 maintenance_mode | audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
closeEventPOST /v1/events/{eventKey}/closestable | Secret key only | no body → 200 SalesAliasResult | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 409 event_not_mutable|invalid_sales_transition|sales_revision_conflict, 500, 503 maintenance_mode | audit: sales-transition-audit | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
reopenEventPOST /v1/events/{eventKey}/reopenstable | Secret key only | no body → 200 SalesAliasResult | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 409 event_not_mutable|invalid_sales_transition|sales_not_ready|sales_revision_conflict, 500, 503 maintenance_mode | audit: sales-transition-audit | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
archiveEventPOST /v1/events/{eventKey}/archivestable | Secret key only | no body → 200 ArchiveEventResult | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 409 event_not_mutable, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
unarchiveEventPOST /v1/events/{eventKey}/unarchivestable | Secret key only | no body → 200 UnarchiveEventResult | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 409 event_not_archived|sales_revision_conflict, 500, 503 maintenance_mode | audit: sales-transition-audit | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listTicketReleasesGET /v1/events/{eventKey}/releasesstable | Secret key only | no body → 200 TicketReleaseList | transient-read; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateTicketReleasesPUT /v1/events/{eventKey}/releasesstable | Secret key only | TicketReleaseReplaceRequest → 200 TicketReleaseList | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found, 422 invalid_request|unknown_field|invalid_releases|too_many_releases|invalid_release|invalid_release_id|duplicate_release_id|invalid_release_name|invalid_release_category|unknown_release_category|release_category_has_tiers|invalid_release_price|invalid_previous_price|invalid_release_quota|invalid_release_window|invalid_release_action|action_url_not_allowed|action_url_required|invalid_action_url, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
closeTicketReleasePOST /v1/events/{eventKey}/releases/{releaseId}/closestable | Secret key only | no body → 200 TicketReleaseList | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch, 404 not_found|release_not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Inventory
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
holdObjectsPOST /v1/events/{eventKey}/holdstable | Secret key only | HoldRequest → 201 HoldResponse | single-attempt; server-inventory 600/60sError contract400 selections_required, 401 bad_key, 403 mode_mismatch|channel_access_denied, 404 not_found, 409 event_closed|conflict, 422 hold_quantity_exceeded|invalid_selection, 429 rate_limited, 500, 503 maintenance_mode | webhook: hold.created, seat.released; audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
extendHoldPOST /v1/events/{eventKey}/extendstable | Secret key only | ExtendHoldRequest → 200 ExtendHoldResult | single-attempt; server-inventory 600/60sError contract400 holdId_required, 401 bad_key, 403 mode_mismatch|channel_access_denied, 404 not_found, 409 cannot_extend, 429 rate_limited, 500, 503 maintenance_mode | webhook: hold.extended; audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
holdBestAvailablePOST /v1/events/{eventKey}/best-availablestable | Secret key only | BestAvailableRequest → 200 BestAvailableHoldResponse | single-attempt; server-inventory 600/60sError contract400 qty_required|invalid_zone, 401 bad_key, 403 mode_mismatch|channel_access_denied, 404 not_found|chart_unavailable, 409 event_closed|conflict, 422 unknown_zone|invalid_selection, 429 rate_limited, 500, 503 maintenance_mode | webhook: hold.created; audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
bookBestAvailablePOST /v1/events/{eventKey}/best-available-bookstable | Secret key only | BestAvailableBookRequest → 200 BestAvailableBookResponse | single-attempt; server-inventory 600/60sError contract400 bookingRef_required|qty_required|invalid_zone, 401 bad_key, 403 mode_mismatch|channel_access_denied, 404 not_found|chart_unavailable, 409 event_closed|conflict, 422 unknown_zone|invalid_selection, 429 rate_limited, 500, 503 maintenance_mode | webhook: seat.booked, event.soldout; audit: event-log, inventory-booking-lifecycle | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveHoldGET /v1/events/{eventKey}/holds/{holdId}stable | Secret key only | no body → 200 HoldInspection | transient-read; no published operation budgetError contract401 bad_key, 403 mode_mismatch|channel_access_denied, 404 not_found|hold_not_found, 409 legacy_hold_requires_restart, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
releaseObjectsPOST /v1/events/{eventKey}/releasestable | Secret key only | ReleaseRequest → 200 ReleaseResult | single-attempt; no published operation budgetError contract400 labels_and_holdId_required, 401 bad_key, 403 mode_mismatch, 404 not_found, 500, 503 maintenance_mode | webhook: seat.released; audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
bookObjectsPOST /v1/events/{eventKey}/bookstable | Secret key only | BookRequest → 200 BookResult | single-attempt; no published operation budgetError contract400 hold_or_labels_and_bookingRef_required, 401 bad_key, 403 mode_mismatch|channel_access_denied, 404 not_found, 409 hold_not_active|legacy_hold_requires_restart|conflict, 500, 503 maintenance_mode | webhook: seat.booked, event.soldout; audit: event-log, inventory-booking-lifecycle | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
boxOfficeBookObjectsPOST /v1/events/{eventKey}/box-bookstable | Secret key only | BoxOfficeBookRequest → 200 BookResult | single-attempt; no published operation budgetError contract400 labels_and_bookingRef_required, 401 bad_key, 403 mode_mismatch|channel_access_denied|forbidden, 404 not_found, 409 conflict, 500, 503 maintenance_mode | webhook: seat.booked, event.soldout; audit: event-log, inventory-booking-lifecycle | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
unbookObjectsPOST /v1/events/{eventKey}/unbookstable | Secret key; mse_: event:cancel | UnbookRequest → 200 UnbookResult | single-attempt; manage-session 300/60sError contract400 labels_and_bookingRef_required, 401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 booking_mismatch, 429 rate_limited, 500, 503 maintenance_mode | webhook: seat.released; audit: event-log, inventory-booking-lifecycle | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
blockObjectsPOST /v1/events/{eventKey}/blockstable | Secret key; mse_: event:block | BlockRequest → 200 BlockResult | single-attempt; manage-session 300/60sError contract400 labels_required, 401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 conflict, 429 rate_limited, 500, 503 maintenance_mode | webhook: seat.blocked; audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
unblockObjectsPOST /v1/events/{eventKey}/unblockstable | Secret key; mse_: event:block | LabelsRequest → 200 UnblockResult | single-attempt; manage-session 300/60sError contract400 labels_required, 401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500, 503 maintenance_mode | webhook: seat.released; audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
unblockAllObjectsPOST /v1/events/{eventKey}/unblock-allstable | Secret key; mse_: event:block | no body → 200 UnblockAllResult | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500, 503 maintenance_mode | webhook: seat.released; audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveAvailabilityGET /v1/events/{eventKey}/availabilitystable | Secret key; mse_: event:view | no body → 200 AvailabilityEnvelope | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateAvailabilityPOST /v1/events/{eventKey}/availabilitystable | Secret key; mse_: event:block | AvailabilityUpdateRequest → 200 AvailabilityUpdateResult | single-attempt; manage-session 300/60sError contract400 rules_required, 401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found|chart_unavailable, 422 invalid_availability_rule, 429 rate_limited, 500, 503 maintenance_mode | audit: event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveHoldTtlGET /v1/events/{eventKey}/hold-ttlstable | Secret key; mse_: event:view | no body → 200 HoldTtlEnvelope | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateHoldTtlPOST /v1/events/{eventKey}/hold-ttlstable | Secret key; mse_: event:block | HoldTtlRequest → 200 HoldTtlUpdateResult | single-attempt; manage-session 300/60sError contract400 holdTtlMs_required|holdTtlMs_must_be_positive_number_or_null, 401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Reports
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
listInventoryBookingsGET /v1/events/{eventKey}/bookingsstable | Secret key; mse_: event:view or event:reports | no body → 200 InventoryBookingPage | transient-read; manage-session 300/60sError contract400 invalid_cursor|invalid_booking_state, 401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveInventoryBookingGET /v1/events/{eventKey}/bookings/{bookingRef}stable | Secret key; mse_: event:view or event:reports | no body → 200 InventoryBookingDetail | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listInventoryBookingChangesGET /v1/events/{eventKey}/booking-changesstable | Secret key; mse_: event:view or event:reports | no body → 200 InventoryBookingChangePage | transient-read; manage-session 300/60sError contract400 invalid_after, 401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveEventReportGET /v1/events/{eventKey}/reportstable | Secret key; mse_: event:reports | no body → 200 EventReportEnvelope | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveEventLogGET /v1/events/{eventKey}/logstable | Secret key; mse_: event:reports | no body → 200 EventLogPage | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveChannelReportGET /v1/events/{eventKey}/channels/reportstable | Secret key; mse_: event:channels:viewevent:reports: Includes configured booked-value fields in the channel report. | no body → 200 ChannelReportEnvelope | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Sales channels
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
listChannelsGET /v1/events/{eventKey}/channelsstable | Secret key; mse_: event:channels:view | no body → 200 ChannelList | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createChannelPOST /v1/events/{eventKey}/channelsstable | Secret key; mse_: event:channels:manage | ChannelCreateRequest → 201 ChannelMutationEnvelope | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_name_taken, 422 channel_name_required|invalid_access_intent|channel_request_invalid, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit, event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateChannelPATCH /v1/events/{eventKey}/channels/{channelId}stable | Secret key; mse_: event:channels:manage | ChannelUpdateRequest → 200 ChannelMutationEnvelope | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found|chart_unavailable, 409 channel_name_taken|channel_archived|channel_access_intent_forbids|channel_intent_switch_blocked|channel_pricing_conflict, 422 channel_name_required|invalid_access_intent|invalid_channel_pricing|channel_request_invalid, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit, event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateChannelAssignmentsPOST /v1/events/{eventKey}/channels/assignmentsstable | Secret key; mse_: event:channels:manage | ChannelAssignmentRequest → 200 AssignmentResult | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_archived|channel_assignment_conflict|channel_assignment_would_drop, 422 labels_required|assignment_version_required|invalid_channel_destination|too_many_units|channel_request_invalid, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit, event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listChannelAllocationGET /v1/events/{eventKey}/channels/allocationstable | Secret key; mse_: event:channels:view | no body → 200 ChannelAllocationPage | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveChannelAccessPreviewGET /v1/events/{eventKey}/channels/previewstable | Secret key; mse_: event:channels:view | no body → 200 ChannelPreview | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 422 invalid_channel_scope, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
pauseChannelPOST /v1/events/{eventKey}/channels/{channelId}/pausestable | Secret key; mse_: event:channels:manage | ChannelReasonRequest → 200 ChannelMutationEnvelope | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_archived, 422 channel_state_invalid|channel_request_invalid, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit, event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
unpauseChannelPOST /v1/events/{eventKey}/channels/{channelId}/unpausestable | Secret key; mse_: event:channels:manage | ChannelReasonRequest → 200 ChannelMutationEnvelope | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_archived, 422 channel_state_invalid|channel_request_invalid, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit, event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
archiveChannelPOST /v1/events/{eventKey}/channels/{channelId}/archivestable | Secret key; mse_: event:channels:manage | ChannelArchiveRequest → 200 ChannelArchiveResult | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_archive_blocked_by_holds|channel_archived, 422 destination_required|invalid_channel_destination|channel_request_invalid, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit, event-log | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Buyer access
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
createBuyerAccessSessionPOST /v1/events/{eventKey}/buyer-access-sessionsstable | Secret key only | BuyerAccessSessionRequest → 201 BuyerAccessReveal | single-attempt; no published operation budgetError contract401 bad_key, 403 buyer_access_mode_mismatch, 404 not_found, 409 channel_access_intent_forbids, 422 invalid_allowed_origin|include_public_required|invalid_channel_scope|invalid_expiry|invalid_max_quantity|invalid_reference, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listBuyerAccessSessionsGET /v1/events/{eventKey}/buyer-access-sessionsstable | Secret key only | no body → 200 BuyerAccessSessionList | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
revokeBuyerAccessSessionDELETE /v1/events/{eventKey}/buyer-access-sessions/{sessionId}stable | Secret key only | no body → 200 BuyerAccessRevokeResult | single-attempt; no published operation budgetError contract401 bad_key, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createAccessLinkPOST /v1/events/{eventKey}/channels/{channelId}/access-linksstable | Secret key; mse_: event:channels:manage | AccessLinkCreateRequest → 201 AccessLinkReveal | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_unavailable|channel_access_intent_forbids|too_many_access_links, 422 invalid_expiry|invalid_max_redemptions|invalid_max_quantity|invalid_session_ttl|invalid_include_public|invalid_label, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listAccessLinksGET /v1/events/{eventKey}/channels/{channelId}/access-linksstable | Secret key; mse_: event:channels:view | no body → 200 AccessLinkList | transient-read; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 429 rate_limited, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
rotateAccessLinkPOST /v1/events/{eventKey}/channels/{channelId}/access-links/{linkId}/rotatestable | Secret key; mse_: event:channels:manage | AccessLinkRotateRequest → 201 AccessLinkReveal | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_unavailable|channel_access_intent_forbids|access_link_not_active, 422 end_active_sessions_required, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
revokeAccessLinkDELETE /v1/events/{eventKey}/channels/{channelId}/access-links/{linkId}stable | Secret key; mse_: event:channels:manage | no body → 200 AccessLinkRevokeResult | single-attempt; manage-session 300/60sError contract401 bad_key|bad_manage_session|manage_session_expired, 403 mode_mismatch|forbidden, 404 not_found, 409 channel_unavailable|access_link_not_active, 429 rate_limited, 500, 503 maintenance_mode | audit: channel-audit | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Platform
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
createManageSessionPOST /v1/events/{eventKey}/manage-sessionsstable | Secret key only | ManageSessionRequest → 201 ManageSessionReveal | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch|forbidden, 404 not_found, 422 invalid_allowed_origin|invalid_capabilities|invalid_expiry, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
revokeManageSessionDELETE /v1/events/{eventKey}/manage-sessions/{id}stable | Secret key only | no body → 200 Ok | single-attempt; no published operation budgetError contract401 bad_key, 403 mode_mismatch|forbidden, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createDesignerSessionPOST /v1/designer/sessionsstable | Secret key only | DesignerSessionRequest → 201 DesignerSessionEnvelope | single-attempt; no published operation budgetError contract400 workspaceId_and_chartId_required, 401 bad_key, 403 forbidden, 404 workspace_not_found_or_disabled|chart_not_found, 422 invalid_allowed_origin|invalid_authority|invalid_can_publish|conflicting_authority|invalid_designer_mode|safe_mode_options_require_safe_mode|invalid_safe_mode_options|invalid_expiry|invalid_features, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
revokeDesignerSessionDELETE /v1/designer/sessions/{id}stable | Secret key only | no body → 200 Ok | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listWorkspacesGET /v1/workspacesstable | Secret key only | no body → 200 WorkspaceList | transient-read; no published operation budgetError contract401 bad_key, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createWorkspacePOST /v1/workspacesstable | Secret key only | WorkspaceCreateRequest → 201 WorkspaceEnvelope | exact-header-replay; no published operation budgetError contract400 invalid_idempotency_key, 401 bad_key, 403 forbidden, 409 external_ref_exists|idempotency_conflict|idempotency_in_progress, 422 invalid_name|invalid_external_ref, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateWorkspacePATCH /v1/workspaces/{workspaceId}stable | Secret key only | WorkspaceUpdateRequest → 200 WorkspaceEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 409 default_workspace_required|default_workspace_must_be_active|external_ref_exists, 422 invalid_name|invalid_external_ref|invalid_status|invalid_default, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrieveWorkspaceGET /v1/workspaces/{workspaceId}stable | Secret key only | no body → 200 WorkspaceEnvelope | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Webhooks
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
listWebhooksGET /v1/webhooksstable | Secret key only | no body → 200 WebhookList | transient-read; no published operation budgetError contract401 bad_key, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createWebhookPOST /v1/webhooksstable | Secret key only | WebhookCreateRequest → 201 WebhookCreateEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 422 invalid_url|invalid_events|invalid_environment, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
updateWebhookPATCH /v1/webhooks/{webhookId}stable | Secret key only | WebhookUpdateRequest → 200 WebhookEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 422 invalid_url|invalid_events|invalid_mode|invalid_environment, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
deleteWebhookDELETE /v1/webhooks/{webhookId}stable | Secret key only | no body → 200 Ok | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listWebhookDeliveriesGET /v1/webhooks/{webhookId}/deliveriesstable | Secret key only | no body → 200 WebhookDeliveryPage | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
Performance Groups
| Operation | Auth | Schemas | Reliability and errors | Side effects | REST and SDK source |
|---|---|---|---|---|---|
listPerformanceGroupsGET /v1/performance-groupsstable | Secret key only | no body → 200 PerformanceGroupPage | transient-read; no published operation budgetError contract401 bad_key, 404 workspace_not_found_or_disabled, 422 invalid_state|invalid_mode, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createPerformanceGroupPOST /v1/performance-groupsstable | Secret key only | PerformanceGroupCreateRequest → 201 PerformanceGroupEnvelope | exact-header-replay; no published operation budgetError contract400 invalid_idempotency_key, 401 bad_key, 403 forbidden|module_not_enabled, 404 incompatible_performances, 409 idempotency_conflict|idempotency_in_progress|event_already_grouped|external_ref_exists|incompatible_performances, 422 invalid_name|invalid_external_ref|invalid_event_keys|incompatible_performances, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrievePerformanceGroupGET /v1/performance-groups/{performanceGroupKey}stable | Secret key only | no body → 200 PerformanceGroupEnvelope | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
deletePerformanceGroupDELETE /v1/performance-groups/{performanceGroupKey}stable | Secret key only | no body → 204 undefined | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 409 group_not_draft, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
activatePerformanceGroupPOST /v1/performance-groups/{performanceGroupKey}/activatestable | Secret key only | PerformanceGroupLifecycleRequest → 200 PerformanceGroupLifecycleEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden|module_not_enabled, 404 not_found|group_not_found, 409 group_not_draft|group_not_active|group_closing|revision_mismatch|activation_mismatch|lifecycle_operation_mismatch|event_lock_refused|registry_mismatch|activation_repair_required, 422 invalid_expected_revision, 500, 503 recovery_pending|lifecycle_unavailable|maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
closePerformanceGroupPOST /v1/performance-groups/{performanceGroupKey}/closestable | Secret key only | PerformanceGroupLifecycleRequest → 200 PerformanceGroupLifecycleEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found|group_not_found, 409 group_not_draft|group_not_active|group_closing|revision_mismatch|activation_mismatch|lifecycle_operation_mismatch|event_lock_refused|registry_mismatch|activation_repair_required, 422 invalid_expected_revision, 500, 503 recovery_pending|lifecycle_unavailable|maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrievePerformanceGroupLifecycleGET /v1/performance-groups/{performanceGroupKey}/lifecycle/{operationId}stable | Secret key only | no body → 200 PerformanceGroupLifecycleEnvelope | transient-read; no published operation budgetError contract401 bad_key, 404 not_found|group_not_found, 409 group_not_draft|group_not_active|group_closing|revision_mismatch|activation_mismatch|lifecycle_operation_mismatch|event_lock_refused|registry_mismatch|activation_repair_required, 500, 503 recovery_pending|lifecycle_unavailable | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
createPerformanceGroupBuyerAccessSessionPOST /v1/performance-groups/{performanceGroupKey}/buyer-access-sessionsstable | Secret key only | PerformanceGroupBuyerAccessSessionRequest → 201 PerformanceGroupBuyerAccessReveal | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden|buyer_access_mode_mismatch|module_not_enabled, 404 not_found, 409 performance_group_not_active|channel_access_intent_forbids|activation_mismatch|member_set_mismatch, 422 invalid_allowed_origin|include_public_required|invalid_expiry|invalid_max_quantity|invalid_reference|invalid_channel_scope, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
listPerformanceGroupBuyerAccessSessionsGET /v1/performance-groups/{performanceGroupKey}/buyer-access-sessionsstable | Secret key only | no body → 200 PerformanceGroupBuyerAccessSessionList | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
revokePerformanceGroupBuyerAccessSessionDELETE /v1/performance-groups/{performanceGroupKey}/buyer-access-sessions/{sessionId}stable | Secret key only | no body → 200 PerformanceGroupBuyerAccessRevokeResult | single-attempt; no published operation budgetError contract401 bad_key, 404 not_found, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrievePerformanceGroupHoldGET /v1/performance-groups/{performanceGroupKey}/holds/{operationId}stable | Secret key only | no body → 200 PerformanceGroupHoldEnvelope | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 409 performance_group_integrity_error, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
bookPerformanceGroupHoldPOST /v1/performance-groups/{performanceGroupKey}/holds/{operationId}/bookstable | Secret key only | PerformanceGroupBookRequest → 200 PerformanceGroupBookingEnvelope | single-attempt; no published operation budgetError contract401 bad_key, 403 forbidden, 404 not_found, 409 hold_not_active|book_operation_mismatch|book_failed, 422 invalid_request, 500, 503 maintenance_mode | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |
retrievePerformanceGroupBookingGET /v1/performance-groups/{performanceGroupKey}/bookings/{actionId}stable | Secret key only | no body → 200 PerformanceGroupBookingEnvelope | transient-read; no published operation budgetError contract401 bad_key, 404 not_found, 500 | No public side effect declared | REST: liveNode: livePython: livePHP: liveJava: liveGo: liveRuby: live.NET: live |