BookMyShow APIin.bookmyshow.com ↗
Access BookMyShow movie listings, showtimes, cast details, and live events across Indian cities. 8 endpoints covering now-showing, upcoming, and venue data.
What is the BookMyShow API?
The BookMyShow India API provides 8 endpoints covering movies and live events across Indian cities, from retrieving city listings with coordinates and region codes to fetching venue-level showtimes with seat categories and pricing. The get_movie_details endpoint returns cast, crew, synopsis, certification, and duration for any movie identified by its event code, while get_movie_showtimes surfaces theater-level availability with pricing and available dates.
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
Movie Discovery and Details
The get_recommended_movies, get_now_showing_movies, and get_upcoming_movies endpoints cover the full lifecycle of movie availability in a given city. Each returns an array of movie objects with title, event_code, genre, language, certification, poster_url, and event_date. The city parameter accepts a RegionSlug from get_cities, and the now-showing and upcoming endpoints each paginate up to 5 pages internally, returning all results in a single response. get_recommended_movies also accepts a limit parameter — set to 0 to return all available results.
Cast, Crew, and Showtimes
get_movie_details accepts an event_code (alphanumeric, starting with ET) and returns a flattened structure including cast and crew arrays with name, role, and image_url per member, alongside description, event_genre, event_censor, release_date, and duration. get_movie_showtimes returns a venues array for a given movie and city, with each venue carrying venue_name, address, latitude, longitude, is_multiplex, has_food_sales, seat categories, and pricing. If no date is passed in YYYYMMDD format, the endpoint defaults to the earliest available date and also returns an available_dates array showing all bookable dates.
Events Beyond Movies
get_events_list returns concerts, comedy shows, sports, and other live events in a city, sharing the same response shape as the movie listing endpoints: title, event_code, genre, certification, poster_url, and event_date. get_kids_events covers the dedicated children's category — workshops, classes, and activities — with identical field structure. Both endpoints paginate up to 5 pages internally.
City Coverage
get_cities returns a complete list of supported Indian cities and regions with RegionCode, RegionName, RegionSlug, Lat, Long, StateCode, StateName, SubRegions, and CountryCode. The RegionSlug from this endpoint is the identifier to pass as the city parameter across all other endpoints.
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 movie discovery app showing now-showing and upcoming films by city with poster images and certification ratings
- Aggregate theater-level showtime data including seat categories and pricing for a given movie across multiple Indian cities
- Track cast and crew data for Indian theatrical releases using event codes from get_movie_details
- Compile a live events calendar for concerts and comedy shows across Indian metros using get_events_list
- Power a kids activity finder by city using genre and event_date fields from get_kids_events
- Geo-display cinemas on a map using latitude, longitude, and is_multiplex fields from get_movie_showtimes venues
- Monitor upcoming movie release schedules by city to analyze release patterns across regional markets
| 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 offer an official public developer API?+
What does get_movie_showtimes return, and how do I get showtimes for a specific date?+
venues array where each entry includes venue_name, address, geolocation coordinates, is_multiplex, has_food_sales, seat categories, and pricing for the requested movie. Pass a date in YYYYMMDD format to target a specific day; omit it to receive showtimes for the earliest available date. The response also includes an available_dates array listing all bookable dates with display_date, day, and is_disabled flags.Does the API cover event details pages — synopsis, performers, or venue info for concerts and comedy shows?+
get_events_list and get_kids_events return listing-level fields: title, event_code, genre, certification, poster_url, and event_date. Detailed event pages with performer bios or venue descriptions are not covered by the current endpoints. You can fork this API on Parse and revise it to add a dedicated event details endpoint using the event_code values returned from listings.What are the pagination limits for listing endpoints?+
total field in each response reflects the count returned. Cities with thinner listings may return fewer items than the 5-page ceiling would suggest.Can I retrieve showtimes or movie listings for cities outside India?+
get_cities, which returns CountryCode and StateCode data for Indian regions only. BookMyShow operates in other countries, but those markets are not covered here. You can fork this API on Parse and revise it to target a different BookMyShow regional domain if that data is relevant to your use case.