District APIdistrict.in ↗
Get movies currently showing in Indian theaters from District by Zomato. Returns title, genres, duration, censor rating, languages, formats, and poster per film.
What is the District API?
The District.in API gives you access to live theater listings across major Indian cities through a single endpoint, get_movies_in_theaters, returning up to 8 fields per movie including title, genres, duration, censor rating, available languages and formats, release date, description, and poster image. Coverage spans cities including Mumbai, Bengaluru, Delhi NCR, Chennai, Hyderabad, Pune, Kolkata, and Ahmedabad.
curl -X GET 'https://api.parse.bot/scraper/9dbc34b2-b7c3-4e9b-9540-6d2bb2568c57/get_movies_in_theaters?city=Mumbai' \ -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 district-in-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: District by Zomato Movies — browse what's playing in any Indian city."""
from parse_apis.district_in_api import DistrictIn, CityNotFound
client = DistrictIn()
# List movies currently in theaters in Mumbai (default city), capped at 5.
for movie in client.movies.in_theaters(limit=5):
formats = {v.format for v in movie.variants}
print(f"{movie.name} ({movie.censor_rating}, {movie.duration_minutes}min) — {', '.join(movie.genres)} | formats: {formats}")
# Drill into a single movie to inspect its language/format variants.
hit = client.movies.in_theaters(city="Bengaluru", limit=1).first()
if hit is not None:
print(f"\n{hit.name} available in:")
for variant in hit.variants:
print(f" {variant.language} / {variant.format}")
# Handle an invalid city gracefully.
try:
client.movies.in_theaters(city="Atlantis", limit=1).first()
except CityNotFound:
print("\nCity not found — try Mumbai, Delhi NCR, Bengaluru, Chennai, etc.")
print("\nexercised: movies.in_theaters (default + city) / Movie fields / Variant fields / CityNotFound")
Returns all movies currently showing in theaters for a given city. Each movie includes title, genres, duration, censor rating, release date, available languages and formats, description, and poster image. The city parameter matches against the site's city catalog which includes Indian cities, Abu Dhabi, and Dubai. When city is omitted, defaults to Mumbai.
| Param | Type | Description |
|---|---|---|
| city | string | City name to filter movies by (e.g. Mumbai, Bengaluru, Delhi NCR, Chennai, Hyderabad, Pune, Kolkata, Ahmedabad). Matched case-insensitively against the site's city catalog. |
{
"type": "object",
"fields": {
"city": "Resolved city name as stored in the site's catalog",
"movies": "Array of movie objects with details about each film showing in theaters",
"total_movies": "Total number of movies currently in theaters for this city"
},
"sample": {
"data": {
"city": "Mumbai",
"movies": [
{
"name": "Spider-Man: Brand New Day",
"image": "https://cdn.district.in/movies-assets/images/cinema/image-(29)-598ac6b0-6a24-11f1-8579-1756095b1930.jpg",
"genres": [
"Superhero",
"Action",
"Adventure"
],
"web_url": "https://www.district.in/movies/spider-man-brand-new-day-movie-tickets-MV194537",
"movie_id": "194537",
"variants": [
{
"format": "3D",
"language": "English"
},
{
"format": "3D",
"language": "Hindi"
},
{
"format": "2D",
"language": "English"
}
],
"languages": [
"English",
"Hindi",
"Tamil"
],
"description": "Four years after No Way Home, Peter lives alone, erased from the lives of those he loves. Fully devoted to protecting New York, mounting pressure triggers a physical evolution that threatens his existence as a powerful new threat emerges.",
"release_date": "1785369600",
"censor_rating": "UA13+",
"duration_minutes": 145
}
],
"total_movies": 32
},
"status": "success"
}
}About the District API
What the API Returns
The single get_movies_in_theaters endpoint accepts an optional city string parameter and returns a movies array alongside a total_movies count and a city field confirming how the input was resolved against District's city catalog. Each movie object carries the film's title, genre tags, runtime duration, censor board rating, release date, a descriptive summary, a poster image URL, and the specific languages and formats (e.g. 2D, IMAX, 4DX) in which it is currently screening.
City Coverage
The city parameter matches against District by Zomato's internal city catalog. Supported values include Mumbai, Bengaluru, Delhi NCR, Chennai, Hyderabad, Pune, Kolkata, and Ahmedabad. The resolved name is echoed back in the city response field, which is useful for normalizing user-supplied input. If no city is supplied, the endpoint falls back to a default.
Data Freshness and Scope
The endpoint reflects what District by Zomato currently lists as showing in theaters — the same data a user would see browsing the site for a given city. This is limited to movies actively in theatrical release; upcoming releases, showtimes, seat availability, and ticket pricing are not part of the response payload.
The District API is a managed, monitored endpoint for district.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when district.in 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 district.in 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 'now showing' widget for an Indian entertainment or events app using the
moviesarray and poster images - Filter current releases by genre tags to power a recommendation feed
- Track how many films are simultaneously in release across multiple cities using
total_moviesper city - Display censor ratings and available formats (IMAX, 4DX) to help users choose a screening experience
- Cross-reference release dates against a film database to identify how long a movie has been in theaters
- Populate a city-specific movie guide using the language availability field for regional language films
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does District by Zomato have an official developer API?+
What does the `get_movies_in_theaters` endpoint actually return for each film?+
movies array includes the film's title, genres, duration, censor rating (e.g. U, UA, A), release date, available languages, screening formats, a text description, and a poster image URL. The response also includes a total_movies count and the resolved city name.Does the API return showtimes or ticket availability?+
Is there pagination for cities with a large number of films showing?+
total_movies count but no built-in pagination parameters. For cities with dense catalogs, all results are returned at once. You can fork this API on Parse and revise it to add offset or page parameters.Which Indian cities are supported?+
city field. Smaller cities or newer markets may not yet be in District's catalog and would not return results.