Fandango APIfandango.com ↗
Retrieve movie showtimes, theater listings, and format details from Fandango by ZIP code and date. Search movies, get IMAX/3D availability, and more.
What is the Fandango API?
The Fandango API exposes 5 endpoints for querying movie showtimes, theater listings, and screening format availability across the US. Starting with search_movies, you can find Fandango movie IDs by title, then feed those IDs into get_movie_showtimes or get_movie_formats to retrieve time slots, theater names, and format variants like IMAX, 3D, and Premium Format — all filtered by ZIP code and date.
curl -X GET 'https://api.parse.bot/scraper/d5a6141a-e018-4735-a391-d60b18e9a537/search_movies?limit=5&query=Avatar' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace fandango-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Fandango SDK — search movies, browse theaters, check showtimes."""
from parse_apis.fandango_movie_showtimes_api import Fandango, MovieNotFound
client = Fandango()
# Search for movies by title keyword — limit caps total items fetched.
for movie in client.movies.search(query="Disclosure Day", limit=3):
print(movie.name, movie.release_date, movie.link)
# Browse nearby theaters and their current movies/showtimes.
theater = client.theaters.list(zip_code="10001", limit=1).first()
if theater:
print(theater.name, theater.city, theater.state)
for movie in theater.movies:
print(movie.title, [v.format_header for v in movie.variants])
# Get showtimes for a specific movie at nearby theaters.
for ts in client.theatershowtimes.list(movie_id="244050", zip_code="10001", limit=3):
print(ts.name)
for variant in ts.variants:
print(variant.format_header, [s.time for s in variant.showtimes])
# Check movie calendar — which dates have showtimes available.
for day in client.calendardays.list(movie_slug="disclosure-day-2026-244050", zip_code="10001", limit=5):
print(day.date, day.day_name_short, day.has_showtime)
# Typed error handling around a potentially failing call.
try:
results = client.theatershowtimes.list_formats(movie_id="244050", zip_code="10001", limit=3)
for ts in results:
print(ts.name, [v.format_header for v in ts.variants])
except MovieNotFound as exc:
print(f"Movie not found: {exc.movie_id}")
print("exercised: movies.search / theaters.list / theatershowtimes.list / calendardays.list / theatershowtimes.list_formats")
Full-text search over movies by title keyword. Returns matching movies with IDs, titles, release dates, and poster thumbnails. The returned movie ID is an alphanumeric identifier used for search display; for showtimes and format lookups, use the numeric ID extracted from the movie link path (e.g., link '/disclosure-day-2026-244050/movie-overview' yields numeric ID '244050').
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results to return |
| queryrequired | string | Search keyword (movie title) |
{
"type": "object",
"fields": {
"query": "string - search term used",
"total": "integer - number of results returned",
"movies": "array of movie objects with id, name, link, release_date, poster_thumbnail"
},
"sample": {
"data": {
"query": "Avatar",
"total": 4,
"movies": [
{
"id": "07nkj4RE",
"link": "/avatar-fire-and-ash-2025-241479/movie-overview",
"name": "Avatar: Fire and Ash (2025)",
"release_date": "2025-12-19T00:00:00",
"poster_thumbnail": "https://images.fandango.com/ImageRenderer/100/0/redesign/static/img/default_poster.png/0/images/MasterRepository/fandango/241479/A3Payoff_AshHordeCotaBottom_BigFire_017g_004_w10_Mech9_1.jpg"
}
]
},
"status": "success"
}
}About the Fandango API
Movie Search and Identification
The search_movies endpoint accepts a query string (movie title keyword) and an optional limit, returning an array of movie objects that include id, name, release_date, link, and poster_thumbnail. The id field is the numeric Fandango movie ID you'll pass to the showtime and format endpoints. The total field tells you how many matches exist regardless of the limit applied.
Showtimes by Movie or by Theater
get_movie_showtimes takes a movie_id, an optional zip_code, and an optional date (YYYY-MM-DD; defaults to today). It returns a theaters array where each theater object carries an id, name, and a variants array. Each variant has a format_header (e.g., "Standard", "IMAX", "3D") and the specific showtimes for that format. get_theaters inverts this — given a zip_code and optional date, it returns nearby theaters with their address, city, state, amenities, and a movies array listing what's currently showing and when.
Format Availability and Screening Calendar
get_movie_formats uses the same movie_id and zip_code inputs as the showtimes endpoint but organizes results specifically around format variants, making it straightforward to see which theaters in an area are offering IMAX or Premium Format for a given film on a given date. For planning further ahead, get_movie_calendar accepts a movie_slug (e.g., michael-2026-243301) and returns a calendar array with per-day has_showtime booleans, plus an available_dates list of YYYY-MM-DD strings. For films without scheduled showtimes yet, both start_date and end_date return null and the arrays are empty.
The Fandango API is a managed, monitored endpoint for fandango.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fandango.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official fandango.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a local theater finder that lists nearby venues, their amenities, and tonight's showtimes by ZIP code
- Display IMAX and Premium Format availability for a specific movie across theaters in a metro area
- Power a movie-release calendar feature using
get_movie_calendarto surface the first date tickets go on sale - Aggregate showtime data across multiple ZIP codes to compare regional release schedules for new films
- Create a format-price comparison tool by pairing
get_movie_formatsresults with external ticket price data - Alert users when a movie they've searched for gains available showtime dates via the
available_datesfield - Match a movie's
poster_thumbnailandrelease_datefromsearch_moviesinto a browsable film discovery UI
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Fandango have an official public developer API?+
What does `get_movie_formats` return that `get_movie_showtimes` doesn't?+
get_movie_formats and get_movie_showtimes share the same core response shape — both return a theaters array with variants containing format_header and showtimes. The difference is intent: get_movie_formats is oriented around enumerating distinct viewing formats (Standard, 3D, IMAX, Premium Format) for a film, while get_movie_showtimes focuses on the full showtime schedule per theater. Use get_movie_formats when you specifically need to surface format options to users; use get_movie_showtimes when you want a comprehensive per-theater schedule.