On this page
Movie theater showtimes are scattered across chain websites and ticketing platforms, and few of them offer an open API. API Cinéma gathers the showtimes of US theaters into one JSON API, with the same format from a 25-screen AMC to a single-screen independent.
This guide shows how to get US showtimes: around a location, by city, by film and by theater.
What the API covers in the United States
- More than 3,000 theaters in every state: AMC (about 500), Regal (about 400), Cinemark (about 300), Alamo Drafthouse and independent theaters.
- Every showtime with its local start time, its format (
2D,3D,IMAX,DOLBY,4DX), its version (VOfor the original version,VOSTfor subtitled screenings) and a booking link. - Every movie with a clean title, running time, synopsis, genres and poster, matched to TMDB (
tmdbId). - Every theater with its address, state, ZIP code, coordinates and time zone.
Each theater is read again every one to three days, and all of them once a week.
Get an API key
Create a free account, confirm your e-mail address, then create a key from the dashboard. The free plan gives 150 requests a week for trials and non-commercial projects; paid plans start at €12 a month for 10,000 a week.
Send the key in the Authorization header, from your server only:
curl "https://api.api-cinema.com/v1/cinemas?country=US&city=Chicago" -H "Authorization: Bearer ac_live_…"Theaters and showtimes near a location
Most apps start from the user's position. near takes a latitude and a longitude, radius_km a radius in kilometers (10 by default). Theaters within 3 km (about 2 miles) of Times Square, nearest first:
curl "https://api.api-cinema.com/v1/cinemas?country=US&near=40.758,-73.9855&radius_km=3" -H "Authorization: Bearer ac_live_…"{
"data": [
{ "id": "fdg_aaore", "slug": "amc-empire-25-new-york-ny", "name": "AMC Empire 25", "address": "234 West 42nd St.", "city": "New York", "region": "NY", "timezone": "America/New_York", "distanceKm": 0.28 },
{ "id": "fdg_aaodh", "slug": "regal-times-square-new-york-ny", "name": "Regal Times Square", "address": "247 W. 42nd St.", "city": "New York", "region": "NY", "timezone": "America/New_York", "distanceKm": 0.32 }
],
"meta": { "limit": 50, "offset": 0, "total": 13 }
}The same parameters on /v1/showtimes answer "what's playing near me":
curl "https://api.api-cinema.com/v1/showtimes?country=US&near=40.758,-73.9855&radius_km=5&limit=200" -H "Authorization: Bearer ac_live_…"Prefer near to city for big metros: city is an exact match, so "New York" leaves out Brooklyn and "Los Angeles" leaves out Burbank.
Time zones
The United States spans several time zones, and every time in the API is the theater's own wall-clock time: "startsAt": "2026-10-24T19:30:00" at a Chicago theater means 7:30 pm in Chicago. Display it as it is. The theater's timezone (America/Chicago) is there when you need to compare with the user's clock.
Filters on dates follow the same rule: date=2026-10-24 is the whole of October 24 in each theater's local time, and without date or from the search starts from "now" in each theater's time zone.
Every showtime of a movie
Filter by TMDB id to get one movie in every theater, whatever title each theater publishes ("The Odyssey" at one, "Odyssey" at another):
curl "https://api.api-cinema.com/v1/showtimes?country=US&tmdb_id=1368337&near=34.0522,-118.2437&radius_km=15" -H "Authorization: Bearer ac_live_…"To list the movies now playing in the United States, use GET /v1/movies?country=US&playing=true.
One theater's schedule
Find the theater by name, then read its showtimes. The path accepts the theater's id or its slug:
curl "https://api.api-cinema.com/v1/cinemas?country=US&q=empire%2025" -H "Authorization: Bearer ac_live_…"
curl "https://api.api-cinema.com/v1/cinemas/amc-empire-25-new-york-ny/showtimes?include=movie" -H "Authorization: Bearer ac_live_…"include=movie embeds only the movie: the theater is the same on every row, so leaving it out makes the answer lighter.
A JSON body for complex searches
Every search also exists as POST …/search with a JSON body, easier to build from code. Tonight's IMAX screenings within 10 km of downtown Chicago:
const res = await fetch('https://api.api-cinema.com/v1/showtimes/search', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.API_CINEMA_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
country: 'US',
near: { lat: 41.8781, lng: -87.6298, radiusKm: 10 },
from: '2026-10-24T18:00',
to: '2026-10-24T23:59',
limit: 200,
}),
})
const { data } = await res.json()
for (const s of data.filter(s => s.format === 'IMAX'))
console.log(s.startsAt.slice(11, 16), s.movie.title, '—', s.cinema.name, s.bookingUrl)Large volumes
Lists are paginated with limit (up to 1,000 showtimes) and offset, or cursor to walk a whole result set. To mirror the data in your own database, sync incrementally with updated_since. The documentation covers both, as well as rate limits.
Frequently asked questions
Does it include ticket prices? No: the API gives showtimes and a booking link per showtime, where the price is shown.
How fresh is the data?
Each theater is read again every one to three days, more often for the busiest ones, and all of them weekly. Removed showtimes are flagged (removedAt) in incremental syncs.
Which chains are covered?
AMC, Regal, Cinemark, Alamo Drafthouse, Marcus, Harkins, Landmark and many independents. Search a theater with GET /v1/cinemas?country=US&q=<name>.
Is there a Fandango API? Fandango has no open API for developers; see the Fandango API alternative for the equivalent calls.