Venues & auditoriums
Physical cinemas, auditoriums and a cinema’s programme.
Requests require an active organization grant and an API key or Clerk session. Results respect your granted scopes and markets. Access details →
GET/v1/venues
Physical cinema venues.
Parameters
| Name | Type | Details |
|---|---|---|
limitquery · optional | integer | Default: 50 · Minimum: 1 · Maximum: 100 |
cursorquery · optional | string | Opaque cursor from the previous response. Preserve the same filters. |
countryCodequery · optional | string | Optional two-letter country filter. This narrows results; it does not grant access.Pattern: ^[A-Za-z]{2}$ |
marketIdquery · optional | string | Public market identifier (mkt_…). |
operatorIdquery · optional | string | Public operator identifier (opr_…). |
curl "https://api.boxobserver.com/v1/venues" \
-H "Authorization: Bearer $BOX_OBSERVER_API_KEY"Response
200 application/json · Success shape within your granted access.
{
"data": [],
"page": {
"nextCursor": null,
"hasMore": false
},
"meta": {
"requestId": "example-request-id",
"generatedAt": "2026-09-04T12:00:00.000Z"
}
}Response fields
| Field | Type and constraints |
|---|---|
dataRequired | array<object> |
data[].idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].nameRequired | string |
data[].programmingTypeRequired | stringValues: mainstream, mixed, specialist |
data[].addressRequired | string | null |
data[].latitudeRequired | number | nullMinimum: -90 · Maximum: 90 |
data[].longitudeRequired | number | nullMinimum: -180 · Maximum: 180 |
data[].marketRequired | object |
data[].market.idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].market.nameRequired | string |
data[].market.countryCodeRequired | string |
data[].market.timeZoneRequired | string |
data[].operatorIdRequired | string | nullPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
pageRequired | object |
page.nextCursorRequired | string | null |
page.hasMoreRequired | boolean |
metaRequired | object |
meta.requestIdRequired | string |
meta.generatedAtRequired | stringFormat: date-time |
Errors: 400, 401, 403, 429, 500, 503. Response format and retry guidance →
GET/v1/venues/{id}
Physical cinema venue.
Replace {id} with the appropriate public identifier returned by the API.
Parameters
| Name | Type | Details |
|---|---|---|
idpath · required | string | Public resource identifier returned by the API. |
curl "https://api.boxobserver.com/v1/venues/{id}" \
-H "Authorization: Bearer $BOX_OBSERVER_API_KEY"Response
200 application/json · Success shape within your granted access.
{
"data": {
"id": "ven_ZXhhbXBsZQ",
"name": "example",
"programmingType": "mainstream",
"address": null,
"latitude": null,
"longitude": null,
"market": {
"id": "mkt_ZXhhbXBsZQ",
"name": "example",
"countryCode": "RO",
"timeZone": "Europe/Bucharest"
},
"operatorId": null
},
"meta": {
"requestId": "example-request-id",
"generatedAt": "2026-09-04T12:00:00.000Z"
}
}Response fields
| Field | Type and constraints |
|---|---|
dataRequired | object |
data.idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data.nameRequired | string |
data.programmingTypeRequired | stringValues: mainstream, mixed, specialist |
data.addressRequired | string | null |
data.latitudeRequired | number | nullMinimum: -90 · Maximum: 90 |
data.longitudeRequired | number | nullMinimum: -180 · Maximum: 180 |
data.marketRequired | object |
data.market.idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data.market.nameRequired | string |
data.market.countryCodeRequired | string |
data.market.timeZoneRequired | string |
data.operatorIdRequired | string | nullPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
metaRequired | object |
meta.requestIdRequired | string |
meta.generatedAtRequired | stringFormat: date-time |
Errors: 400, 401, 403, 404, 429, 500, 503. Response format and retry guidance →
GET/v1/venues/{id}/auditoriums
Venue auditoriums.
Replace {id} with the appropriate public identifier returned by the API.
Parameters
| Name | Type | Details |
|---|---|---|
idpath · required | string | Public resource identifier returned by the API. |
limitquery · optional | integer | Default: 50 · Minimum: 1 · Maximum: 100 |
cursorquery · optional | string | Opaque cursor from the previous response. Preserve the same filters. |
curl "https://api.boxobserver.com/v1/venues/{id}/auditoriums" \
-H "Authorization: Bearer $BOX_OBSERVER_API_KEY"Response
200 application/json · Success shape within your granted access.
{
"data": [],
"page": {
"nextCursor": null,
"hasMore": false
},
"meta": {
"requestId": "example-request-id",
"generatedAt": "2026-09-04T12:00:00.000Z"
}
}Response fields
| Field | Type and constraints |
|---|---|
dataRequired | array<object> |
data[].idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].venueIdRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].nameRequired | string |
data[].capacityRequired | integer | nullMinimum: 0 |
data[].experiencesRequired | array<string> | null |
pageRequired | object |
page.nextCursorRequired | string | null |
page.hasMoreRequired | boolean |
metaRequired | object |
meta.requestIdRequired | string |
meta.generatedAtRequired | stringFormat: date-time |
Errors: 400, 401, 403, 429, 500, 503. Response format and retry guidance →
GET/v1/venues/{id}/showings
Venue showings.
Replace {id} with the appropriate public identifier returned by the API.
Parameters
| Name | Type | Details |
|---|---|---|
idpath · required | string | Public resource identifier returned by the API. |
limitquery · optional | integer | Default: 50 · Minimum: 1 · Maximum: 100 |
cursorquery · optional | string | Opaque cursor from the previous response. Preserve the same filters. |
scopequery · optional | string | Defaults to current (D1-owned). Archived selects published history; all explicitly combines both. Ownership is independent of Showing or premiere dates. Archived/all requires history:read.Values: current, archived, all |
releaseIdquery · optional | string | Public country Release identifier (crl_…). |
movieIdquery · optional | string | Public canonical movie identifier (mov_…). |
operatorIdquery · optional | string | Public operator identifier (opr_…). |
marketIdquery · optional | string | Public market identifier (mkt_…). |
countryCodequery · optional | string | Optional two-letter country filter. This narrows results; it does not grant access.Pattern: ^[A-Za-z]{2}$ |
localDatequery · optional | string | Cinema-local calendar date, YYYY-MM-DD. Cannot be combined with timestamp bounds. |
startsFromquery · optional | string | Inclusive start timestamp. ISO 8601; offsets are normalized to UTC. |
startsBeforequery · optional | string | Exclusive end timestamp. The schedule window is limited to 31 days. |
curl "https://api.boxobserver.com/v1/venues/{id}/showings" \
-H "Authorization: Bearer $BOX_OBSERVER_API_KEY"Response
200 application/json · Success shape within your granted access.
{
"data": [],
"page": {
"nextCursor": null,
"hasMore": false
},
"meta": {
"requestId": "example-request-id",
"generatedAt": "2026-09-04T12:00:00.000Z"
}
}Response fields
| Field | Type and constraints |
|---|---|
dataRequired | array<object> |
data[].idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].releaseIdRequired | string | nullPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].statusRequired | stringValues: scheduled, unlisted, cancelled |
data[].startsAtRequired | stringFormat: date-time |
data[].localDateRequired | stringFormat: date |
data[].timeZoneRequired | string |
data[].venueRequired | object |
data[].venue.idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].venue.nameRequired | string |
data[].venue.programmingTypeRequired | stringValues: mainstream, mixed, specialist |
data[].venue.marketRequired | object |
data[].venue.market.idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].venue.market.nameRequired | string |
data[].venue.market.countryCodeRequired | string |
data[].venue.market.timeZoneRequired | string |
data[].auditoriumRequired | object | null |
data[].auditorium.idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].auditorium.nameRequired | string |
data[].auditorium.capacityRequired | integer | nullMinimum: 0 |
data[].auditorium.experiencesRequired | array<string> | null |
data[].movieRequired | object |
data[].movie.canonicalMovieRequired | object | null |
data[].movie.canonicalMovie.idRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].movie.canonicalMovie.titleRequired | string |
data[].movie.canonicalMovie.originalTitleRequired | string | null |
data[].movie.canonicalMovie.releaseYearRequired | integer | null |
data[].movie.canonicalMovie.runtimeMinutesRequired | integer | nullMinimum: 0 |
data[].movie.sourceTitleRequired | string |
data[].movie.sourceOriginalTitleRequired | string | null |
data[].movie.identityStatusRequired | stringValues: canonical, source |
data[].formatRequired | stringValues: 2d, 3d |
data[].experiencesRequired | array<string> |
data[].experienceSourceRequired | string | nullValues: showing, auditorium, |
data[].languageRequired | string | null |
data[].capacityRequired | integer | nullMinimum: 0 |
data[].capacitySourceRequired | string | nullValues: showing, observation, auditorium, |
data[].priceRequired | object |
data[].price.statusRequired | stringValues: exact, derived, unavailable |
data[].price.amountMinorRequired | integer | nullMinimum: 0 |
data[].price.currencyRequired | string | null |
data[].price.sourceRequired | string | nullValues: providerSchedule, providerBooking, officialTariff, legacyUnknown, |
data[].price.observedAtRequired | string | nullFormat: date-time |
data[].price.lastConfirmedAtRequired | string | nullFormat: date-time |
data[].price.optionsOptional | array<object>Default: [] |
data[].price.options[].offerKeyRequired | stringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$ |
data[].price.options[].labelRequired | string |
data[].price.options[].amountMinorRequired | integerMinimum: 0 |
data[].price.options[].currencyRequired | string |
data[].price.options[].admissionsIncludedRequired | integerMinimum: 0 |
data[].seatAvailabilityRequired | object | null |
data[].seatAvailability.statusRequired | stringValues: exact, derived, unavailable |
data[].seatAvailability.observedAtRequired | stringFormat: date-time |
data[].seatAvailability.checkpointRequired | string |
data[].seatAvailability.capacityRequired | integer | nullMinimum: 0 |
data[].seatAvailability.availableSeatsRequired | integer | nullMinimum: 0 |
data[].seatAvailability.occupiedEstimateRequired | integer | nullMinimum: 0 |
data[].seatAvailability.occupancyRatioRequired | number | nullMinimum: 0 · Maximum: 1 |
data[].updatedAtRequired | stringFormat: date-time |
pageRequired | object |
page.nextCursorRequired | string | null |
page.hasMoreRequired | boolean |
metaRequired | object |
meta.requestIdRequired | string |
meta.generatedAtRequired | stringFormat: date-time |
Errors: 400, 401, 403, 429, 500, 503. Response format and retry guidance →