clone

a terminal ui for alamo drafthouse showtimes, as movie cards or a timeline of every screen

main
showings / schema.md
schema.md 12.5K rendered
1# Alamo Drafthouse Schedule/Venue API Response Schema23This document provides a comprehensive breakdown of the JSON response structure from the Alamo Drafthouse theater schedule/venue API.45`https://drafthouse.com/s/mother/v2/schedule/venue/westminster`67---89## 1. Top-Level Structure1011The response has a single top-level key `data` containing all information:1213```json14{15 "data": { ... }16}17```1819### Top-Level Keys in `data`2021| Key | Type | Description |22|-----|------|-------------|23| `presentations` | Array | List of movie/show presentations (47 items) |24| `relatedPresentations` | Array | Related presentations (empty in this response) |25| `market` | Array | Market/region information (Denver area) |26| `sessions` | Array | Showtime sessions (209 items) |27| `presentationAttributes` | Array | Attributes like "first-run", "Alamo Exclusive" (4 items) |28| `sessionAttributes` | Array | Session types like "Baby Day", "Kid Friendly" (6 items) |29| `formats` | Array | Screening formats like "2D Digital", "The Big Show" (2 items) |30| `agePolicies` | Array | Age rating policies (5 items) |31| `queues` | Array | Queue information (empty in this response) |3233---3435## 2. Presentations3637The `presentations` array contains 47 items, each representing a movie or special event screening.3839### Presentation Object Structure4041| Field | Type | Description |42|-------|------|-------------|43| `slug` | String | Unique identifier for the presentation (e.g., "wuthering-heights-2026") |44| `legacySlug` | String\|null | Legacy identifier for backward compatibility |45| `show` | Object | Core movie/show information |46| `event` | Object\|null | Special event details (if applicable) |47| `eventType` | String\|null | Type of special event |48| `formatSlugs` | Array[String] | Screening formats (e.g., ["2d-digital", "the-big-show"]) |49| `presentationAttributeSlugs` | Array[String] | Presentation tags (e.g., ["first-run", "alamo-exclusive"]) |50| `associatedPresentationSlugs` | Array[String] | Related presentations (e.g., book club screenings) |51| `openingDateClt` | String\|null | Opening date in local time |52| `openingDateDisplay` | String\|null | Display-friendly opening date |53| `superTitle` | String\|null | Additional title context |54| `isHidden` | Boolean | Whether the presentation is hidden |55| `primaryCollectionSlug` | String\|null | Collection grouping |56| `isAvailableForPersonalTheater` | Boolean | Personal theater availability |5758### Nested: `show` Object5960The `show` object contains the core movie metadata:6162| Field | Type | Description |63|-------|------|-------------|64| `slug` | String | Show identifier |65| `legacySlug` | String\|null | Legacy identifier |66| `title` | String | Movie title (e.g., "Wuthering Heights (2026)") |67| `vistaHoCodes` | Array[String] | Vista POS internal codes (e.g., ["A000035278", ...]) |68| `headline` | String | Marketing headline/synopsis |69| `landscapeHeroImage` | Object | Wide aspect ratio hero image |70| `portraitHeroImage` | Object | Portrait aspect ratio hero image |71| `posterImages` | Array[Object] | Movie poster images |72| `certification` | String | MPAA rating (e.g., "R", "PG", "PG-13", "NR") |7374### Image Object Structure7576```json77{78 "uri": "https://img-assets.drafthouse.com/images/shows/...",79 "altText": "WUTHERING HEIGHTS (2026)"80}81```8283| Field | Type | Description |84|-------|------|-------------|85| `uri` | String | Full URL to the image |86| `altText` | String | Accessibility text |8788### Nested: `event` Object (when present)8990Special events like Book Club screenings have additional metadata:9192| Field | Type | Description |93|-------|------|-------------|94| `slug` | String | Event identifier |95| `title` | String | Event title (may contain HTML like `<show-title>`) |96| `eventTypeSlug` | String | Type of event (e.g., "book-club-screening") |97| `eventTypeTitleOverride` | String\|null | Custom event type title |98| `headline` | String | Event marketing headline |99| `description` | String | Full event description (HTML) |100101---102103## 3. Sessions104105The `sessions` array contains 209 showtime entries, linking presentations to specific theaters and times.106107### Session Object Structure108109| Field | Type | Description |110|-------|------|-------------|111| `cinemaId` | String | Theater identifier (e.g., "0403") |112| `sessionId` | String | Unique session ID (e.g., "78490") |113| `presentationSlug` | String | Reference to presentation |114| `legacySlug` | String | Legacy presentation reference |115| `status` | String | Session status ("ONSALE" or "PAST") |116| `businessDateClt` | String | Business date in local time (ISO 8601: "2026-02-17") |117| `showTimeClt` | String | Showtime in local time (ISO 8601: "2026-02-17T19:15:00") |118| `cinemaTimeZoneName` | String | Timezone (e.g., "America/Denver") |119| `showTimeUtc` | String | Showtime in UTC (ISO 8601: "2026-02-18T02:15:00") |120| `ticketTypesLoyaltyCount` | Integer | Loyalty ticket availability |121| `ticketTypesVoucherCount` | Integer | Voucher ticket availability |122| `ticketTypesNormalCount` | Integer | Standard ticket availability |123| `reservedSeating` | Boolean | Whether seating is reserved |124| `screenNumber` | String | Screen/theater number (e.g., "7") |125| `formatSlug` | String | Format being shown (e.g., "2d-digital") |126| `isClosedCaptioningAvailable` | Boolean | CC availability |127| `isDescriptiveAudioAvailable` | Boolean | Audio description availability |128| `isAssistedListeningAvailable` | Boolean | Assistive listening availability |129| `sessionAttributeSlugs` | Array[String] | Session tags (e.g., ["BD", "KF"]) |130| `recognitionIds` | Array | Recognition/tracking IDs |131| `agePolicySlug` | String | Age policy (e.g., "rated-pg-13") |132| `isHidden` | Boolean | Whether session is hidden |133| `ticketingExperience` | String | Ticket flow type (e.g., "DEFAULT") |134135---136137## 4. Market138139The `market` array contains region/theater group information (currently Denver area).140141### Market Object Structure142143| Field | Type | Description |144|-------|------|-------------|145| `id` | String | Market ID (e.g., "0400") |146| `slug` | String | Market identifier (e.g., "denver") |147| `name` | String | Display name (e.g., "Denver Area") |148| `status` | String | Market status ("OPEN") |149| `subscriptionProgramStatus` | String | Subscription program status ("OPEN") |150| `isOpenAccessSeasonPassMarket` | Boolean | Season pass availability |151| `isOpenForBusiness` | Boolean | Whether market is operational |152| `isFoodPreorderRequired` | Boolean | Food preorder requirement |153| `foodPreorderAvailability` | String | Food preorder status ("NONE") |154| `isMaxSafetyOperation` | Boolean | Safety operation flag |155| `cinemas` | Array[Object] | List of theaters in this market |156| `marketStrings` | Array[Object] | Localized policy descriptions |157158### Nested: `cinema` Object159160Each cinema represents a physical theater location:161162| Field | Type | Description |163|-------|------|-------------|164| `id` | String | Cinema ID (e.g., "0402") |165| `loyaltyCinemaId` | String | Loyalty program ID |166| `slug` | String | Cinema identifier (e.g., "sloans-lake") |167| `name` | String | Theater name (e.g., "Sloans Lake") |168| `status` | String | Cinema status ("OPEN") |169| `timeZoneName` | String | Local timezone |170| `latitude` | Number | GPS latitude |171| `longitude` | Number | GPS longitude |172| `street1` | String | Street address |173| `street2` | String\|null | Address line 2 |174| `city` | String | City |175| `state` | String | State code (e.g., "CO") |176| `postalCode` | String | ZIP code |177| `phone` | String | Phone number |178| `email` | String | Contact email |179| `heroImageUrl` | String | Theater image URL |180| `googleMapsUrl` | String | Google Maps link |181| `appleMapsUrl` | String | Apple Maps link |182| `attachedBar` | Object | Bar information |183| `isClosedCaptioningAvailable` | Boolean | CC availability |184| `isDescriptiveAudioAvailable` | Boolean | Audio description availability |185| `isAssistedListeningAvailable` | Boolean | Assistive listening availability |186| `menus` | Object | Food menu PDF URLs |187| `foodPreorderAvailability` | String | Food preorder status |188| `parkingNotice` | String | Parking information (HTML) |189| `postPurchaseNotice` | Object | Post-purchase information |190| `isWageNoticeDisplayed` | Boolean | Wage notice display flag |191192### Attached Bar Object193194```json195{196 "name": "BarFly",197 "websiteUrl": "https://drafthouse.com/denver/theater-bar/sloans-lake"198}199```200201### Menus Object202203```json204{205 "theaterMenuPdf": "https://crafthouse-assets-prod.s3.amazonaws.com/files/venues/..."206}207```208209### Market Strings Object210211Localized accessibility and policy descriptions:212213```json214{215 "key": "closedCaptioning",216 "value": "The personal closed captioning device..."217}218```219220Keys include: `closedCaptioning`, `descriptiveAudio`, `assistedListening`, `latePolicy`221222---223224## 5. Presentation Attributes225226Presentation attributes describe special presentation types.227228| Field | Type | Description |229|-------|------|-------------|230| `slug` | String | Attribute identifier |231| `name` | String | Display name |232| `description` | String | Attribute description |233| `isUserVisible` | Boolean | Whether shown to users |234| `isUserFilterable` | Boolean | Whether filterable |235236**Values in this response:**237- `first-run` - New Releases238- `alamo-exclusive` - Only at the Alamo239- `advance-sales` - Advance Sales240- `family-friendly` - Family Friendly241242---243244## 6. Session Attributes245246Session attributes describe special session types (Baby Day, Kid Friendly, etc.).247248| Field | Type | Description |249|-------|------|-------------|250| `slug` | String | Attribute identifier |251| `name` | String | Display name |252| `description` | String | Attribute description |253| `isUserVisible` | Boolean | Whether shown to users |254| `isUserFilterable` | Boolean | Whether filterable |255256**Values in this response:**257- `BD` - Baby Day Show258- `Digital` - Digital259- `Hidden` - Invite Only260- `KF` - Kid Friendly261- `QR Menu 4` - Menu Add Special Screening 4262- `QR Stay On` - QR Ordering Stays On263264---265266## 7. Formats267268Screening format definitions.269270| Field | Type | Description |271|-------|------|-------------|272| `slug` | String | Format identifier |273| `vistaSlug` | String\|null | Vista POS code |274| `title` | String | Display title |275| `headline` | String | Marketing headline |276| `description` | String | Format description (HTML) |277| `titleTreatmentImage` | Object | Format logo image |278| `heroImage` | Object\|null | Hero image |279280**Values in this response:**281- `2d-digital` - Standard 2D digital projection282- `the-big-show` - Premium Large Format (PLF)283284---285286## 8. Age Policies287288Age rating policy definitions.289290| Field | Type | Description |291|-------|------|-------------|292| `slug` | String | Policy identifier |293| `name` | String | Display name |294| `description` | String | Policy rules |295296**Values in this response:**297- `all-ages` - All Ages298- `rated-pg` - Rated PG299- `rated-pg-13` - Rated PG-13 (Standard)300- `rated-pg-adult-focus` - Rated PG with Adult Focus301- `rated-r` - Rated R302303---304305## 9. Patterns and Observations306307### Data Relationships3083091. **Presentation to Session**: Sessions reference presentations via `presentationSlug` field3102. **Session to Cinema**: Sessions reference theaters via `cinemaId` 3113. **Session to Format**: Sessions use `formatSlug` referencing the `formats` array3124. **Session to Age Policy**: Sessions use `agePolicySlug` referencing `agePolicies`3135. **Presentation to Attributes**: Presentations use `presentationAttributeSlugs` referencing `presentationAttributes`314315### Date/Time Handling316317- Two timezone-aware time fields are provided:318 - `showTimeClt` - Local time (client timezone)319 - `showTimeUtc` - UTC time320- Sessions span multiple business dates (data shows dates from 2026-02-14 to 2026-03-28)321- Session `status` indicates availability: "ONSALE" or "PAST"322323### Availability Tracking324325- Ticket availability is tracked via three fields:326 - `ticketTypesLoyaltyCount` - Loyalty member tickets327 - `ticketTypesVoucherCount` - Voucher holder tickets328 - `ticketTypesNormalCount` - Standard tickets329330### Accessibility Features331332- Three accessibility options tracked at both cinema and session level:333 - Closed Captioning334 - Descriptive Audio335 - Assisted Listening336337### Image Types338339- **Landscape Hero**: 1920x1080 - Used for wide displays340- **Portrait Hero**: 1080x1440 - Used for mobile/vertical341- **Poster**: 1080x1620 - Standard movie poster342- **Title Treatment**: SVG format - Format logos343344### Certification Values345346Movie ratings found in data: `R`, `PG`, `PG-13`, `NR` (Not Rated)347348---349350## 10. Summary Statistics351352| Metric | Count |353|--------|-------|354| Total Presentations | 47 |355| Total Sessions | 209 |356| Total Cinemas | 3 |357| Total Formats | 2 |358| Total Presentation Attributes | 4 |359| Total Session Attributes | 6 |360| Total Age Policies | 5 |361| Total Market Strings | 4 |362363---364365*Generated from Alamo Drafthouse Schedule/Venue API response*