Google showtimes API: getting movie times as JSON

Google shows movie times in its results but has no showtimes API. How to get the same data, theaters, films and times, as JSON for France and the United States.

3 min read

On this page
  1. What you get
  2. 1.Get a key
  3. 2.Films showing near a location
  4. 3.Group by film, like Google does
  5. 4.Theaters near me
  6. 5.One film, every theater
  7. Times and time zones
  8. Frequently asked questions

Search "movies near me" on Google and you get a neat block of films, theaters and times. Naturally, developers look for the API behind it. There is none: Google does not publish its showtimes as an API, and scraping its result pages is against its terms, breaks whenever the layout changes, and gets blocked quickly.

API Cinéma gives you the same kind of data, theaters, films and times, as a documented JSON API for France and the United States. This guide shows how to rebuild the "movies near me" block with it.

What you get

  • More than 5,000 cinemas: about 3,000 in the United States (AMC, Regal, Cinemark, Alamo Drafthouse and independents) and about 2,000 in France.
  • Every showtime with its local start time, its format (2D, 3D, IMAX, 4DX, DOLBY), its version and a booking link.
  • Every film with title, running time, synopsis, genres and poster, matched to TMDB.
  • Every cinema with its address, coordinates and time zone.

Get a key

Create a free account and 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.

Films showing near a location

Google's block starts from the user's location. Do the same with near (latitude, longitude) and radius_km:

Terminal
curl "https://api.api-cinema.com/v1/showtimes?near=40.758,-73.9855&radius_km=5&limit=500" -H "Authorization: Bearer ac_live_…"

Without a date, the search starts from now in each cinema's time zone. Each showtime embeds its film and its cinema:

JSON
{
  "startsAt": "2026-10-28T19:30:00",
  "format": "IMAX",
  "version": "VO",
  "bookingUrl": "https://…",
  "movie": { "title": "The Odyssey", "durationMin": 172, "tmdbId": 1368337, "posterUrl": "…" },
  "cinema": { "name": "AMC Lincoln Square 13", "city": "New York", "distanceKm": 1.94 }
}

Group by film, like Google does

Google shows one card per film with its theaters and times. Group the showtimes by tmdbId:

JavaScript
const res = await fetch('https://api.api-cinema.com/v1/showtimes?near=40.758,-73.9855&radius_km=5&limit=500', {
  headers: { Authorization: `Bearer ${process.env.API_CINEMA_KEY}` },
})
const { data } = await res.json()

const films = new Map()
for (const s of data) {
  const key = s.movie.tmdbId ?? s.movie.id
  if (!films.has(key))
    films.set(key, { movie: s.movie, cinemas: new Map() })
  const cinemas = films.get(key).cinemas
  if (!cinemas.has(s.cinema.name))
    cinemas.set(s.cinema.name, [])
  cinemas.get(s.cinema.name).push(s.startsAt.slice(11, 16))
}

for (const { movie, cinemas } of films.values()) {
  console.log(movie.title)
  for (const [name, times] of cinemas)
    console.log(`  ${name}: ${times.join(' ')}`)
}

Group by tmdbId rather than by title: two cinemas may publish the same film under slightly different titles, the TMDB id stays the same.

Theaters near me

For the "Theaters" tab, list the cinemas themselves, nearest first, each with its distanceKm:

Terminal
curl "https://api.api-cinema.com/v1/cinemas?near=48.8584,2.3470&radius_km=3" -H "Authorization: Bearer ac_live_…"

Then a cinema's programme for today with GET /v1/cinemas/{id or slug}/showtimes.

One film, every theater

For a film page ("Where is The Odyssey playing?"), filter by TMDB id:

Terminal
curl "https://api.api-cinema.com/v1/showtimes?tmdb_id=1368337&near=34.0522,-118.2437&radius_km=15" -H "Authorization: Bearer ac_live_…"

Times and time zones

startsAt is the wall-clock time in the cinema's own time zone, with no offset: 19:30 at a Chicago theater means 7:30 pm in Chicago. Display it as it is; the cinema's timezone is there if you need to compare it with the user's clock.

The US guide and the France guide go further, and the documentation lists every parameter.

Frequently asked questions

Is there an official Google showtimes API? No. Google shows showtimes in its results but offers no API to query them.

Is API Cinéma linked to Google? No, it is an independent service with its own data and its own terms.

Which countries are covered? France and the United States. Pass country=FR or country=US to restrict a search; without it, a search around a point covers both.

Are ticket prices included? No: every showtime has a booking link where the price is shown.