hOwTo
movies.json
A plain, stable JSON feed of everything currently playing on stuffsac — built for your own tool or bot to read, not just a browser.
It's rebuilt every time the site itself is (once a day), straight from the same database that drives the site, the RSS feed, and the calendar subscriptions. Nothing in it is computed separately from what the site shows — if a movie or showtime isn't on stuffsac, it isn't in here either.
Where to find it
Every page on the site has its own movies.json sitting right alongside it, scoped to exactly what that page shows:
If you can load a page on the site, you can load its movies.json — same URL, just add movies.json after the trailing slash.
See all 117 endpoints
/movies.json
/gold-country/movies.json
/gold-country/del-oro/movies.json
/gold-country/del-oro/series/movies.json
/gold-country/film/movies.json
/gold-country/imax/movies.json
/gold-country/onyx/movies.json
/gold-country/onyx/series/movies.json
/gold-country/onyx-downtown/movies.json
/gold-country/onyx-downtown/series/movies.json
/gold-country/onyx-downtown/series/sunday-night-movies/movies.json
/gold-country/series/movies.json
/gold-country/state/movies.json
/gold-country/state/series/movies.json
/sacramento/movies.json
/sacramento/crest/movies.json
/sacramento/crest/series/movies.json
/sacramento/crest/series/2-movies/movies.json
/sacramento/downtown-sac/movies.json
/sacramento/downtown-sac/series/movies.json
/sacramento/downtown-sac/series/movies-under-the-stars/movies.json
/sacramento/dreamland/movies.json
/sacramento/dreamland/series/movies.json
/sacramento/dreamland/series/animation-fixation/movies.json
/sacramento/dreamland/series/double-vision/movies.json
/sacramento/dreamland/series/evergreens/movies.json
/sacramento/dreamland/series/fresh-eyes/movies.json
/sacramento/dreamland/series/in-focus-november/movies.json
/sacramento/dreamland/series/new-releases/movies.json
/sacramento/dreamland/series/special-presentations/movies.json
/sacramento/dreamland/series/the-midnight-society/movies.json
/sacramento/esquire/movies.json
/sacramento/esquire/series/movies.json
/sacramento/film/movies.json
/sacramento/imax/movies.json
/sacramento/series/movies.json
/sacramento/tower/movies.json
/sacramento/tower/series/movies.json
/sacramento/tower/series/100-years-of-marilyn-monroe/movies.json
/sacramento/tower/series/classics-in-black-and-white/movies.json
/sacramento/tower/series/hitchcocktober/movies.json
/sacramento/tower/series/monday-epics/movies.json
/sacramento/tower/series/musical-mondays/movies.json
/sacramento/tower/series/tower-classics/movies.json
/sacramento/varsity/movies.json
/sacramento/varsity/series/movies.json
/sacramento/varsity/series/cult-classics/movies.json
/sacramento/west-wind/movies.json
/sacramento/west-wind/series/movies.json
/san-francisco/movies.json
/san-francisco/alamo/movies.json
/san-francisco/alamo/series/movies.json
/san-francisco/alamo/series/advance-screenings/movies.json
/san-francisco/alamo/series/fantastic-fest-presents/movies.json
/san-francisco/alamo/series/movie-parties/movies.json
/san-francisco/alamo/series/queer-film-theory-101/movies.json
/san-francisco/alamo/series/sad-girl-cinema-club/movies.json
/san-francisco/alamo/series/terror-tuesday/movies.json
/san-francisco/alamo/series/weird-wednesday/movies.json
/san-francisco/balboa/movies.json
/san-francisco/balboa/series/movies.json
/san-francisco/castro/movies.json
/san-francisco/castro/series/movies.json
/san-francisco/film/movies.json
/san-francisco/four-star/movies.json
/san-francisco/four-star/series/movies.json
/san-francisco/great-star/movies.json
/san-francisco/great-star/series/movies.json
/san-francisco/great-star/series/free-community-movie/movies.json
/san-francisco/imax/movies.json
/san-francisco/metreon/movies.json
/san-francisco/metreon/series/movies.json
/san-francisco/roxie/movies.json
/san-francisco/roxie/series/movies.json
/san-francisco/roxie/series/2026-san-francisco-transgender-film-festival/movies.json
/san-francisco/roxie/series/barry-gifford-wild-lives-lost-highways/movies.json
/san-francisco/roxie/series/beautiful-nightmares/movies.json
/san-francisco/roxie/series/being-heumann/movies.json
/san-francisco/roxie/series/colombia-on-film-bajo-el-velo-de-la-ficci-n-under-the-veil-of-fiction/movies.json
/san-francisco/roxie/series/floating-features/movies.json
/san-francisco/roxie/series/her-work-is-never-done/movies.json
/san-francisco/roxie/series/making-marie-antoinette/movies.json
/san-francisco/roxie/series/naza/movies.json
/san-francisco/roxie/series/open-caption-screenings/movies.json
/san-francisco/roxie/series/outlook/movies.json
/san-francisco/roxie/series/roxcine/movies.json
/san-francisco/roxie/series/roxie-kids/movies.json
/san-francisco/roxie/series/silver-screen-club/movies.json
/san-francisco/roxie/series/staff-picks/movies.json
/san-francisco/roxie/series/the-future-according-to-syd-mead/movies.json
/san-francisco/roxie/series/wajda-at-100/movies.json
/san-francisco/series/movies.json
/san-francisco/vogue/movies.json
/san-francisco/vogue/series/movies.json
/santa-cruz/movies.json
/santa-cruz/capitola/movies.json
/santa-cruz/capitola/series/movies.json
/santa-cruz/capitola/series/the-met-live-in-hd/movies.json
/santa-cruz/del-mar/movies.json
/santa-cruz/del-mar/series/movies.json
/santa-cruz/del-mar/series/cine-insomnia-late-shows/movies.json
/santa-cruz/del-mar/series/festival-cinemas/movies.json
/santa-cruz/del-mar/series/netflix-spotlight-at-landmark-theatres/movies.json
/santa-cruz/film/movies.json
/santa-cruz/green-valley/movies.json
/santa-cruz/green-valley/series/movies.json
/santa-cruz/imax/movies.json
/santa-cruz/rio-theatre/movies.json
/santa-cruz/rio-theatre/series/movies.json
/santa-cruz/santa-cruz-cinema/movies.json
/santa-cruz/santa-cruz-cinema/series/movies.json
/santa-cruz/santa-cruz-cinema/series/the-met-live-in-hd/movies.json
/santa-cruz/scotts-valley/movies.json
/santa-cruz/scotts-valley/series/movies.json
/santa-cruz/scotts-valley/series/flashback-cinema/movies.json
/santa-cruz/series/movies.json
/santa-cruz/series/the-met-live-in-hd/movies.json
Shape
The response is a JSON array of Movie objects — no wrapper object, no pagination, no envelope.
Movie
| Field | Type | Notes |
| name | string | The site's own resolved title — TMDB's own spelling when there's a confident match, otherwise whichever theater's own wording was seen first. |
| description | string | null | TMDB's own synopsis when matched, otherwise the first theater's own words. |
| release_year | string | null | The film's own real release year, e.g. "2025" — from TMDB when matched, otherwise parsed from the theater's own listing when it includes one. Not the year of any particular screening. |
| runtime_minutes | number | null | From TMDB, when matched — no theater's own page is scraped for runtime. |
| poster_url | string | null | TMDB's own poster when matched and available, otherwise whatever image the theater's own page had. |
| trailer_url | string | null | A full, playable YouTube URL. |
| tmdb_id | number | null | The Movie Database's own id, when matched. |
| tmdb_rating | number | null | TMDB's own vote average (0–10), not a stuffsac editorial rating. |
| tmdb_url | string | null | That movie's own page on themoviedb.org. |
| url | string | This movie's own card on stuffsac, on the same page this movies.json belongs to — not any one theater's ticket page (a movie playing at several theaters has no single "the" outbound link). |
| showings | Showing[] | One entry per theater currently playing it. |
Showing
| Field | Type | Notes |
| name | string | This theater's own spelling of the title, verbatim — never overwritten by a confident TMDB match the way the Movie's own name above can be, so it can differ from it (e.g. different capitalization/punctuation). |
| description | string | null | This theater's own synopsis text, verbatim — never TMDB's, the way the Movie's own description above can be. |
| auditorium | string | null | Only set for a theater whose own page actually names a specific screen/room. |
| formats | string[] | The exact same badge text the site shows next to this showing, filtered to just the real projection-format tags, e.g. "35mm", "Laser" — including a "(N)" count suffix (e.g. "Laser (2)") whenever a run genuinely varies across its own showtimes, same as the site's own badge. Each showtime's own formats below carries that session's own plain tag with no count at all. Often empty. |
| quirks | string[] | Same badge text as formats above (count suffix included the same way), but everything that isn't a projection format instead: language/accessibility text (e.g. "English Subtitles"), "Q&A", a theater-wide quirk like "Outdoors". Often empty. |
| source_url | string | That theater's own info/ticket page for this run — not a page on stuffsac (contrast the Movie's own url). |
| region | Region | The region this showing's theater belongs to. |
| theater | Theater | The theater playing it. |
| series | Series | null | Set when this booking belongs to a named series/signature program. |
| showtimes | Showtime[] | This booking's entire run, sorted chronologically — already-passed sessions included, same full schedule the site's own page shows, not just what's still upcoming. |
| first_seen_at | string | Full ISO 8601 — when this whole booking was first discovered, frozen from then on. Coarser than each showtime's own first_seen_at below, which is the only one of the three timestamps here that can catch a genuinely new date added to a listing that's already been running a while. |
| last_seen_at | string | Full ISO 8601 — when this listing was last confirmed present by a scrape. Bumps on every scrape regardless of whether anything new was found, so it only answers "is this theater's page still being read successfully," not "is anything new happening" — for that, see first_seen_at above or each showtime's own below. |
Region
| Field | Type | Notes |
| sacid | string | This region's own stable identity, e.g. "sacramento", "gold-country", "santa-cruz", "san-francisco". |
| name | string | Its display name, e.g. "Sacramento". |
| url | string | This region's own page on stuffsac. |
Theater
| Field | Type | Notes |
| sacid | string | This theater's own stable, globally-unique identity (e.g. "sacramento/tower") — use this, not name, to key a lookup. |
| name | string | The theater's full name, exactly as shown on the site (e.g. "Tower Theater", "Davis Varsity Theater"). |
| short_name | string | Its short name, as the site's own filters and headings show it (e.g. "Tower", "Varsity"). |
| color | string | The color the site gives this theater on the page this file sits beside, as a CSS hex color (e.g. "#4d7c0f"). |
| source_url | string | The theater's own homepage. |
| url | string | This theater's own page on stuffsac. |
Series
| Field | Type | Notes |
| sacid | string | This series' own stable, globally-unique identity (e.g. "sacramento/tower:tower-classics", or "santa-cruz:the-met-live-in-hd" for one shared across a region's theaters) — lets you tell apart two independently-named series that happen to share a display name. |
| name | string | The series' own plain display name, e.g. "Tower Classics" or "Hitchcocktober". |
| description | string | null | Null when this series has a name but no page/write-up synced yet. |
| source_url | string | null | The theater's own page for this series, when it has one. |
| film_description | string | null | This series' own write-up of this showing's film, from the series page — separate from the showing's own description. Null when the series page has none for it. |
| url | string | This series' own page on stuffsac — the region-wide page (e.g. /santa-cruz/series/the-met-live-in-hd/) when it plays at more than one theater in its region, otherwise the page under its one theater (e.g. /sacramento/tower/series/hitchcocktober/). |
Showtime
| Field | Type | Notes |
| start_on | string | YYYY-MM-DD. Always set. |
| start_at | string | null | Full ISO 8601, only when a specific start time could be resolved — don't assume it's ever populated; fall back to start_on alone. |
| formats | string[] | This specific session's own real projection-format tags, e.g. "35mm", "IMAX", "Laser". Often empty. |
| quirks | string[] | This specific session's own quirks — everything that isn't a format, e.g. "English Subtitles", "Q&A". Often empty. |
| first_seen_at | string | null | Full ISO 8601 — when this exact session was first discovered, frozen from then on (even once it's playing or past). Useful for telling a genuinely new showtime apart from one that's just still on the schedule. Null for a session scraped before this field existed. |
Example
[
{
"name": "When Harry Met Sally",
"description": "Sex always gets in the way of friendships between men and women. At least, that's what Harry Burns believes...",
"release_year": "1989",
"runtime_minutes": 96,
"poster_url": "https://image.tmdb.org/t/p/w500/rFOiFUhTMtDetqCGClC9PIgnC1P.jpg",
"trailer_url": "https://www.youtube.com/watch?v=TQpG579MsQ4",
"tmdb_id": 639,
"tmdb_rating": 7.4,
"tmdb_url": "https://www.themoviedb.org/movie/639",
"url": "https://www.stuffsac.com/sacramento/#tmdb-639-when-harry-met-sally",
"showings": [
{
"name": "When Harry Met Sally",
"description": "One of the smartest romantic comedies ever written explores the question: \"Can men and women ever just be friends?\"...",
"auditorium": null,
"formats": [],
"quirks": ["English Subtitles"],
"source_url": "https://angelikafilmcenter.com/tower/movies/details/when-harry-met-sally",
"region": {
"sacid": "sacramento",
"name": "Sacramento",
"url": "https://www.stuffsac.com/sacramento/"
},
"theater": {
"sacid": "sacramento/tower",
"name": "Tower Theater",
"short_name": "Tower",
"color": "#4d7c0f",
"source_url": "https://angelikafilmcenter.com/tower/",
"url": "https://www.stuffsac.com/sacramento/tower/"
},
"series": {
"sacid": "sacramento/tower:tower-classics",
"name": "Tower Classics",
"description": "Join us the fourth Monday of each month to relive these iconic flicks on the big screen!",
"source_url": "https://angelikafilmcenter.com/tower/signature-programming/tower-classics",
"url": "https://www.stuffsac.com/sacramento/tower/series/tower-classics/",
"film_description": null
},
"showtimes": [
{ "start_on": "2026-12-28", "start_at": "2026-12-28T19:00:00", "formats": [], "quirks": ["English Subtitles"], "first_seen_at": "2026-10-01T09:14:02" }
],
"first_seen_at": "2026-09-14T11:02:00",
"last_seen_at": "2026-10-11T02:03:00"
}
]
}
]
← back to stuffsac