BookMyShow APIin.bookmyshow.com ↗
Access BookMyShow India movie listings, events, cast/crew details, and city data via 6 endpoints. Get now-showing, upcoming, and recommended movies by city.
What is the BookMyShow API?
The BookMyShow India API provides structured access to movie and live event data across Indian cities through 6 endpoints. Use get_now_showing_movies to retrieve currently playing films with genre, certification, and poster URLs, or call get_movie_details with an event code to get cast, crew, synopsis, duration, and release metadata. City coverage is driven by the get_cities endpoint, which returns region slugs used as input across the entire API.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/c9d4d699-5bca-49af-a878-144ad05b0f5f/get_cities' \ -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 in-bookmyshow-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.
"""
BookMyShow API - Discover movies and events across Indian cities.
Get your API key from: https://parse.bot/settings
"""
from parse_apis.bookmyshow_api import BookMyShow, City, MovieSummary, MovieDetail, EventSummary, CastMember
bms = BookMyShow()
# List all supported cities
for city in bms.cities.list():
print(city.region_name, city.region_slug, city.state_name)
# Construct a city by slug and browse its now-showing movies
bengaluru = bms.city(region_slug="bengaluru")
for movie in bengaluru.movies.now_showing():
print(movie.title, movie.event_code, movie.genre, movie.language)
# Get upcoming movies
for movie in bengaluru.movies.upcoming():
print(movie.title, movie.event_code, movie.poster_url)
# Get recommended movies
for movie in bengaluru.movies.recommended():
print(movie.title, movie.genre, movie.cta_url)
# Drill into movie details from a summary
for movie in bengaluru.movies.now_showing(limit=1):
detail = movie.details(city="bengaluru")
print(detail.event_name, detail.duration, detail.event_genre)
print(detail.release_date, detail.event_censor, detail.description)
for actor in detail.cast:
print(actor.name, actor.role, actor.image_url)
for member in detail.crew:
print(member.name, member.role)
# Browse events in a city
for event in bengaluru.events.list():
print(event.title, event.event_code, event.genre, event.language)
Retrieve all supported cities and regions with their codes, slugs, coordinates, and sub-regions. Returns both top cities and other cities combined into a single list. Each city includes a RegionCode (used internally) and a RegionSlug (used as the city identifier in other endpoints).
No input parameters required.
{
"type": "object",
"fields": {
"cities": "array of city/region objects with RegionCode, RegionName, RegionSlug, Lat, Long, StateCode, StateName, SubRegions, CountryCode"
},
"sample": {
"data": {
"cities": [
{
"Lat": "19.076",
"Long": "72.8777",
"StateCode": "MH",
"StateName": "Maharashtra",
"RegionCode": "MUMBAI",
"RegionName": "Mumbai",
"RegionSlug": "mumbai",
"SubRegions": [
{
"SubRegionCode": "MWEST",
"SubRegionName": "Mumbai: Western",
"SubRegionSlug": "mumbai-western"
}
],
"CountryCode": "IN"
},
{
"Lat": "12.971599",
"Long": "77.594563",
"StateCode": "KT",
"StateName": "Karnataka",
"RegionCode": "BANG",
"RegionName": "Bengaluru",
"RegionSlug": "bengaluru",
"SubRegions": [],
"CountryCode": "IN"
}
]
},
"status": "success"
}
}About the BookMyShow API
City and Movie Discovery
get_cities returns the full list of BookMyShow-supported Indian cities and regions, each with a RegionSlug that acts as the city parameter in every other endpoint. Fields include RegionCode, RegionName, coordinates (Lat, Long), StateCode, StateName, and any SubRegions. Pass a city's RegionSlug into get_recommended_movies to get the homepage top-movies list for that location, which returns each movie's title, event_code, genre, language, poster_url, cta_url, and rating where available. The optional limit parameter caps results; setting it to 0 returns all available entries.
Now-Showing and Upcoming Films
get_now_showing_movies and get_upcoming_movies each paginate through up to five pages of results and return a combined items array alongside a total count. Both share the same response shape: title, event_code, genre, language, certification, poster_url, and cta_url. The event_code values returned here (alphanumeric IDs beginning with ET) are the keys for drilling into full movie details.
Movie Details and Events
get_movie_details takes a required event_code and an optional city slug, and returns a flattened structure covering cast and crew arrays (each with name, role, and image_url), description, duration, event_genre, event_censor, and release_date. For non-film content, get_events_list follows the same pagination and response shape as the movie listing endpoints, covering categories like concerts, comedy shows, and sports events by city.
The BookMyShow API is a managed, monitored endpoint for in.bookmyshow.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when in.bookmyshow.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 in.bookmyshow.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 city-specific movie guide app that surfaces now-showing films with certifications and poster images.
- Track upcoming releases across multiple Indian cities by polling
get_upcoming_movieswith different city slugs. - Populate a cast and crew database for Indian theatrical releases using
get_movie_detailsevent_code lookups. - Aggregate live event listings (concerts, sports, comedy) by city using
get_events_list. - Display genre and language breakdowns of currently playing films for a regional content analytics dashboard.
- Map movie availability across Indian regions by joining
get_citiescoordinates withget_now_showing_moviesresults. - Generate weekly 'what's on' digests per city combining recommended movies and event listings.
| 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 BookMyShow have an official public developer API?+
How does `get_movie_details` relate to the listing endpoints?+
get_movie_details requires an event_code — an alphanumeric ID starting with 'ET' — which you obtain from the event_code field returned by get_recommended_movies, get_now_showing_movies, or get_upcoming_movies. It returns richer fields not present in the listing endpoints: full cast and crew arrays with images, description (synopsis), duration, event_censor, and release_date.Does the API cover showtimes and seat availability?+
Is event data limited to movies, or does it include other categories?+
get_events_list returns non-film events such as concerts, comedy shows, and sports events. Each event object includes title, event_code, genre, language, certification, poster_url, and cta_url. However, detailed event-level information analogous to get_movie_details is not currently available for non-film events. You can fork this API on Parse and revise it to add an event-detail endpoint.How many pages of results do the listing endpoints fetch?+
get_now_showing_movies, get_upcoming_movies, and get_events_list each paginate internally through up to five pages and return all results combined in a single items array with a total count. Results beyond five pages of the source listing are not included.