Backing up District

We backed up District’s public catalog: 35,833 listings across 1,328 Indian cities. The result is a searchable archive and an open TypeScript SDK.

District is the layer Zomato built for leaving the house. Open the app and it tells you what is playing, where to eat, which comedian is in town, and where you can spend a Saturday afternoon. It is a useful map of what a city can do right now.

The problem is that “right now” disappears. An event ends, a venue closes, a movie leaves theatres, and the record quietly falls out of the product. The app is designed for the next booking, not for memory.

I started with a smaller goal: build the API that District never published. I wanted a typed client instead of another folder of copied network requests. Once search, events, movies, dining, and locations worked, the obvious question became: what is actually in here?

That question turned a client library into a nationwide catalog. What follows is the honest version of that work: what we preserved, what the collection says about District, how to use it, and where the archive stops.

Before diving into the details, here is a quick overview:

Public release

  • Searchable catalog
  • Data exploration
  • TypeScript SDK + CLI
  • Public freshness status

— Vandit · vaandeetttt.com

Data exploration

Let’s look at the shape of the collection. These are live counts from the public archive:

Restaurants24,513
Events5,089
Cinemas3,154
Play venues1,783
Movies837
Stores457
Current public archive. Counts move as District’s catalog changes.

Restaurants are the map

Dining is not just the largest category; it is the geographic spine of the archive. Events pass through a city. Restaurants stay put. They reveal where District has meaningful coverage and where it only knows the outline of a place.

The headline number—1,328 cities—needs that context. A city appearing in a location index does not mean it has the depth of Bengaluru, Mumbai, or Delhi. Coverage is a long tail, not a flat map.

Events are perishable

Events are the part most worth preserving and the hardest to keep. Restaurant and cinema identities are relatively stable. An event is born with a date attached and starts disappearing almost immediately. A catalog of 5,089 events is therefore less like a directory and more like a frame from a film.

Over time, those frames become the interesting part: which artists toured where, what kinds of experiences appeared, and how the center of gravity moved between cities.

Movies are shared; cinemas are local

A movie is one object shown in many places. A cinema is a physical venue tied to a city. That is why the archive can contain 837 movies but 3,154 cinemas. The useful graph lives in the relationship between content, venue, city, and time—not in any one table.

The collection

Metadata

The archive keeps the public identity needed to recognize and query an entity: names, stable identifiers where available, city, category, slugs, and selected public attributes such as rating or price.

It is deliberately not a byte-for-byte mirror of the app. Product responses carry presentation details, experiments, and temporary UI state. The public dataset keeps the useful shape while leaving that noise behind.

The website

The simplest way to inspect the data is the search box above, or the full catalog browser. The exploration page shows aggregate cuts, and status shows freshness.

The SDK

For live reads, there is district-kit, a hand-written TypeScript client with typed resources for search, discovery, events, movies, dining, locations, and more.

npm install district-kit

import { DistrictClient } from "district-kit";

const district = new DistrictClient({ city: "bangalore" });
const results = await district.search("comedy");

The SDK came first. The archive is what happened when the client became reliable enough to ask larger questions.

The honest limits

This is not a complete copy of District.

It is also not a checkout bot or an operational guide to District’s infrastructure. The public work is the catalog, SDK, and the protocol knowledge required to use them responsibly. Credentials, raw research notebooks, and sensitive implementation details stay private.

Why make it public?

Without a public reference, every developer starts from zero: rediscovering the same interfaces, building the same parsers, and keeping private notes that never help the next person. Publishing a clean SDK turns that repeated work into a foundation.

Publishing the catalog does something different. It preserves the context around those interfaces: the actual places, films, events, and activities they described.

Any single listing is ordinary. At nationwide scale, the collection starts to look like cultural metadata: where people ate, what they watched, which performers toured, and what kinds of places existed at a particular moment. Things that feel permanently available often are not. If the record is worth keeping, the time to start is while it still exists.


This is the first public version of the District archive. The numbers in this essay are read from the live catalog. Explore the data, use the SDK, or follow the project on GitHub.