Seadused ja valitsemine
Riigi Teataja eelnõumenetlused
Eelnõude menetlusetapid, esitajad ja staatused koos viidetega EIS-i dokumentidele.
Riigi Teataja eelnõumenetluste otsing näitab ühe eelnõu menetlusetappe: kes selle algatas, mis liiki see on, millal menetlus algas ja mis staatuses iga etapp on. Iga etapp lingib süsteemi, kus see toimus: ministeeriumi etapp EIS-i toimikusse, Riigikogu etapp eelnõu lehele, väljakuulutamine presidendi registrisse ja avaldamine Riigi Teatajasse. See on menetluse register, mitte seaduse tekst: jõustunud akti tekst on Riigi Teataja aktiotsingus.
Mida su agent peab oskama
POSTVajab vormipäringut. Vähemalt üks vajalik päring on vormi saatmine (POST). Küpsiseid ega turvamärgiseid vahele ei jää, aga ainult lehti tõmbav agent seda päringut teha ei saa.
Juhend ise
Inglise keeles, sest seda loeb mudel.
Riigi Teataja Draft Proceedings
Access
- Search UI:
https://www.riigiteataja.ee/et/otsing/eelnoud - Search API:
POST https://www.riigiteataja.ee/public-api/api/v1/otsing/eelnoud - Detail API:
POST https://www.riigiteataja.ee/public-api/api/v1/avalik/eelnou - Public JSON; no login is required.
Retrieve
Use this minimal search payload:
{
"general": {
"searchInText": false,
"searchInTitle": false,
"searchText": "",
"searchText2": "",
"logicalOperator": "AND",
"morphSearch": false,
"sort": "esimeseEtapiAeg",
"sortAscending": false
},
"precise": {}
}
Precise fields are aktiAndja, eelnouLiik, menetluseAlgus, menetluseLopp, menetluseEtapp, and menetluseNr. The response contains kokku and up to 30 tulemused; each result includes id, pealkiri, eelnouLiik, aktiAndja, menetluseAlgus, menetlusKaik, and stage records in etapid.
To resolve one proceeding, POST {"menetluseId":"REM/26-0818"} to /avalik/eelnou. The menetluseId IS the EIS number (menetlusKaik in results), so this endpoint turns an EIS number into the proceeding's whole cross-system trail.
Each stage's menetlusTeave is a URL into the system that ran the stage: ministry stages link https://eelnoud.valitsus.ee/main/mount/docList/<uuid> — a direct-GET toimik page; follow legislation-workflow-eis for parsing it and downloading its files (kooskõlastuskirjad, märkuste tabel). Riigikogu stages link the bill page, Väljakuulutamine the President's register, Avaldamine the act on riigiteataja.ee. Verified 2026-07-27: SOM/24-0227 and the 2017 RAM/17-0515 both resolve with working docList links, and REM/26-0847, in coordination since 23.07.2026, was already indexed — coverage runs from in-flight drafts back to at least 2017.
Return
draftProceedings()rows are{id, title, kind, issuer, number, started, stages:[{stage, date, authority, status, url}]};draftProceeding()returnsfoundplus the samestages.- Keep draft proceedings separate from enacted acts. Use
legal-acts-datato resolve final law text.
Limits
- The search returns 30 rows and exposes no documented bulk pagination contract (
leht=2returns the same first page).kokku—totals.total— is the only count. - The search can return the SAME proceeding twice, as two records with one
id. Deduplicate before counting. menetluseAlgus/menetluseLopprequire a zoned timestamp (2026-07-01T00:00:00+03:00); a bare2026-07-01answers HTTP 500. The module converts plain dates itself.
claim a bare `2026-07-01` answers HTTP 500
POST https://www.riigiteataja.ee/public-api/api/v1/otsing/eelnoud
body {"general":{"searchInText":false,"searchInTitle":false,"searchText":"","searchText2":"","logicalOperator":"AND","morphSearch":false,"sort":"esimeseEtapiAeg","sortAscending":false},"precise":{"menetluseAlgus":"2026-07-01"}}
expect-status 500
# The 500 arrives with an empty body, so the status is the whole signal. (The
# runner labels every body form-urlencoded; this API reads the JSON either way
# — checked 2026-08-02, same 500 here and same 200 below under both.)
# The control is the SAME search with the zoned timestamp this guide tells the
# agent to send. Without it, an API that had gone down entirely would answer
# 500 to everything and "confirm" that plain dates are the problem.
control POST https://www.riigiteataja.ee/public-api/api/v1/otsing/eelnoud
body {"general":{"searchInText":false,"searchInTitle":false,"searchText":"","searchText2":"","logicalOperator":"AND","morphSearch":false,"sort":"esimeseEtapiAeg","sortAscending":false},"precise":{"menetluseAlgus":"2026-07-01T00:00:00+03:00"}}
- Issuer and type values are classifier codes with no published list, and a wrong one is not an error:
aktiAndja: "JUM"andeelnouLiik: "SE"both answer 200 withkokku: 0, where"MAAELMIN"and"MAAR"return thousands.draftCodes()reads the codes in use out of a live sample. - The detail endpoint answers HTTP 200 with
{pealkiri: null, menetlusKaik: null, etapid: []}for a number it does not hold, never a 404. - Riigi Teataja indexes the lifecycle, while EIS holds the underlying draft documents.
Verify
- Require HTTP 200 JSON with positive
kokkuand nonemptytulemusedfor the minimal search payload. - Require result rows to contain
id,pealkiri,menetlusKaik, and nonemptyetapid; require stage records to containetapp,aeg,staatus, andmenetlusTeave.
Module API
draftProceedings({title, text, number, issuer, kind, from, to}) -> {source, page, query, totals, rows, note} draftProceeding(eisNumber) -> {source, page, found, number, title, totals, stages, note}