Public API v1 Reference
Start with Reading The Public API for anonymous browser/server reads, pagination, refresh and retries. Download the OpenAPI 3.1 document to inspect the complete contract or generate client types. Supply your chosen API base URL when using a generated client; the artifact is environment-independent.
This page renders the reviewed artifact directly. Expand an operation for its exact query/path bounds, headers, response schemas and examples. The generator embeds schemas within each operation. Resource GETs also support HTTP HEAD semantics; CORS preflights use OPTIONS. A 304 has no response body. Missing optional data and relationship completeness are schema-defined; do not infer completeness from an empty embedded array without its metadata.
The version identifies the implemented /v1 contract. Development deployment, production support and data reuse remain separate release expectations.
Maintaining This Reference
Section titled “Maintaining This Reference”From the repository root, pnpm wavemap -- docs public-api generate regenerates the versioned asset using the API’s existing Hono/Zod generator. Review the generated diff alongside the schema/operation change. pnpm wavemap -- docs public-api check regenerates locally and fails on drift; the public API’s focused OpenAPI test also compares the artifact with the live generator. These commands need no database, runtime credentials or deployed requests. Documentation publishing remains a separate manual deployment.
OpenAPI 3.1.0; contract version 1.0.0.
GET /v1/health
200 — The process is running.
{
"description": "The process is running.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "ok"
}
},
"required": [
"status"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data"
],
"additionalProperties": false
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/ready
200 — Ready.
{
"description": "Ready.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "ready"
}
},
"required": [
"status"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data"
],
"additionalProperties": false
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/events
Active Events ordered by organizer start date, exact start instant or ascending public updatedAt/publicId. Exact-start order excludes date-only Events. Named filters combine with AND: nameContains retains main normalized/original LIKE matching, cityContains/countryContains address independently selected primary active-Venue names, exact UTC start bounds retain microseconds with an exclusive upper bound, and phase/state remain independent. updatedSince is inclusive and requires sort=updatedAt and fields containing updatedAt. Retain microseconds, use overlap and periodic full reconciliation; related-entity edits and removals are not an Event change feed. One Artist, Venue or Series context may be selected; editionId requires seriesId and narrows to its actual active Edition program. Series context follows its structure, including active Edition programs. Missing/inactive or mismatched filter contexts return an empty successful page; official Edition Venues do not imply Event membership. Other filters combine with AND; upper dates are exclusive. Timed entries precede date-only entries in either direction. Fields are atomic; include upgrades selected previews. No total count or snapshot is promised. HEAD and conditional reads have the same database cost as GET. Successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "nameContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Main Event name containment: case-insensitive original spelling or normalized accent-folded name. Percent and underscore retain LIKE wildcard meaning; no fuzzy matching. Surrounding whitespace is ignored."
},
{
"in": "query",
"name": "cityContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive LIKE containment of the primary active-Venue locality, ordered by locality, country name and Venue public ID. Requires both locality and country name; not any-Venue matching. Percent and underscore are wildcards."
},
{
"in": "query",
"name": "countryContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive LIKE containment of the independently selected primary active-Venue country name, ordered by country name, locality and Venue public ID. Not country-code or any-Venue matching. Percent and underscore are wildcards."
},
{
"in": "query",
"name": "temporalPhaseCode",
"schema": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"description": "Canonical Event schedule phase at this request's operation time, independent of cancellation."
},
{
"in": "query",
"name": "administrativeStateCode",
"schema": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"description": "Canonical Event administrative state, independent of temporal phase and parent disposition."
},
{
"in": "query",
"name": "startInstantGte",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive exact UTC start instant; zero to six fractional digits. Date-only Events have no matching instant."
},
{
"in": "query",
"name": "startInstantLt",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Exclusive exact UTC start instant; independently optional. Date-only Events have no matching instant."
},
{
"in": "query",
"name": "startLocalDateGte",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Inclusive organizer start-local-date lower bound; independent of the upper bound."
},
{
"in": "query",
"name": "startLocalDateLt",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Exclusive organizer start-local-date upper bound. This is start-date filtering, not interval overlap."
},
{
"in": "query",
"name": "updatedSince",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive public change timestamp in UTC, with zero to six fractional digits. Requires sort=updatedAt and fields containing updatedAt. Best effort: use overlap, deduplicate and periodically reconcile the complete collection."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"enum": [
"updatedAt",
"startLocalDate",
"-startLocalDate",
"startInstant",
"-startInstant"
]
},
"description": "Organizer date order, exact start-instant order excluding date-only Events, or ascending updatedAt order. Public ID ascending breaks ties."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, schedule, administrativeStateCode, profileMedia, artists, venues, description, updatedAt, eventTypeCode, digitalLocations, links, ticketLinks, directEventSeries, editionPrograms. Whitespace is ignored; dotted paths are unsupported."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: artists, venues. Whitespace is ignored; dotted paths are unsupported."
},
{
"in": "query",
"name": "artistId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"description": "One Artist context. Missing or inactive Artists match no Events; cannot combine with Venue or Series contexts."
},
{
"in": "query",
"name": "venueId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"description": "One Venue context. Missing or inactive Venues match no Events; cannot combine with Artist or Series contexts."
},
{
"in": "query",
"name": "seriesId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"description": "One active Series context: direct Events or programs of active Editions according to structure. Missing/inactive Series match no Events. Cannot combine with Artist or Venue contexts."
},
{
"in": "query",
"name": "editionId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"description": "Narrows seriesId to that active owning Edition's program; requires seriesId. Missing/inactive or mismatched ancestry matches no Events. Official Edition Venues do not imply program membership."
}
] 200 — A bounded Event page.
{
"description": "A bounded Event page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Event-owned public change marker, independent of authoring revision and related-entity edits. Not a commit watermark."
},
"artists": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia",
"description"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"venues": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia",
"description",
"capacity",
"contact",
"publishedCoordinates",
"links"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"directEventSeries": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"editionPrograms": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"eventSeries": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"required": [
"publicId",
"slug",
"name",
"dispositionCode",
"programWindow",
"eventSeries"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"eventTypeCode": {
"type": "string",
"enum": [
"online",
"in-person",
"hybrid"
]
},
"digitalLocations": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vr-chat",
"twitch",
"youtube"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"facebook",
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "AbCdEf123456",
"name": "Evening Concert"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/events/{eventId}
One active Event with all public Event fields by default. Fields selects atomic values; publicId is always present. Artist and Venue previews remain compact unless include upgrades them. Direct Series and Edition program memberships are separate nonrecursive previews; Edition members retain their actual Series and Edition-owned window. Each preview contains at most five members with a working full traversal link. Cancelled Events remain readable; missing or inactive Events return 404. The Event updatedAt excludes independent related-entity edits and time-derived schedule changes; the representation validator reflects selected content. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "eventId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, schedule, administrativeStateCode, profileMedia, artists, venues, description, updatedAt, eventTypeCode, digitalLocations, links, ticketLinks, directEventSeries, editionPrograms. Whitespace is ignored; dotted paths are unsupported."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: artists, venues. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — The selected Event representation.
{
"description": "The selected Event representation.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Event-owned public change marker, independent of authoring revision and related-entity edits. Not a commit watermark."
},
"artists": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia",
"description"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"venues": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia",
"description",
"capacity",
"contact",
"publishedCoordinates",
"links"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"directEventSeries": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"editionPrograms": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"eventSeries": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"required": [
"publicId",
"slug",
"name",
"dispositionCode",
"programWindow",
"eventSeries"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"eventTypeCode": {
"type": "string",
"enum": [
"online",
"in-person",
"hybrid"
]
},
"digitalLocations": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vr-chat",
"twitch",
"youtube"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"facebook",
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identity is illustrative.",
"value": {
"ok": true,
"data": {
"publicId": "AbCdEf123456",
"name": "Evening Concert"
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/events/{eventId}/artists
Active Artist members, ordered by bytewise name then public ID. The default projection is rich; fields selects atomic top-level values. Missing or inactive parent Events return 404; eligible empty relationships return 200. A long-name cursor whose boundary was renamed or is no longer an eligible member returns 400; restart without the cursor. HEAD and conditional reads perform the same database work as GET. Successful representations are fresh for 60 seconds. No recursive inclusion or snapshot.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "eventId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"const": "name"
}
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, profileMedia, description. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded Artist relationship page.
{
"description": "A bounded Artist relationship page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "Artist123456",
"name": "Example Ensemble"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/events/{eventId}/venues
Active Venue members, ordered by bytewise name then public ID. The default rich projection includes only explicitly published coordinates. Missing or inactive parent Events return 404; eligible empty relationships return 200. A long-name cursor whose boundary was renamed or is no longer an eligible member returns 400; restart without the cursor. HEAD and conditional reads perform the same database work as GET. Successful representations are fresh for 60 seconds. No recursive inclusion or snapshot.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "eventId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"const": "name"
}
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, statusCode, location, profileMedia, description, capacity, contact, publishedCoordinates, links. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded Venue relationship page.
{
"description": "A bounded Venue relationship page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "Venue1234567",
"name": "Example Hall"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/events/{eventId}/event-series
Active direct-Series memberships ordered by bytewise name then public ID. Compact identity and category fields are selected by default; no recursive expansion. Missing or inactive Events return 404; an eligible empty relationship returns 200. A long-name cursor must still identify an eligible unchanged member or returns 400 requiring restart. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "eventId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"const": "name"
},
"description": "Bytewise Series name then public ID ascending."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, categoryCode. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded compact membership page.
{
"description": "A bounded compact membership page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "An empty fields=name response.",
"value": {
"ok": true,
"data": [],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/events/{eventId}/editions
Active Edition program memberships grouped by actual Series name/public ID then Edition name/public ID, all bytewise. Compact Edition identity, disposition, program window and actual Series reference are selected by default. The Edition-owned window is independent of Event schedules; cancelled and postponed Editions remain readable. Missing or inactive Events return 404; eligible empty relationships return 200. Oversized grouped-name cursors require unchanged names, parent identity and eligible membership or return 400 requiring restart. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds. No recursive expansion or snapshot.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "eventId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"const": "seriesName"
},
"description": "Bytewise parent Series name and public ID, then Edition name and public ID, all ascending."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, dispositionCode, programWindow, eventSeries. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded compact membership page.
{
"description": "A bounded compact membership page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"eventSeries": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "An empty fields=name response.",
"value": {
"ok": true,
"data": [],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/venues
Active Venues, including those without Events. Named filters combine with AND. Default summary fields are independent of rich detail fields. Name ordering is bytewise; public ID ascending breaks ties in both name directions. updatedSince is inclusive and requires sort=updatedAt and fields containing updatedAt. Preserve microseconds, use overlap, deduplication and periodic full reconciliation; this is not a removal feed or commit watermark. An oversized-name cursor requires restart if its boundary was renamed or left the filtered collection. Related Events remain at /v1/events?venueId=... . No exact total, recursive inclusion or snapshot. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "nameContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive literal Venue-name substring. Surrounding whitespace is ignored; percent and underscore are literal characters, not wildcards. No fuzzy or accent-folded matching."
},
{
"in": "query",
"name": "locality",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive locality equality. Surrounding whitespace is ignored; absent locality matches no value."
},
{
"in": "query",
"name": "countryCode",
"schema": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"description": "Exact uppercase two-letter country-code equality; distinct from country-name matching."
},
{
"in": "query",
"name": "statusCode",
"schema": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"description": "Operational-status equality, independent of entity visibility. Inactive Venues are always excluded."
},
{
"in": "query",
"name": "updatedSince",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive public change timestamp in UTC, with zero to six fractional digits. Requires sort=updatedAt and fields containing updatedAt. Use overlap, deduplication and periodic complete reconciliation; absence does not establish deletion."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"enum": [
"name",
"-name",
"updatedAt"
]
},
"description": "Bytewise name order, or ascending updatedAt order; public ID ascending breaks ties."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, statusCode, location, profileMedia, description, capacity, contact, publishedCoordinates, links, updatedAt. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded Venue page.
{
"description": "A bounded Venue page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Venue-owned public change marker, independent of authoring revision and Event/Edition membership. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "Venue1234567",
"name": "Example Hall"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/venues/{venueId}
One active Venue with rich public fields and its independent updatedAt by default. Fields selects atomic top-level values; publicId is always present. Only explicitly published complete coordinates are returned. Missing or inactive Venues return 404. Traverse related Events through /v1/events?venueId=... . HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "venueId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, statusCode, location, profileMedia, description, capacity, contact, publishedCoordinates, links, updatedAt. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — The selected Venue representation.
{
"description": "The selected Venue representation.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Venue-owned public change marker, independent of authoring revision and Event/Edition membership. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identity is illustrative.",
"value": {
"ok": true,
"data": {
"publicId": "Venue1234567",
"name": "Example Hall"
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/artists
Active Artists, including those without Events. Name discovery is a literal case-insensitive substring, without fuzzy matching, accent folding or Event-count controls. Named filters combine with AND. Default summary fields are independent of rich detail fields. Name ordering is bytewise; public ID ascending breaks ties in both name directions. updatedSince is inclusive and requires sort=updatedAt and fields containing updatedAt. Preserve microseconds, use overlap, deduplication and periodic full reconciliation; this is not a removal feed or commit watermark. An oversized-name cursor requires restart if its boundary was renamed or left the filtered collection. Related Events remain at /v1/events?artistId=... . No exact total, recursive inclusion or snapshot. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "nameContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive literal Artist-name substring. Surrounding whitespace is ignored; percent and underscore are literal characters, not wildcards. No fuzzy or accent-folded matching."
},
{
"in": "query",
"name": "updatedSince",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive public change timestamp in UTC, with zero to six fractional digits. Requires sort=updatedAt and fields containing updatedAt. Use overlap, deduplication and periodic complete reconciliation; absence does not establish deletion."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"enum": [
"name",
"-name",
"updatedAt"
]
},
"description": "Bytewise name order, or ascending updatedAt order; public ID ascending breaks ties."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, profileMedia, description, links, updatedAt. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded Artist page.
{
"description": "A bounded Artist page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"bandcamp",
"soundcloud",
"spotify",
"apple-music",
"tidal",
"beatport",
"vk",
"deezer",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Artist-owned public change marker for identity, content, complete links and the selected ready profile. Event membership is independent. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "Artist123456",
"name": "Example Ensemble"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/artists/{artistId}
One active Artist with rich public fields and its independent updatedAt by default. Fields selects atomic top-level values; publicId is always present. Only the selected ready profile and bounded complete links are returned; galleries stay private. Missing or inactive Artists return 404. Traverse related Events through /v1/events?artistId=... . HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "artistId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, profileMedia, description, links, updatedAt. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — The selected Artist representation.
{
"description": "The selected Artist representation.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"bandcamp",
"soundcloud",
"spotify",
"apple-music",
"tidal",
"beatport",
"vk",
"deezer",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Artist-owned public change marker for identity, content, complete links and the selected ready profile. Event membership is independent. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identity is illustrative.",
"value": {
"ok": true,
"data": {
"publicId": "Artist123456",
"name": "Example Ensemble"
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/event-series
Lifecycle-active Series, including empty Series and those whose continuity is ended or on hiatus. Named filters combine with AND. Default summary fields are independent of rich detail fields. Selected directEvents or editions contains up to five nonrecursive members with isComplete and a paginated href; the relationship inapplicable to the actual Series structure is omitted, even when structureCode is unselected. Name ordering is bytewise; public ID ascending breaks ties in both name directions. updatedSince is inclusive and requires sort=updatedAt and fields containing updatedAt. Preserve microseconds, use overlap, deduplication and periodic full reconciliation; this is not a removal feed or commit watermark. An oversized-name cursor requires restart if its boundary was renamed or left the filtered collection. No exact total, recursive inclusion or snapshot. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "nameContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive literal Series-name substring. Surrounding whitespace is ignored; percent and underscore are literal characters. No fuzzy or accent-folded matching."
},
{
"in": "query",
"name": "categoryCode",
"schema": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
},
"description": "Exact category equality. Named filters combine with AND."
},
{
"in": "query",
"name": "structureCode",
"schema": {
"type": "string",
"enum": [
"direct-events",
"editions"
]
},
"description": "Exact structure equality; direct Events and Editions are exclusive."
},
{
"in": "query",
"name": "continuityCode",
"schema": {
"type": "string",
"enum": [
"active",
"on-hiatus",
"ended"
]
},
"description": "Exact continuity equality, independent of lifecycle visibility. Active entities remain readable when on hiatus or ended."
},
{
"in": "query",
"name": "updatedSince",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive public change timestamp in UTC, with zero to six fractional digits. Requires sort=updatedAt and fields containing updatedAt. Use overlap, deduplication and periodic complete reconciliation; absence does not establish deletion."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"enum": [
"name",
"-name",
"updatedAt"
]
},
"description": "Bytewise name order, or ascending updatedAt order; public ID ascending breaks ties."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, categoryCode, structureCode, continuityCode, profileMedia, description, links, ticketLinks, updatedAt, directEvents, editions. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded Series page.
{
"description": "A bounded Series page.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
},
"structureCode": {
"type": "string",
"enum": [
"direct-events",
"editions"
]
},
"continuityCode": {
"type": "string",
"enum": [
"active",
"on-hiatus",
"ended"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"directEvents": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"schedule",
"administrativeStateCode",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"editions": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"locationSummary": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 500
},
{
"type": "null"
}
]
},
"attendanceModeCode": {
"type": "string",
"enum": [
"in-person",
"digital",
"hybrid",
"tba"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"dispositionCode",
"programWindow",
"locationSummary",
"attendanceModeCode",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"website",
"instagram",
"facebook",
"twitter"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Series-owned public change marker, independent of authoring revision and independent child-content edits. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "Series123456",
"name": "Example Tour"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/event-series/{seriesId}
One lifecycle-active Series with rich owned fields, ordered links/tickets, its independent updatedAt and the applicable directEvents or editions preview by default. Each preview has at most five nonrecursive members, isComplete and a paginated href; the inapplicable relationship is omitted even if explicitly selected. Fields selects atomic top-level values; publicId is always present. Only ready profile media is returned. Missing or inactive Series return 404. Independent Event and Edition content edits and time-derived phases can change the selected representation and ETag without advancing the Series marker. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "seriesId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, categoryCode, structureCode, continuityCode, profileMedia, description, links, ticketLinks, updatedAt, directEvents, editions. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — The selected Series representation.
{
"description": "The selected Series representation.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
},
"structureCode": {
"type": "string",
"enum": [
"direct-events",
"editions"
]
},
"continuityCode": {
"type": "string",
"enum": [
"active",
"on-hiatus",
"ended"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"directEvents": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"schedule",
"administrativeStateCode",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"editions": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"locationSummary": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 500
},
{
"type": "null"
}
]
},
"attendanceModeCode": {
"type": "string",
"enum": [
"in-person",
"digital",
"hybrid",
"tba"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"dispositionCode",
"programWindow",
"locationSummary",
"attendanceModeCode",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"website",
"instagram",
"facebook",
"twitter"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Series-owned public change marker, independent of authoring revision and independent child-content edits. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identity is illustrative.",
"value": {
"ok": true,
"data": {
"publicId": "Series123456",
"name": "Example Tour"
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/event-series/{seriesId}/events
Direct Events of an active direct-events Series. An editions-structured Series, missing Series or inactive Series returns 404; use Edition program routes for edition-based traversal. Active empty or fully filtered parents return an empty 200. Event named filters, calendar or exact-start ordering, fields, includes and exact refresh controls retain their global meaning. Exact-start order excludes date-only Events. Cancelled Events remain readable. Cursors bind the complete parent path and all effective controls; parent overrides in query parameters are rejected. No counts, recursive inclusion or snapshot. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "seriesId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "nameContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Main Event name containment: case-insensitive original spelling or normalized accent-folded name. Percent and underscore retain LIKE wildcard meaning; no fuzzy matching. Surrounding whitespace is ignored."
},
{
"in": "query",
"name": "cityContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive LIKE containment of the primary active-Venue locality, ordered by locality, country name and Venue public ID. Requires both locality and country name; not any-Venue matching. Percent and underscore are wildcards."
},
{
"in": "query",
"name": "countryContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive LIKE containment of the independently selected primary active-Venue country name, ordered by country name, locality and Venue public ID. Not country-code or any-Venue matching. Percent and underscore are wildcards."
},
{
"in": "query",
"name": "temporalPhaseCode",
"schema": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"description": "Canonical Event schedule phase at this request's operation time, independent of cancellation."
},
{
"in": "query",
"name": "administrativeStateCode",
"schema": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"description": "Canonical Event administrative state, independent of temporal phase and parent disposition."
},
{
"in": "query",
"name": "startInstantGte",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive exact UTC start instant; zero to six fractional digits. Date-only Events have no matching instant."
},
{
"in": "query",
"name": "startInstantLt",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Exclusive exact UTC start instant; independently optional. Date-only Events have no matching instant."
},
{
"in": "query",
"name": "startLocalDateGte",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Inclusive organizer start-local-date lower bound; independent of the upper bound."
},
{
"in": "query",
"name": "startLocalDateLt",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Exclusive organizer start-local-date upper bound. This is start-date filtering, not interval overlap."
},
{
"in": "query",
"name": "updatedSince",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive public change timestamp in UTC, with zero to six fractional digits. Requires sort=updatedAt and fields containing updatedAt. Best effort: use overlap, deduplicate and periodically reconcile the complete collection."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"enum": [
"updatedAt",
"startLocalDate",
"-startLocalDate",
"startInstant",
"-startInstant"
]
},
"description": "Organizer date order, exact start-instant order excluding date-only Events, or ascending updatedAt order. Public ID ascending breaks ties."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, schedule, administrativeStateCode, profileMedia, artists, venues, description, updatedAt, eventTypeCode, digitalLocations, links, ticketLinks, directEventSeries, editionPrograms. Whitespace is ignored; dotted paths are unsupported."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: artists, venues. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded Event page within the addressed parent.
{
"description": "A bounded Event page within the addressed parent.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Event-owned public change marker, independent of authoring revision and related-entity edits. Not a commit watermark."
},
"artists": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia",
"description"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"venues": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia",
"description",
"capacity",
"contact",
"publishedCoordinates",
"links"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"directEventSeries": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"editionPrograms": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"eventSeries": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"required": [
"publicId",
"slug",
"name",
"dispositionCode",
"programWindow",
"eventSeries"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"eventTypeCode": {
"type": "string",
"enum": [
"online",
"in-person",
"hybrid"
]
},
"digitalLocations": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vr-chat",
"twitch",
"youtube"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"facebook",
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "AbCdEf123456",
"name": "Evening Concert"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/event-series/{seriesId}/editions
Active Editions under their actual active edition-based Series. Missing, inactive or direct-event parents return 404; an eligible empty or fully filtered parent returns an empty 200. Cancelled/postponed Editions remain readable. Program calendar bounds select authored-zone window overlap independently of Event schedules. Program-start sorting places timed starts before DATE on a shared day and TBA last in both directions; ascending public ID breaks ties. Exact updatedAt refresh covers Edition-owned changes only. Cursors bind the parent path and all effective controls, retain microseconds and need no mutable boundary-row lookup. Summary fields are the default; fields replaces them. Selecting program or officialVenues adds an independently bounded five-item preview with isComplete and a paginated href. No counts, global Edition discovery or recursive inclusion. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "seriesId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "dispositionCode",
"schema": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"description": "Edition disposition equality, independent of active lifecycle visibility."
},
{
"in": "query",
"name": "programDateGte",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Inclusive calendar lower bound for Edition program-window overlap in its reference time zone. DATE ends include their final local day; timed ends are exclusive. Any supplied range excludes TBA windows."
},
{
"in": "query",
"name": "programDateLt",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Exclusive calendar upper bound for Edition program-window overlap in its reference time zone. Compares the Edition window, independently of program Event schedules; each date bound is optional."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"enum": [
"programStart",
"-programStart",
"updatedAt"
]
},
"description": "programStart by default, or -programStart: local start date then exact timed start, with DATE last on a shared day and TBA last in both directions. Public ID ascending breaks ties. updatedAt orders the independent exact marker ascending."
},
{
"in": "query",
"name": "updatedSince",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive Edition-owned public marker. Requires sort=updatedAt and fields containing updatedAt. Preserve microseconds, overlap, deduplicate and periodically reconcile; absence is not deletion and markers are not commit watermarks."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, dispositionCode, programWindow, locationSummary, attendanceModeCode, profileMedia, eventSeries, description, links, ticketLinks, updatedAt, program, officialVenues. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded page within the addressed parent.
{
"description": "A bounded page within the addressed parent.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"locationSummary": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 500
},
{
"type": "null"
}
]
},
"attendanceModeCode": {
"type": "string",
"enum": [
"in-person",
"digital",
"hybrid",
"tba"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"eventSeries": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
},
"program": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"schedule",
"administrativeStateCode",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"officialVenues": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"website",
"instagram",
"facebook",
"twitter"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
},
"purposeCode": {
"type": "string",
"enum": [
"information",
"virtual-attendance",
"registration"
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel",
"purposeCode"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Edition-owned public change marker, independent of the parent Series, program Events, official Venue content and authoring revision. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "Edition12345",
"name": "Example Festival Edition"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/event-series/{seriesId}/editions/{editionId}
One lifecycle-active Edition under its actual active owning Series, including cancelled/postponed Editions and ended/on-hiatus Series. Rich fields and independent program and officialVenues previews are selected by default; each preview contains at most five nonrecursive members with isComplete and a paginated href. Fields replaces that selection while publicId remains present. Calendar program ends include the whole authored-zone date; exact ends are exclusive; TBA has no invented bounds. Attendance derives from active official Venues and virtual-attendance links, independently of the program. Complete ordered links/tickets cap at 25 each; only ready profile media is returned. Missing/inactive or mismatched ancestry returns 404. updatedAt covers Edition-owned changes: parent Series, program Event content, related Venue content and time-derived phase can change the selected representation independently. No gallery, counts or recursive inclusion. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "seriesId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "path",
"name": "editionId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, dispositionCode, programWindow, locationSummary, attendanceModeCode, profileMedia, eventSeries, description, links, ticketLinks, updatedAt, program, officialVenues. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — The selected Edition representation.
{
"description": "The selected Edition representation.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"locationSummary": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 500
},
{
"type": "null"
}
]
},
"attendanceModeCode": {
"type": "string",
"enum": [
"in-person",
"digital",
"hybrid",
"tba"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"eventSeries": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
},
"program": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"schedule",
"administrativeStateCode",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"officialVenues": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/event-series\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"website",
"instagram",
"facebook",
"twitter"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
},
"purposeCode": {
"type": "string",
"enum": [
"information",
"virtual-attendance",
"registration"
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel",
"purposeCode"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100
},
{
"type": "null"
}
]
}
},
"required": [
"destinationCode",
"url",
"displayLabel"
],
"additionalProperties": false
}
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Edition-owned public change marker, independent of the parent Series, program Events, official Venue content and authoring revision. Not a commit watermark."
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identity is illustrative.",
"value": {
"ok": true,
"data": {
"publicId": "Edition12345",
"name": "Example Festival Edition"
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/event-series/{seriesId}/editions/{editionId}/events
Program Events of the actual active Edition under its active owning Series. Missing, inactive or mismatched ancestry returns 404. Official Edition Venues do not imply program membership; Edition program windows do not override Event schedules. Active empty or fully filtered parents return an empty 200. Event named filters, calendar or exact-start ordering, fields, includes and exact refresh controls retain their global meaning. Exact-start order excludes date-only Events. Cancelled Events remain readable. Cursors bind the complete parent path and all effective controls; parent overrides in query parameters are rejected. No counts, recursive inclusion or snapshot. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "seriesId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "path",
"name": "editionId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "nameContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Main Event name containment: case-insensitive original spelling or normalized accent-folded name. Percent and underscore retain LIKE wildcard meaning; no fuzzy matching. Surrounding whitespace is ignored."
},
{
"in": "query",
"name": "cityContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive LIKE containment of the primary active-Venue locality, ordered by locality, country name and Venue public ID. Requires both locality and country name; not any-Venue matching. Percent and underscore are wildcards."
},
{
"in": "query",
"name": "countryContains",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": "Case-insensitive LIKE containment of the independently selected primary active-Venue country name, ordered by country name, locality and Venue public ID. Not country-code or any-Venue matching. Percent and underscore are wildcards."
},
{
"in": "query",
"name": "temporalPhaseCode",
"schema": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"description": "Canonical Event schedule phase at this request's operation time, independent of cancellation."
},
{
"in": "query",
"name": "administrativeStateCode",
"schema": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"description": "Canonical Event administrative state, independent of temporal phase and parent disposition."
},
{
"in": "query",
"name": "startInstantGte",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive exact UTC start instant; zero to six fractional digits. Date-only Events have no matching instant."
},
{
"in": "query",
"name": "startInstantLt",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Exclusive exact UTC start instant; independently optional. Date-only Events have no matching instant."
},
{
"in": "query",
"name": "startLocalDateGte",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Inclusive organizer start-local-date lower bound; independent of the upper bound."
},
{
"in": "query",
"name": "startLocalDateLt",
"schema": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"description": "Exclusive organizer start-local-date upper bound. This is start-date filtering, not interval overlap."
},
{
"in": "query",
"name": "updatedSince",
"schema": {
"type": "string",
"allOf": [
{
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$"
}
]
},
"description": "Inclusive public change timestamp in UTC, with zero to six fractional digits. Requires sort=updatedAt and fields containing updatedAt. Best effort: use overlap, deduplicate and periodically reconcile the complete collection."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"enum": [
"updatedAt",
"startLocalDate",
"-startLocalDate",
"startInstant",
"-startInstant"
]
},
"description": "Organizer date order, exact start-instant order excluding date-only Events, or ascending updatedAt order. Public ID ascending breaks ties."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, schedule, administrativeStateCode, profileMedia, artists, venues, description, updatedAt, eventTypeCode, digitalLocations, links, ticketLinks, directEventSeries, editionPrograms. Whitespace is ignored; dotted paths are unsupported."
},
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: artists, venues. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded Event page within the addressed parent.
{
"description": "A bounded Event page within the addressed parent.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"schedule": {
"type": "object",
"properties": {
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"end": {
"oneOf": [
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"precision",
"localDate"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"precision": {
"type": "string",
"const": "date-time"
},
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"precision",
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
}
]
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical",
"indeterminate"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"enum": [
"exact",
"calendar",
"incomplete",
"inferred"
]
}
},
"required": [
"referenceTimeZoneId",
"start",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
"administrativeStateCode": {
"type": "string",
"enum": [
"scheduled",
"cancelled"
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"updatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{6}(?:Z))$",
"description": "Event-owned public change marker, independent of authoring revision and related-entity edits. Not a commit watermark."
},
"artists": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"profileMedia",
"description"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"venues": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId",
"slug",
"name",
"statusCode",
"location",
"profileMedia",
"description",
"capacity",
"contact",
"publishedCoordinates",
"links"
],
"additionalProperties": false
}
]
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"directEventSeries": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"editionPrograms": {
"type": "object",
"properties": {
"items": {
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"dispositionCode": {
"type": "string",
"enum": [
"confirmed",
"postponed",
"cancelled"
]
},
"programWindow": {
"anyOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
},
"temporalPhaseCode": {
"type": "string",
"const": "indeterminate"
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "incomplete"
}
},
"required": [
"stateCode",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"required": [
"localDate"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "calendar"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "scheduled"
},
"precision": {
"type": "string",
"const": "date-time"
},
"referenceTimeZoneId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"start": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"end": {
"type": "object",
"properties": {
"localDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"localTime": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
},
"instant": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
}
},
"required": [
"localDate",
"localTime",
"instant"
],
"additionalProperties": false
},
"temporalPhaseCode": {
"type": "string",
"enum": [
"upcoming",
"current",
"historical"
]
},
"temporalPhaseBasisCode": {
"type": "string",
"const": "exact"
}
},
"required": [
"stateCode",
"precision",
"referenceTimeZoneId",
"start",
"end",
"temporalPhaseCode",
"temporalPhaseBasisCode"
],
"additionalProperties": false
}
]
},
"eventSeries": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"categoryCode": {
"type": "string",
"enum": [
"festival",
"tour",
"conference",
"convention",
"season",
"residency",
"recurring-program",
"curated-program",
"other"
]
}
},
"required": [
"publicId",
"slug",
"name",
"categoryCode"
],
"additionalProperties": false
}
},
"required": [
"publicId",
"slug",
"name",
"dispositionCode",
"programWindow",
"eventSeries"
],
"additionalProperties": false
}
},
"isComplete": {
"type": "boolean"
},
"href": {
"type": "string",
"pattern": "^\\/v1\\/events\\/.*"
}
},
"required": [
"items",
"isComplete",
"href"
],
"additionalProperties": false
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"eventTypeCode": {
"type": "string",
"enum": [
"online",
"in-person",
"hybrid"
]
},
"digitalLocations": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vr-chat",
"twitch",
"youtube"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"facebook",
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
},
"ticketLinks": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"dice",
"eventbrite",
"website"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"displayLabel": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "AbCdEf123456",
"name": "Evening Concert"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} GET /v1/event-series/{seriesId}/editions/{editionId}/venues
Active official Venues of the actual active Edition under its active owning Series. Missing, inactive or mismatched ancestry returns 404; eligible empty membership returns an empty 200. Program Events do not imply official Venue membership. Rich Venue relationship fields are the default; fields replaces them. Location publication, ready profile media and complete links capped at 25 retain their Venue meaning. Names and public IDs use bytewise ascending order. Cursors bind both parents and all controls; an oversized name uses an eligible-member lookup, and stale membership or names require restarting pagination. No counts, standalone Venue refresh controls or recursive inclusion. HEAD and conditional reads have GET database cost; successful representations are fresh for 60 seconds.
Request Parameters
[
{
"in": "header",
"name": "If-None-Match",
"required": false,
"description": "A previously returned ETag, comma-separated tags, or *. Weak comparison applies to GET and HEAD.",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "seriesId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "path",
"name": "editionId",
"schema": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"required": true
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "string",
"pattern": "^[1-9]\\d*$"
},
"description": "Maximum returned items: 1–50; default 20. No exact total."
},
{
"in": "query",
"name": "cursor",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1024
},
"description": "Opaque continuation from links.next. Preserve the effective route, parent, filters, sort, limit, fields and includes."
},
{
"in": "query",
"name": "sort",
"schema": {
"type": "string",
"const": "name"
}
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"description": "Unique comma-separated values: publicId, slug, name, statusCode, location, profileMedia, description, capacity, contact, publishedCoordinates, links. Whitespace is ignored; dotted paths are unsupported."
}
] 200 — A bounded page within the addressed parent.
{
"description": "A bounded page within the addressed parent.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": true
},
"data": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"slug": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"statusCode": {
"type": "string",
"enum": [
"operational",
"on-hiatus",
"permanently-closed"
]
},
"location": {
"oneOf": [
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "tba"
}
},
"required": [
"stateCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "formatted"
},
"formattedAddress": {
"type": "string",
"minLength": 1
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"formattedAddress",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"stateCode": {
"type": "string",
"const": "coordinate-only"
},
"locality": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryName": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"countryCode": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{2}$"
},
{
"type": "null"
}
]
}
},
"required": [
"stateCode",
"locality",
"countryName",
"countryCode"
],
"additionalProperties": false
}
]
},
"profileMedia": {
"anyOf": [
{
"type": "object",
"properties": {
"publicId": {
"type": "string",
"pattern": "^[0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]{12}$"
},
"src": {
"type": "string",
"pattern": "^https?:\\/\\/"
},
"thumbnailSrc": {
"anyOf": [
{
"type": "string",
"pattern": "^https?:\\/\\/"
},
{
"type": "null"
}
]
},
"altText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"publicId",
"src",
"thumbnailSrc",
"altText",
"width",
"height"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"capacity": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"contact": {
"type": "object",
"properties": {
"email": {
"anyOf": [
{
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
{
"type": "null"
}
]
},
"phoneNumber": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 50
},
{
"type": "null"
}
]
}
},
"required": [
"email",
"phoneNumber"
],
"additionalProperties": false
},
"publishedCoordinates": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"links": {
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationCode": {
"type": "string",
"enum": [
"vk",
"youtube",
"google-drive",
"website",
"instagram",
"facebook",
"twitter",
"soundcloud",
"spotify"
]
},
"url": {
"type": "string",
"pattern": "^https?:\\/\\/"
}
},
"required": [
"destinationCode",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"publicId"
],
"additionalProperties": false
}
},
"meta": {
"type": "object",
"properties": {
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
},
"hasMore": {
"type": "boolean"
}
},
"required": [
"limit",
"hasMore"
],
"additionalProperties": false
}
},
"required": [
"pagination"
],
"additionalProperties": false
},
"links": {
"type": "object",
"properties": {
"next": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"next"
],
"additionalProperties": false
}
},
"required": [
"ok",
"data",
"meta",
"links"
],
"additionalProperties": false
},
"examples": {
"names": {
"summary": "A fields=name response; identities are illustrative.",
"value": {
"ok": true,
"data": [
{
"publicId": "Venue1234567",
"name": "Example Hall"
}
],
"meta": {
"pagination": {
"limit": 20,
"hasMore": false
}
},
"links": {
"next": null
}
}
}
}
}
}
} 304 — The selected representation matches If-None-Match. Reuse its cached body; this response has none.
{
"description": "The selected representation matches If-None-Match. Reuse its cached body; this response has none.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Successful anonymous reads are fresh for 60 seconds.",
"schema": {
"type": "string",
"const": "public, max-age=60"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"ETag": {
"description": "Weak validator for the complete selected representation, including relationships and next link.",
"schema": {
"type": "string"
}
},
"Date": {
"description": "HTTP response date; never a change checkpoint.",
"schema": {
"type": "string"
}
}
}
} 400 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 404 — The addressed public resource is missing or inactive.
{
"description": "The addressed public resource is missing or inactive.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 405 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 414 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 429 — Client rate limit reached.
{
"description": "Client rate limit reached.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 500 — The request could not be completed.
{
"description": "The request could not be completed.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
} 503 — Service or request capacity unavailable.
{
"description": "Service or request capacity unavailable.",
"headers": {
"X-Request-ID": {
"description": "Server-generated request identifier.",
"schema": {
"type": "string"
}
},
"Cache-Control": {
"description": "Operational and unsuccessful responses are not cached.",
"schema": {
"type": "string",
"const": "no-store"
}
},
"Access-Control-Allow-Origin": {
"description": "Anonymous browser access without credentials.",
"schema": {
"type": "string",
"const": "*"
}
},
"Retry-After": {
"description": "Minimum retry delay in seconds; availability is not guaranteed.",
"schema": {
"type": "string",
"pattern": "^[0-9]+$"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"const": false
},
"error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_query",
"not_found",
"method_not_allowed",
"rate_limited",
"unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"parameter": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"parameter",
"message"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"message"
],
"additionalProperties": false
}
},
"required": [
"ok",
"error"
],
"additionalProperties": false
}
}
}
}