Venues & auditoriums

Physical cinemas, auditoriums and a cinema’s programme.

Production · organization access required

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

NameTypeDetails
limitquery · optionalintegerDefault: 50 · Minimum: 1 · Maximum: 100
cursorquery · optionalstringOpaque cursor from the previous response. Preserve the same filters.
countryCodequery · optionalstringOptional two-letter country filter. This narrows results; it does not grant access.Pattern: ^[A-Za-z]{2}$
marketIdquery · optionalstringPublic market identifier (mkt_…).
operatorIdquery · optionalstringPublic operator identifier (opr_…).
Shell · authenticated request
curl "https://api.boxobserver.com/v1/venues" \
  -H "Authorization: Bearer $BOX_OBSERVER_API_KEY"

Response

200 application/json · Success shape within your granted access.

Illustrative response shape · not live data
{
  "data": [],
  "page": {
    "nextCursor": null,
    "hasMore": false
  },
  "meta": {
    "requestId": "example-request-id",
    "generatedAt": "2026-09-04T12:00:00.000Z"
  }
}
Response fields
FieldType and constraints
dataRequiredarray<object>
data[].idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].nameRequiredstring
data[].programmingTypeRequiredstringValues: mainstream, mixed, specialist
data[].addressRequiredstring | null
data[].latitudeRequirednumber | nullMinimum: -90 · Maximum: 90
data[].longitudeRequirednumber | nullMinimum: -180 · Maximum: 180
data[].marketRequiredobject
data[].market.idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].market.nameRequiredstring
data[].market.countryCodeRequiredstring
data[].market.timeZoneRequiredstring
data[].operatorIdRequiredstring | nullPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
pageRequiredobject
page.nextCursorRequiredstring | null
page.hasMoreRequiredboolean
metaRequiredobject
meta.requestIdRequiredstring
meta.generatedAtRequiredstringFormat: 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

NameTypeDetails
idpath · requiredstringPublic resource identifier returned by the API.
Shell · authenticated request
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.

Illustrative response shape · not live data
{
  "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
FieldType and constraints
dataRequiredobject
data.idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data.nameRequiredstring
data.programmingTypeRequiredstringValues: mainstream, mixed, specialist
data.addressRequiredstring | null
data.latitudeRequirednumber | nullMinimum: -90 · Maximum: 90
data.longitudeRequirednumber | nullMinimum: -180 · Maximum: 180
data.marketRequiredobject
data.market.idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data.market.nameRequiredstring
data.market.countryCodeRequiredstring
data.market.timeZoneRequiredstring
data.operatorIdRequiredstring | nullPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
metaRequiredobject
meta.requestIdRequiredstring
meta.generatedAtRequiredstringFormat: 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

NameTypeDetails
idpath · requiredstringPublic resource identifier returned by the API.
limitquery · optionalintegerDefault: 50 · Minimum: 1 · Maximum: 100
cursorquery · optionalstringOpaque cursor from the previous response. Preserve the same filters.
Shell · authenticated request
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.

Illustrative response shape · not live data
{
  "data": [],
  "page": {
    "nextCursor": null,
    "hasMore": false
  },
  "meta": {
    "requestId": "example-request-id",
    "generatedAt": "2026-09-04T12:00:00.000Z"
  }
}
Response fields
FieldType and constraints
dataRequiredarray<object>
data[].idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].venueIdRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].nameRequiredstring
data[].capacityRequiredinteger | nullMinimum: 0
data[].experiencesRequiredarray<string> | null
pageRequiredobject
page.nextCursorRequiredstring | null
page.hasMoreRequiredboolean
metaRequiredobject
meta.requestIdRequiredstring
meta.generatedAtRequiredstringFormat: 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

NameTypeDetails
idpath · requiredstringPublic resource identifier returned by the API.
limitquery · optionalintegerDefault: 50 · Minimum: 1 · Maximum: 100
cursorquery · optionalstringOpaque cursor from the previous response. Preserve the same filters.
scopequery · optionalstringDefaults 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 · optionalstringPublic country Release identifier (crl_…).
movieIdquery · optionalstringPublic canonical movie identifier (mov_…).
operatorIdquery · optionalstringPublic operator identifier (opr_…).
marketIdquery · optionalstringPublic market identifier (mkt_…).
countryCodequery · optionalstringOptional two-letter country filter. This narrows results; it does not grant access.Pattern: ^[A-Za-z]{2}$
localDatequery · optionalstringCinema-local calendar date, YYYY-MM-DD. Cannot be combined with timestamp bounds.
startsFromquery · optionalstringInclusive start timestamp. ISO 8601; offsets are normalized to UTC.
startsBeforequery · optionalstringExclusive end timestamp. The schedule window is limited to 31 days.
Shell · authenticated request
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.

Illustrative response shape · not live data
{
  "data": [],
  "page": {
    "nextCursor": null,
    "hasMore": false
  },
  "meta": {
    "requestId": "example-request-id",
    "generatedAt": "2026-09-04T12:00:00.000Z"
  }
}
Response fields
FieldType and constraints
dataRequiredarray<object>
data[].idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].releaseIdRequiredstring | nullPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].statusRequiredstringValues: scheduled, unlisted, cancelled
data[].startsAtRequiredstringFormat: date-time
data[].localDateRequiredstringFormat: date
data[].timeZoneRequiredstring
data[].venueRequiredobject
data[].venue.idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].venue.nameRequiredstring
data[].venue.programmingTypeRequiredstringValues: mainstream, mixed, specialist
data[].venue.marketRequiredobject
data[].venue.market.idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].venue.market.nameRequiredstring
data[].venue.market.countryCodeRequiredstring
data[].venue.market.timeZoneRequiredstring
data[].auditoriumRequiredobject | null
data[].auditorium.idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].auditorium.nameRequiredstring
data[].auditorium.capacityRequiredinteger | nullMinimum: 0
data[].auditorium.experiencesRequiredarray<string> | null
data[].movieRequiredobject
data[].movie.canonicalMovieRequiredobject | null
data[].movie.canonicalMovie.idRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].movie.canonicalMovie.titleRequiredstring
data[].movie.canonicalMovie.originalTitleRequiredstring | null
data[].movie.canonicalMovie.releaseYearRequiredinteger | null
data[].movie.canonicalMovie.runtimeMinutesRequiredinteger | nullMinimum: 0
data[].movie.sourceTitleRequiredstring
data[].movie.sourceOriginalTitleRequiredstring | null
data[].movie.identityStatusRequiredstringValues: canonical, source
data[].formatRequiredstringValues: 2d, 3d
data[].experiencesRequiredarray<string>
data[].experienceSourceRequiredstring | nullValues: showing, auditorium,
data[].languageRequiredstring | null
data[].capacityRequiredinteger | nullMinimum: 0
data[].capacitySourceRequiredstring | nullValues: showing, observation, auditorium,
data[].priceRequiredobject
data[].price.statusRequiredstringValues: exact, derived, unavailable
data[].price.amountMinorRequiredinteger | nullMinimum: 0
data[].price.currencyRequiredstring | null
data[].price.sourceRequiredstring | nullValues: providerSchedule, providerBooking, officialTariff, legacyUnknown,
data[].price.observedAtRequiredstring | nullFormat: date-time
data[].price.lastConfirmedAtRequiredstring | nullFormat: date-time
data[].price.optionsOptionalarray<object>Default: []
data[].price.options[].offerKeyRequiredstringPattern: ^(mkt|opr|ven|aud|mov|shw|dst|rel|crl|pof)_[A-Za-z0-9_-]+$
data[].price.options[].labelRequiredstring
data[].price.options[].amountMinorRequiredintegerMinimum: 0
data[].price.options[].currencyRequiredstring
data[].price.options[].admissionsIncludedRequiredintegerMinimum: 0
data[].seatAvailabilityRequiredobject | null
data[].seatAvailability.statusRequiredstringValues: exact, derived, unavailable
data[].seatAvailability.observedAtRequiredstringFormat: date-time
data[].seatAvailability.checkpointRequiredstring
data[].seatAvailability.capacityRequiredinteger | nullMinimum: 0
data[].seatAvailability.availableSeatsRequiredinteger | nullMinimum: 0
data[].seatAvailability.occupiedEstimateRequiredinteger | nullMinimum: 0
data[].seatAvailability.occupancyRatioRequirednumber | nullMinimum: 0 · Maximum: 1
data[].updatedAtRequiredstringFormat: date-time
pageRequiredobject
page.nextCursorRequiredstring | null
page.hasMoreRequiredboolean
metaRequiredobject
meta.requestIdRequiredstring
meta.generatedAtRequiredstringFormat: date-time

Errors: 400, 401, 403, 429, 500, 503. Response format and retry guidance →