There is no server
This extension has no backend. Nobody operates a service behind it, so there is
nowhere for your data to be collected, sold, or breached. Everything it knows
lives in chrome.storage.local on your own machine.
What it stores
- The seat-map addresses you chose to watch, and a label for each.
- The films you chose to watch for a release — the film, the city, and the
cinemas you picked for it.
- The city you selected, and the list of cinemas in it, kept for a week so the
settings page has something to show you without fetching it again.
- What the last check found — seat counts, which blocks were free, and a
recent history of how many seats were free over time. For a release watch,
which cinemas have opened.
- Your filter settings, how often to check, and how far ahead of a release to
start.
- Your Telegram bot token and the chat IDs you chose to alert, or your webhook
address, if you set them up. These are stored unencrypted, readable by
anything with access to your Chrome profile. Fine for a bot you made for
this; don't reuse one that does anything important.
What leaves your machine
- BookMyShow — seat maps are loaded in your own browser, in your own
logged-in session, exactly as if you'd opened them yourself. No credentials
are read or transmitted.
- BookMyShow, anonymously where it can — the checks that watch for a film
to go on sale ask for public listings only, and are tried first with cookies
switched off, carrying nothing that identifies you. In practice that is how
they are answered. If a request is refused that way it is retried with your
session, exactly as loading the page yourself would send it.
- District — District answers seat maps through an API rather than drawing
them in a page, and that API requires your session, so a watched show is
checked by asking for its seat map with your District cookies attached,
from the extension rather than from a tab. This is the one place the extension
makes a signed-in request on your behalf. It is the same request the seat page
makes when you open it, it only ever reads, and it books nothing. If you are
not signed in to District the request is refused and the watch reports an
error rather than doing anything else.
- District, anonymously — the checks that watch for a film to go on sale
read the film's public page with cookies switched off, carrying nothing
that identifies you. These work whether or not you have a District account.
- Telegram, only if you configure it. Alerts go out; and because you can
share a BookMyShow or District link to the bot to start watching it, the
extension also reads that bot's incoming messages — about once a minute, and
only your bot's, never your Telegram account. Only messages from the chat IDs
you listed are acted on; anything from anyone else is ignored without a reply.
If you point it at a group, everyone in that group sees the alerts and anyone
in it can add a watch — that is what the option is for, and it is worth
knowing before you add one. Turn the reading off by clearing the bot token.
- link.district.in, only if you allow it in Settings and only when you share a
District app link to the bot. District's app shares a shortened link rather than the
film's address, so the link has to be followed to find out which film it names. One
request per link you share, no cookies, and nothing is sent — the address you shared
is the whole request. Seat Watch never asks for this at install; it is a button in
Settings you can decline and revoke.
- Your webhook address, only if you configure one, and only the alert text.
Chrome asks your permission for that specific address before it is used.
There is no analytics, no telemetry, no crash reporting and no third-party
script of any kind. The extension bundles no remote code — the content security
policy blocks it.
What it deliberately does not read
BookMyShow's pages carry your account details — name, email, mobile number and a
session token — in the same page data as the showtimes. The code does not descend
into those parts of it at all, so that information is never read rather than
read-and-discarded. There is a test asserting this, using a value that trips if
anything touches it.
District's pages are the same shape of problem. Your details sit beside the city
you have chosen — and the city is read, because a film that isn't out yet
has no city in its address and a watch has to know which one to watch in. So the
reach is narrow on purpose: the chosen city and nothing else beside it. There is a
test for this one too, built the same way.
The tabs permission is not requested. The extension cannot read the
addresses or titles of your other tabs, and never sees your browsing history.
Removing it
Uninstalling deletes everything above. There is no account to close and nothing
retained elsewhere, because there is no elsewhere.
Seat Watch is free and open source. If something here doesn't match what the code
does, the code is the bug — please report it.