District Showtimes Scraper avatar

District Showtimes Scraper

Pricing

from $3.00 / 1,000 showtime founds

Go to Apify Store
District Showtimes Scraper

District Showtimes Scraper

Finds every showtime for a movie across the cinemas in a city on District (district.in) — dates, times, theatres, screen formats, ticket prices and live seats-available counts.

Pricing

from $3.00 / 1,000 showtime founds

Rating

0.0

(0)

Developer

Monk N Warriors

Monk N Warriors

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

District Movie Showtimes & Cinema Schedule Scraper

Get every movie showtime across the cinemas in a city on District (district.in) — dates, times, theatres, screen formats, ticket prices, and how many seats are still free — in one structured dataset, without checking cinema by cinema.

Built for cinema analysts, distributors tracking a release's rollout, price and occupancy monitoring, and anyone who needs a city-wide view of what's playing and how full it is.


What you can do with it

  • Track a movie's rollout across every cinema in a city, day by day.
  • Monitor ticket prices per cinema and per seating class over time.
  • Watch seat availability / occupancy fill up ahead of a release or across a weekend.
  • Compare formats (2D / 3D / IMAX / 4DX) and premium screens across a city.
  • Build a cinema directory for a city — names, addresses, chains, coordinates.

Input

FieldDescription
CitiesOne or more city names, e.g. Mumbai, Bengaluru, Ahmedabad. District covers 1,300+ Indian cities and towns, not just the metros. Matching is case-insensitive.
MoviesOptional. A District movie link (https://www.district.in/movies/...-MV181196), a MV181196 code, or just a movie name. Leave empty to capture every movie currently showing in each city.
Movies per cityUsed only when Movies is empty — caps how many now-showing movies are pulled per city (default 10).
Which dates to checkAutomatic (recommended) checks exactly the dates District has released for the movie. Or pick specific dates / a date range.
Stop looking after N days aheadSafety cap for Automatic mode (default 14).
Include far-away cinemasDistrict returns a secondary "also showing nearby" group (often a neighbouring town). Keep on to capture it (default on).
ProxyResidential, India by default — District only serves Indian IPs.

Minimal input — every movie showing in Mumbai, all released dates:

{ "cities": ["Mumbai"] }

Output

The dataset is flat — no nested columns — so it opens cleanly in Excel / Google Sheets. Pick one grain with the Output mode input; the whole dataset is that grain, so every column has data (no empty columns to scroll past):

  • SHOWTIMES (default) — one row per showtime: movie, cinema, time, price range, total seat counts, occupancy, and a price_classes text summary of every seating class.
  • PRICE_CLASSES — one row per seating class per showtime: that class's price and live seat counts, structured for per-class analysis.

Both carry the same movie / cinema / showtime columns and the seat_layout_ref.

SHOWTIMES grain — one row per showtime

(Illustrative — codes and numbers change constantly.)

{
"row_type": "SHOWTIME",
"session_key": "district|mumbai|181196|1023314|20668|2026-09-08",
"scraped_at": "2026-09-07T18:22:46+00:00",
"city_key": "mumbai", "city_name": "Mumbai", "state_key": "maharashtra",
"movie_id": "181196",
"movie_code": "n5N_fTqZr8",
"movie_title": "Mirzapur: The Movie",
"movie_languages": "Hindi",
"movie_genres": "Action, Crime, Thriller",
"censor_rating": "A",
"duration_min": 197,
"cinema_id": "1023314",
"cinema_name": "PVR C&B Square Chakala, Andheri East, Mumbai",
"cinema_chain": "PVR",
"cinema_address": "Andheri - Kurla Rd, Opp Acme Plaza, Chakala, Andheri East, Mumbai 400059",
"cinema_pincode": "400059",
"latitude": 19.112491, "longitude": 72.864875,
"provider_id": "1707",
"is_far_cinema": false,
"distance_km": 2.29,
"session_id": "20668",
"provider_movie_code": "OB7YWB",
"date": "2026-09-08",
"show_datetime_ist": "2026-09-08T04:45:00+05:30",
"close_datetime_ist": "2026-09-08T05:30:00+05:30",
"screen_name": "SCREEN 3",
"screen_format": "2D",
"premium_label": "",
"is_premium": false,
"max_tickets": 10,
"status_color": "G",
"session_tags": "price_100_200, 2d, 8_am_to_12_pm, wheelchair_friendly",
"min_price": 149.0,
"max_price": 299.0,
"seats_available_total": 277,
"seats_total": 304,
"occupancy_pct": 8.9,
"price_class_count": 5,
"price_classes": "CLASSIC ROWS 149: 39/39 | PRIME ROWS 149: 174/178 | RECLIINER ROWS 299: 13/15",
"seat_layout_ref": "1023314|20668|1707|OB7YWB|n5N_fTqZr8|181196|mumbai|2026-09-08|2D"
}

PRICE_CLASSES grain — one row per seating class per showtime

{
"row_type": "PRICE_CLASS",
"session_key": "district|mumbai|181196|1023314|20668|2026-09-08",
"movie_title": "Mirzapur: The Movie",
"cinema_name": "PVR C&B Square Chakala, Andheri East, Mumbai",
"show_datetime_ist": "2026-09-08T04:45:00+05:30",
"area_code": "QR",
"area_label": "PRIME ROWS",
"area_price": 149.0,
"area_currency": "INR",
"area_seats_available": 174,
"area_seats_total": 178,
"area_status_color": "G"
}

(all the shared movie / cinema / showtime columns are on this row too — trimmed here for brevity)

Field reference

FieldGrainMeaning
row_typebothSHOWTIME or PRICE_CLASS.
session_keybothStable ID for the showtime — same value on every re-run, and the join key to the Seat Availability Scraper.
scraped_atbothUTC timestamp of capture.
city_key / city_name / state_keybothThe resolved city.
movie_id / movie_codebothDistrict's IDs for the movie (and its language/format variant).
movie_title, movie_languages, movie_genres, censor_rating, duration_minbothMovie metadata. Languages/genres are comma-separated strings.
cinema_id, cinema_name, cinema_chainbothThe theatre. cinema_chain e.g. PVR, INOX, Cinepolis, City Gold.
cinema_address, cinema_pincode, latitude, longitudebothLocation.
is_far_cinemabothtrue if from District's secondary "also showing nearby" group.
distance_kmbothDistance from the city centre.
session_id, provider_movie_codebothDistrict's IDs for the showtime.
datebothShow date (YYYY-MM-DD).
show_datetime_ist / close_datetime_istbothStart time and booking-close time, ISO-8601 with +05:30.
screen_name, screen_formatbothAuditorium label; 2D / 3D / IMAX 2D / 4DX / …
premium_label / is_premiumbothSound / premium-screen tag (e.g. DOLBY 7.1) and a flag.
max_ticketsbothMax tickets sellable in one booking.
status_colorbothDistrict's fill indicator: G plenty, Y filling, R almost full, D sold out.
session_tagsbothComma-separated filter tags (price band, format, time-of-day, amenities).
seat_layout_refbothPipe-delimited reference — paste this column straight into the Seat Availability Scraper.
min_price / max_priceSHOWTIMESCheapest / dearest ticket for the showtime.
seats_available_total / seats_totalSHOWTIMESLive free seats and screen capacity, summed across classes.
occupancy_pctSHOWTIMES(seats_total − seats_available_total) / seats_total, as a percentage.
price_class_countSHOWTIMESHow many seating classes this showtime has.
price_classesSHOWTIMESOne-line readable summary of every class: <class> <price>: <available>/<total>, pipe-separated.
area_code / area_labelPRICE_CLASSESThe seating class.
area_price / area_currencyPRICE_CLASSESIts ticket price.
area_seats_available / area_seats_totalPRICE_CLASSESLive free / total seats in that class.
area_status_colorPRICE_CLASSESThat class's own fill indicator.

Also written to the run's key-value store: RUN_REPORT — which cities, movies and dates were checked, counts found for each, and any errors.

Views

  • Overview — the run's grain, key columns only (the Console hides the columns that don't apply).

Notes

  • Dates: District releases each movie's booking window on its own schedule. Automatic mode uses exactly the dates District lists for the movie — no guessing a number of days.
  • Seat counts are live at the moment of capture — re-run to track how a showtime fills up.
  • India only. Keep the proxy on Residential / India; other IPs are blocked.

Pairs with

District Cinema Seat Availability & Occupancy Scraper — every row here carries a seat_layout_ref ready to drop into it for a seat-by-seat occupancy map.