District Movie Showtimes Scraper — Seats, Prices & Box Office avatar

District Movie Showtimes Scraper — Seats, Prices & Box Office

Pricing

from $1.50 / 1,000 showtimes

Go to Apify Store
District Movie Showtimes Scraper — Seats, Prices & Box Office

District Movie Showtimes Scraper — Seats, Prices & Box Office

Every movie showtime on District (Zomato) for any Indian city: cinema, screen, format, seat-class prices, seats sold vs available, occupancy % and estimated gross, plus daily box-office summaries per movie. PVR, INOX, Cinepolis and 2,400+ cinemas. No login.

Pricing

from $1.50 / 1,000 showtimes

Rating

0.0

(0)

Developer

Yugenox Corp

Yugenox Corp

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 days ago

Last modified

Share

District Movie Showtimes, Seats & Box Office Scraper (India)

Get every movie showtime on District for any Indian city, with the cinema, screen, format, seat-class prices, seats sold vs available, occupancy % and estimated gross collection for each show. The scraper also adds daily box-office summaries per movie and city.

It covers PVR, INOX, Cinepolis, Miraj, MovieMax and 2,400+ other cinemas in 1,100+ Indian cities. One run can sweep a whole city (or several) across every movie, every cinema and several days of advance booking.

What you can do with it

  • Track box office and advance bookings. Schedule it daily and chart occupancy and estimated gross per movie, city and day, the way trade trackers do. Use Summaries only for a compact feed.
  • Monitor ticket prices. Get prices per seat class (Executive, Royal, Recliner, IMAX, 4DX, and so on) by chain and city, including weekday vs weekend.
  • Plan releases and screens. See how many shows and cinemas each title gets, the format split (2D / 3D / IMAX / 4DX / MX4D) and which chains carry it.
  • Analyse cinemas. Get every show at a specific cinema with a per-movie breakdown, or pull a full cinema directory with addresses, coordinates and amenities.
  • Power a showtimes app, bot or newsletter with clean, structured JSON.

Input

FieldWhat it does
What to scrapeshowtimes (default), movies (now-showing list), or cinemas (cinema directory).
Citiese.g. mumbai, delhi-ncr, bengaluru, hyderabad, chennai, pune, kolkata, ahmedabad. Common names such as Bangalore, Delhi and Gurugram work too. top = District's 12 top cities, all = every city (capped by Max cities).
MoviesOptional. A title or part of one (Vvaan), a District movie URL, or a content id. Leave empty for all movies.
CinemasOptional. District cinema URLs or ids. Returns every show at those cinemas.
Days ahead / Specific datesToday only by default. Dates are India time.
Languages / Screen formats / Cinema chainsOptional filters, e.g. Tamil, IMAX, PVR.
Daily box-office summariesAdds one summary row per movie, city and date. On by default.
Summaries onlyReturns only the summary rows.
Include seat classesAdds the per-class price and seat breakdown to each show.
Max resultsStops after this many rows.

Example: every show in Mumbai today

{ "cities": ["mumbai"] }

Example: advance booking for one film across the top cities, summaries only

{ "cities": ["top"], "movies": ["The Vvaan"], "daysAhead": 7, "summariesOnly": true }

Example: IMAX and 4DX shows at PVR/INOX in Delhi-NCR this weekend

{ "cities": ["delhi-ncr"], "formats": ["IMAX", "4DX"], "chains": ["PVR", "INOX"], "dates": ["2026-09-26", "2026-09-27"] }

Example: all shows at one cinema for the next 3 days

{ "cinemaIds": ["https://www.district.in/movies/pvr-market-city-kurla-w-mumbai-in-mumbai-CD1022270"], "daysAhead": 3 }

Output

Every row has a type field: showtime, summary, movie or cinema.

Showtime row

{
"type": "showtime",
"city": "Hyderabad", "cityKey": "hyderabad", "showDate": "2026-09-25",
"movieName": "Avengers Endgame: Encore", "movieCode": "exr876o4uso", "contentId": 227928,
"language": "English", "screenFormat": "3D", "censor": "UA16+", "genres": ["Action", "Adventure", "Fantasy"],
"runtimeMin": 185, "releaseDate": "2026-09-25",
"cinemaId": 126, "cinemaName": "Cinepolis CCPL Mall, Malkajgiri, Hyderabad", "chain": "Cinepolis",
"address": "CCPL Mall, Vimala Devi Nagar Colony, Malkajgiri, Secunderabad, Telangana 500047, India",
"pincode": "500047", "lat": 17.457209, "lon": 78.53692,
"screen": "AUDI 4", "experience": null, "subtitle": null,
"showTime": "2026-09-25T08:50", "showTimeIso": "2026-09-25T08:50:00+05:30", "showTimeUtc": "2026-09-25T03:20:00Z",
"availability": "available",
"totalSeats": 147, "availableSeats": 132, "soldSeats": 15, "occupancyPct": 10.2,
"minPrice": 240, "maxPrice": 290, "estimatedGrossINR": 4350, "seatDataComplete": true,
"seatClasses": [
{ "label": "EXECUTIVE", "price": 240, "totalSeats": 24, "availableSeats": 24, "soldSeats": 0, "availability": "available" },
{ "label": "PREMIUM", "price": 290, "totalSeats": 123, "availableSeats": 108, "soldSeats": 15, "availability": "available" }
],
"maxTicketsPerBooking": 6,
"movieUrl": "https://www.district.in/movies/avengers-endgame-encore-movie-tickets-in-hyderabad-MV227928",
"cinemaUrl": "https://www.district.in/movies/cinepolis-ccpl-mall-malkajgiri-hyderabad-in-hyderabad-CD126",
"scrapedAt": "2026-09-24T08:10:44.645Z"
}

Summary row (one per movie, city and date)

{
"type": "summary", "scope": "movie",
"city": "Delhi-NCR", "showDate": "2026-09-24", "movieName": "Hanuman Ansh", "language": "Hindi",
"shows": 652, "cinemas": 125, "totalSeats": 132541, "soldSeats": 12075, "availableSeats": 120466,
"occupancyPct": 9.1, "estimatedGrossINR": 3249870, "grossComplete": true, "avgTicketPrice": 269,
"minPrice": 99, "maxPrice": 1200, "soldOutShows": 0, "fillingFastShows": 10,
"formats": { "2D": 652 }, "chains": { "PVR": 303, "Cinepolis": 115, "miraj": 53, "Wave": 23 },
"firstShow": "2026-09-24T13:35", "lastShow": "2026-09-24T23:55",
"movieUrl": "https://www.district.in/movies/hanuman-ansh-movie-tickets-in-delhi-ncr-MV225612"
}

(chains trimmed to the top 4 here; the real row lists every chain)

With Cinemas input, the summary is one row per cinema and date, with a movies breakdown (shows, sold seats and estimated gross per movie).

Movies mode returns the now-showing list per city: title, language, format, censor rating, genres, runtime, release date, popularity rank, session count, poster and link. Cinemas mode returns the directory: name, chain, address, pincode, coordinates, amenities and session count.

How the numbers work

  • Sold seats = total seats minus seats still bookable online at the moment of the scrape. Some cinemas, especially single screens, keep part of the house for counter sales, so for them "sold" means not available online.
  • Estimated gross = the sum over seat classes of sold seats × ticket price. It is an estimate: it excludes convenience fees and taxes and does not include offers or counter sales. When a show has incomplete seat data, its gross is null and seatDataComplete is false, never a guess.
  • Show times are Indian Standard Time: showTime is the local wall-clock time, showTimeIso carries the +05:30 offset and showTimeUtc is the same moment in UTC. showDate is the booking date the show is listed under.
  • Today's list only has upcoming shows. Once a show starts, District stops listing it. To capture a whole day, scrape it before the first show (the night before or early morning). Or run several times a day and keep the latest snapshot of each show (cinemaId + sessionId).
  • Occupancy changes all day. Schedule runs at fixed times so days compare like for like.

FAQ

Which cities are covered? Every city District lists for movies (1,100+). The big ones are Mumbai, Delhi-NCR, Bengaluru, Hyderabad, Chennai, Kolkata, Pune, Ahmedabad, Jaipur, Lucknow, Kochi, Chandigarh and more. Gurgaon, Noida and New Delhi return the same cinemas as Delhi-NCR. When cities share cinemas, each show is output once.

How far ahead can I scrape? As far as District has opened bookings. That is usually the coming week, and several weeks for big releases. Dates without shows are skipped.

Why does a summary count more shows than the showtime rows? Summaries always cover the whole movie and day. If Max results stops the run early, fewer individual showtimes are output than the summary counts.

How fast is it? A whole city for one day (40–60 movies, 1,000–3,000 shows) takes 10–40 seconds. Three big cities over two days (8,000+ shows) take about a minute. A 200-row sample finishes in about 10 seconds.

Do I need a proxy? The default Apify datacenter proxy works. If requests start getting blocked, the actor switches to Indian residential proxies automatically.

What happens when District is slow or down? The run still finishes successfully with whatever it collected and a status message that says exactly what happened (for example "Partial — stopped before the run timeout: 1,199 showtimes, 14 summaries"). Requests are retried on fresh IPs with backoff; the run stops shortly before its timeout (20 % of the timeout, 75 s at most) so results are always saved. If your timeout is too short for any data to arrive, the run says so and which timeout to use — 0 items, no charge. A one-city run usually finishes in 5–30 s, so a 60 s timeout or more is safe. You are only ever charged for rows that are in the dataset. A RUN_REPORT record in the run's key-value store lists counts, failures and proxy details.

Field names. maxResults, limit, city, movie, date, days, language, format and chain are accepted as aliases for the documented inputs; mode names are case-insensitive (theatres works for cinemas).

Can I get the seat map (which exact seats are free)? No. The actor reports seat counts per class, not individual seat positions.

Is it legal to scrape District? This actor collects only public information that District shows to every visitor without an account: movie titles, showtimes, cinema names and addresses, ticket prices and seat availability counts. Scraping publicly available data is generally legal, but you are responsible for how you use the results: follow the laws that apply to you (such as GDPR, PIPEDA or CCPA) and District's terms, and check with a lawyer if you are unsure. Read more in Apify's guide Is web scraping legal?

Does it access any private data? No. The actor needs no District account, login, cookie or phone number, and never sees anyone's bookings, payment details or personal information. It reads the same public showtime listings the District website shows to a visitor who is not logged in. Seat numbers are totals per show and seat class, not who bought them.

How much does it cost? You pay per row delivered to your dataset: $1.50 per 1,000 showtimes, $5 per 1,000 daily box-office summaries, and $1 per 1,000 movie or cinema rows in the Movies and Cinemas modes. There is no start fee, and failed requests, skipped cities and rows beyond your charge limit are never billed. For example, all of Mumbai for one day (about 1,000 showtimes and 40 summaries) costs about $1.70, and Summaries only for every movie in District's top 12 cities costs about $1.60 per show date.