--- name: tallinn-document-register description: Search the correspondence, orders and contracts registered by Tallinn's district governments, city offices and city schools. module: tallinn.mjs execution: get --- # Tallinn Document Register (dhs.tallinn.ee/atp) **Tallinn runs two public registers and they hold different things.** - **This one** — `dhs.tallinn.ee/atp`, "Tallinna ametiasutuste dokumendiregister" — is the correspondence register: letters in and out, teabenõuded, käskkirjad, contracts, applications. It is what a citizen means by *dokumendiregister*, and it is the register the eight district governments and Tallinna Linnavalitsus keep. - **TEELE** — `teele.tallinn.ee`, guide `tallinn-council-documents` — is the city COUNCIL's adopted legal acts: otsused, määrused, eelnõud. A raieluba, a reply to a resident's letter or a contract is not in it. Asking one for the other's records returns a clean, empty-looking answer. Read the question first: an act the council passed is TEELE, everything a body sent or received is here. ## Access Everything is a plain GET over HTTPS. No session, no cookie, no token, no JavaScript. **Fetch this register directly; do not route it through `tallinn.mjs`.** `dhs.tallinn.ee` blocks by network address rather than by request shape: measured 2026-08-02, the identical URL answered `HTTP 403 Forbidden ... You don't have permission to access /atp/` from a datacentre address and 200 from an ordinary one. Whether it answers you therefore depends on where your requests leave from, not on how you make them, and a 403 here is this block rather than a bad URL. Build the URL below and fetch it with whatever ordinarily fetches a page for you. **That costs you the body list, which is the one thing you cannot guess.** The `asutus` id exists only in the register's own dropdown — Kesklinn is 5, Haabersti 12, Põhja-Tallinn 21 — and **a wrong id answers HTTP 200 with somebody else's documents**, or with zero rows, which reads as an empty register. So fetch `https://dhs.tallinn.ee/atp/` first and read the `