{"openapi":"3.1.0","info":{"title":"Rigsdata API","version":"1","description":"Søgning i dokumenter fra det officielle Danmark: Folketinget, Høringsportalen, ministerier, styrelser, regioner, kommuner og partier. Hvert kald tæller som ét opslag. Har organisationen brugt flere opslag end planen giver i perioden, besvares kaldene stadig i en overgang, med headeren `X-Rigsdata-Quota: exceeded` og i JSON-svaret feltet `kvote` ({overskredet: true, besked}) til kontoejeren; svarets eget `besked` ændres ikke. Er opslagene brugt op ud over overgangen, er svaret 429 `quota_exceeded`. Tidspunkter er ISO 8601 i lokal tid (Europe/Copenhagen) med det UTC-offset, der gjaldt på tidspunktet (2026-10-22T08:10:00+02:00 i sommertid, 2026-12-01T09:00:00+01:00 i vintertid); rene datoer er ÅÅÅÅ-MM-DD. Det gælder dato (dagen alene, når kilden ikke har et klokkeslæt), hentet, publishedAt, opdateringsdato, moededato, datofelterne i meta og kalendernes tidspunkter. Svarene fra /v1/search, /v1/cases, /v1/hearings, /v1/decisions og /v1/agendas har feltet `daekning` (dækningsattest): hvilke kilder, kommuner, regioner, ministerier og partier opslaget omfattede, hvor friskt data var, kendte forbehold (`forbehold`) og om dækningen var fuldstændig (`fuldstaendig`), samt `attest_id` og `attest_url`, en attest gemt i 12 måneder; id'et står også i headeren `X-Rigsdata-Attest`. Hent attesten med GET /v1/attest/{id}. Udtræk: hver liste (søgning, høringer, kommunale beslutninger, Folketingets dokumenter og sager, en sags dokumenter, en dagsorden) kan hentes som CSV eller Excel, direkte med format= (højst 1.000 rækker) eller som et udtræk med POST /v1/exports (højst 10.000 rækker på Enkeltbruger, 50.000 på Organisation og 250.000 på Myndighed; prøveabonnementet har ikke udtræk). Et udtræk koster ét opslag pr. påbegyndte 100 rækker."},"servers":[{"url":"https://api.rigsdata.dk"}],"security":[{"apiKey":[]},{"oauth":["rigsdata:read"]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"En API-nøgle (rd_live_…) fra kundeportalen: `Authorization: Bearer rd_live_…`."},"oauth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Et OAuth access token fra rigsdata.dk, som MCP-klienter (Claude, ChatGPT, Copilot) henter selv."}},"schemas":{"DanishDateTime":{"type":"string","format":"date-time","description":"Tidspunkter er ISO 8601 i lokal tid (Europe/Copenhagen) med det UTC-offset, der gjaldt på tidspunktet (2026-10-22T08:10:00+02:00 i sommertid, 2026-12-01T09:00:00+01:00 i vintertid); rene datoer er ÅÅÅÅ-MM-DD.","x-description-en":"Date-times are ISO 8601 in the local time of the instance (Europe/Copenhagen) with the offset valid at that moment (2026-10-22T08:10:00+02:00 in summer time, 2026-12-01T09:00:00+01:00 in winter); calendar days are YYYY-MM-DD.","examples":["2026-10-22T08:10:00+02:00","2026-12-01T09:00:00+01:00"]},"DanishDate":{"type":"string","format":"date","description":"En kalenderdag, ÅÅÅÅ-MM-DD (fx høringsfrist, fra_dato).","examples":["2026-10-19"]},"Dato":{"description":"Feltet dato: dagen alene, når kilden ikke har et klokkeslæt, ellers et tidspunkt.","oneOf":[{"$ref":"#/components/schemas/DanishDate"},{"$ref":"#/components/schemas/DanishDateTime"}]},"Daekning":{"type":"object","description":"Dækningen af et svar, opgjort for svarets kilder og filtre ud fra Rigsdatas dækningsopgørelse (højst en time gammel).","required":["fuldstaendig","omfattede","forbehold","kilder","enheder","attest_id","attest_url"],"properties":{"fuldstaendig":{"type":"boolean","description":"true kun når der ikke er nogen forbehold for de omfattede kilder."},"omfattede":{"type":"string","description":"Hvad opslaget omfattede, i en sætning."},"forbehold":{"type":"array","items":{"type":"string"},"description":"Kendte forbehold på dansk: kommuner og andre enheder der ikke eller kun delvist er med (med grunden), en periode før kilden er med, tekst der ikke er hentet, en kilde der ikke er hentet som lovet."},"opgjort":{"$ref":"#/components/schemas/DanishDateTime"},"periode":{"type":["object","null"],"properties":{"fra_dato":{"type":["string","null"],"format":"date"},"til_dato":{"type":["string","null"],"format":"date"}}},"kilder":{"type":"array","items":{"type":"object","properties":{"kilde":{"type":"string"},"kilde_navn":{"type":"string"},"senest_hentet":{"type":["string","null"],"format":"date-time"},"tidligste_dato":{"type":["string","null"],"format":"date"},"seneste_dato":{"type":["string","null"],"format":"date"},"aktuel":{"type":["boolean","null"]},"tekst_afventer":{"type":"integer"},"tekst_blokeret":{"type":"integer"}}}},"enheder":{"type":"array","items":{"type":"object","properties":{"kilde":{"type":"string"},"i_alt":{"type":"integer"},"fuld":{"type":"integer"},"delvis":{"type":"integer"},"ingen":{"type":"integer"},"mangler":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"navn":{"type":"string"},"daekning":{"type":"string","enum":["delvis","ingen"]},"aarsag":{"type":"string"}}}},"flere_mangler":{"type":"integer"}}}},"attest_id":{"type":["string","null"],"pattern":"^[0-9A-Za-z]{22}$"},"attest_url":{"type":["string","null"],"format":"uri"}}}}},"paths":{"/v1/search":{"get":{"operationId":"search","summary":"Fuldtekstsøgning i alt fra alle kilder","description":"Søger i teksten i dokumenterne og i alle felter på hver post fra alle kilder: Folketingets sager, dokumenter, møder, afstemninger og aktører; høringer; kommunernes og regionernes møder og dagsordenspunkter; ministeriernes, styrelsernes og partiernes artikler; nyhedsbreve. Tilknyttede rækker (stemmer, aktører, sagstrin, punkter) er foldet ind i postens tekst. Side 0 er postens felter (`side: 0`); et Folketingsdokument og dets fil er ét resultat. Hvert resultat har et id file:<id> til /v1/documents.","parameters":[{"name":"q","in":"query","required":false,"description":"Søgetekst. Almindelige ord skal alle findes; \"eksakt frase\", skat* og kommun? (wildcards), skat~ (stavefejl), OR og -ord (udelad).","schema":{"type":"string","maxLength":200}},{"name":"limit","in":"query","required":false,"description":"Antal resultater pr. side (1–100).","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"name":"source","in":"query","required":false,"description":"Kun én kilde, fx folketing, hoeringsportalen, kommuner, regioner, ministerier, styrelser, parties, newsletters.","schema":{"type":"string","maxLength":100}},{"name":"party","in":"query","required":false,"description":"Partiets slug, fx venstre.","schema":{"type":"string","maxLength":100}},{"name":"ministry","in":"query","required":false,"description":"Ministeriets slug, fx finansministeriet.","schema":{"type":"string","maxLength":100}},{"name":"kommune","in":"query","required":false,"description":"Kommunens navn (København) eller kode (101).","schema":{"type":"string","maxLength":100}},{"name":"region","in":"query","required":false,"description":"Regionens slug, fx hovedstaden.","schema":{"type":"string","maxLength":100}},{"name":"kilder","in":"query","required":false,"description":"Flere kilder, kommasepareret, fx folketing,hoeringsportalen.","schema":{"description":"Flere kilder, kommasepareret, fx folketing,hoeringsportalen.","type":"string","maxLength":200,"pattern":"^[a-z0-9_,\\s-]*$"}},{"name":"myndighed","in":"query","required":false,"description":"Myndigheden præcis som den står i resultaterne, fx Energistyrelsen eller København.","schema":{"description":"Myndigheden præcis som den står i resultaterne, fx Energistyrelsen eller København.","type":"string","maxLength":200}},{"name":"dokumenttype","in":"query","required":false,"description":"Dokumenttype præcis som i resultaterne, fx Høringsnotat, Lovforslag, Bilag.","schema":{"description":"Dokumenttype præcis som i resultaterne, fx Høringsnotat, Lovforslag, Bilag.","type":"string","maxLength":100}},{"name":"fra_dato","in":"query","required":false,"description":"Kun dokumenter dateret denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Kun dokumenter dateret denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Kun dokumenter dateret denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Kun dokumenter dateret denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"group","in":"query","required":false,"description":"document (standard): ét resultat pr. dokument; page: ét pr. side.","schema":{"default":"document","type":"string","enum":["document","page"]}},{"name":"sort","in":"query","required":false,"description":"relevance (standard) eller newest.","schema":{"default":"relevance","type":"string","enum":["relevance","newest"]}},{"name":"mode","in":"query","required":false,"description":"hybrid (standard): ordsøgning (BM25) og betydningssøgning (vektorer) lagt sammen; keyword: kun ordsøgning. Betydningssøgningen bruges kun ved sort=relevance, group=document og en søgning uden wildcards, stavefejl, OR eller udeladelser; er den ikke tilgængelig, svares med ordsøgning alene.","schema":{"default":"hybrid","type":"string","enum":["hybrid","keyword"]}},{"name":"facets","in":"query","required":false,"description":"Kommaseparerede felter at tælle dokumenter for: source, party, ministry, kommune, region, myndighed, dokumenttype.","schema":{"type":"string","maxLength":200}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige side.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"`items` (bedste match først, eller nyeste med sort=newest), `nextCursor`, og `facets` når de er bedt om. Hvert resultat har titel, dato og publishedAt (dokumentets egen dato i dansk tid med UTC-offset, 2026-10-19T09:30:00+02:00), kilde og link til originalen, samt envelopens felter (url_original, myndighed, hentet, kilde_navn …), `meta` begrænset til kildens tilladte keys og `fundet_ved`: ord (fundet på søgeordene), betydning (fundet på betydning med en vektor; uddrag er dokumentets begyndelse) eller begge. Svaret gentager `mode`, og `tolkning` siger det, når nogle resultater er fundet på betydning. `antal`, `filtre` og `besked` som i envelopen."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/cases":{"get":{"operationId":"listCases","summary":"Find Folketingets sager efter titel eller nummer","parameters":[{"name":"q","in":"query","required":false,"description":"Tekst i sagens titel eller nummer, fx dagtilbudsloven eller L 35.","schema":{"description":"Tekst i sagens titel, korte titel eller resumé, eller sagsnummeret. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.q_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","type":"string","maxLength":200}},{"name":"nummer","in":"query","required":false,"description":"Præcist sagsnummer, fx L 35 (mellemrum er valgfrit).","schema":{"description":"Præcist sagsnummer, fx L 35 (mellemrum er valgfrit).","type":"string","minLength":1,"maxLength":60}},{"name":"periode","in":"query","required":false,"description":"Folketingsåret: periodekode (20251) eller titel (2025-26).","schema":{"type":"string","minLength":4,"maxLength":40,"description":"Folketingsåret: periodekode (20251) eller titel (2025-26)."}},{"name":"limit","in":"query","required":false,"description":"Antal resultater pr. side (1–100).","schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige side.","schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"`items` (med q: alle ord i titel, kort titel eller resumé, danske ordformer, eller sagsnummeret; nyeste samling først, i en samling lovforslag og beslutningsforslag før andre sager, derefter bedste match; uden q senest opdateret først), hvert med sag_id, nummer, titel, type, status og samling i tekst, url_original (sagens side på ft.dk; null for sagstyper uden side, så nævnes sagen uden link), myndighed og kilde_navn; `nextCursor`, `antal`, `filtre` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/cases/{id}":{"get":{"operationId":"getCase","summary":"Én sag med dens tidslinje af sagstrin","parameters":[{"name":"id","in":"path","required":true,"description":"Sagens id fra /v1/cases (eller sag:<id>).","schema":{"type":"integer","minimum":1}},{"name":"dokumenttype","in":"query","required":false,"description":"Kun sagens dokumenter af disse typer, kommasepareret, som i dokumenttyper: Forslagstekst, Bilag, Spørgsmål, Svar …","schema":{"description":"Kun sagens dokumenter af disse typer, kommasepareret, som i dokumenttyper: Forslagstekst, Bilag, Spørgsmål, Svar …","type":"string","minLength":1,"maxLength":300}},{"name":"limit","in":"query","required":false,"description":"Dokumenter pr. side (standard 20, højst 100).","schema":{"default":20,"description":"Dokumenter pr. side (standard 20, højst 100).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar: næste side af sagens dokumenter.","schema":{"description":"nextCursor fra forrige svar: næste side af sagens dokumenter.","type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"Envelope med sagen som eneste item (type, status og samling i tekst, beskrivelse: Folketingets resumé, url_original: sagens side på ft.dk (null for sagstyper uden side, så nævnes sagen uden link), genfremsat_som/genfremsat_fra for en bortfaldet sag fremsat igen, hovedforslag for en del af et delt lovforslag, retsinformation_url: loven på Retsinformation, ODA's link eller ELI-adressen fra lovnummer og dato), og ved siden af: `forloeb` (sagstrinene: id, dato, titel, type, status), `afstemninger` (dato: afstemningens tidspunkt eller kun dagen, vedtaget, konklusion), `forhandlinger` (sagens forhandlinger i Folketingssalen fra referaterne, ældste først: behandling, sagstrin_id, dato (mødets start), moede {nummer, titel}, dokument_status (foreløbig eller endelig), udgave, url_original (behandlingens side på ft.dk), referat_url, video_url, starttid, sluttid, tekst_hentet, id: file:<id> til /v1/documents, og side, fra_tegn og til_tegn: hvor punktet står i referatets tekst, som fra og fra_tegn i /v1/documents/{id}/pages; null når teksten ikke er hentet), `hoeringer` (lovforslagets høringer på Høringsportalen, ældste først: id hoering:<id>, titel, myndighed, hoeringsfrist, dato, url_original, grundlag; kun for nøgler, der må læse Høringsportalen), `aktoerer` (ministerier og udvalg, derefter personer, hver med rolle og url_original; en ministertitel har i `person` den, der havde posten, da sagen begyndte) og én side af sagens `dokumenter` (`limit`, standard 20; efter type: forslagets tekster, fremsættelsestalen, bilag og andre dokumenter, svar, spørgsmål, hver type ældste først; en del af et delt lovforslag har sine egne før dem, den deler med hovedforslaget, som har `fra_hovedforslag: true`), hvert med id (file:<id> til /v1/documents, eller dokument:<id> uden fil), dokument_status (endelig, foreløbig …), url_original, tekst_hentet, for spørgsmål og svar `spoergsmaal` og `aktoerer` ([{navn, rolle, person}]: rollerne samlet, ministeren i person; typen og links står én gang i sagens `aktoerer` eller i `dokument_aktoerer`), og `filer` når dokumentet har flere filer. `dokumenttyper` tæller sagens dokumenter pr. type, `dokumenter_i_alt` dem, der passer på `dokumenttype`; `nextCursor` (som `after`) henter næste side, der kun har sagen og dokumenterne. Et lovforslag eller beslutningsforslag har også `lovprogram` (punktet i regeringens lovprogram, sagen er matchet til: samling, i_programmet (false: fremsat uden at stå i lovprogrammet), titel, minister, forventet_fremsaettelse {tekst som 'Okt I', maaned, halvdel, senest}, status, forsinket, url_original: lovprogrammet; null når sagen ikke er med) og `prognose` (for et åbent lovforslag: naeste_trin, forventet_dato, interval {fra, til}: 25-75 %, grundlag_antal: antal tidligere lovforslag skønnet bygger på, grundlag, seneste_trin, seneste_dato, vedtagelse {forventet_dato, interval, grundlag_antal, grundlag} og besked, der siger, at det er et skøn; null når sagen er afgjort eller der ikke er grundlag). Kilde: Folketinget."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sag med det id (`not_found`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/cases/find":{"get":{"operationId":"findCase","summary":"Find en sag fra Folketinget på sagsnummer, med hele forløbet","parameters":[{"name":"nummer","in":"query","required":true,"description":"Sagsnummer, fx L 35, KOM (2022) 0209, Aktstk. 144 eller SUU alm. del; samlingen må stå til sidst (L 117 2023-24).","schema":{"type":"string","minLength":1,"maxLength":60,"description":"Sagsnummer, fx L 35, KOM (2022) 0209, Aktstk. 144 eller SUU alm. del; samlingen må stå til sidst (L 117 2023-24)."}},{"name":"periode","in":"query","required":false,"schema":{"type":"string","minLength":4,"maxLength":40,"description":"Folketingsåret: periodekode (20251) eller titel (2025-26)."}},{"name":"dokumenttype","in":"query","required":false,"description":"Kun sagens dokumenter af disse typer, kommasepareret, som i dokumenttyper: Forslagstekst, Bilag, Spørgsmål, Svar …","schema":{"description":"Kun sagens dokumenter af disse typer, kommasepareret, som i dokumenttyper: Forslagstekst, Bilag, Spørgsmål, Svar …","type":"string","minLength":1,"maxLength":300}},{"name":"limit","in":"query","required":false,"description":"Dokumenter pr. side (standard 20, højst 100).","schema":{"default":20,"description":"Dokumenter pr. side (standard 20, højst 100).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar: næste side af sagens dokumenter.","schema":{"description":"nextCursor fra forrige svar: næste side af sagens dokumenter.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Som /v1/cases/{id} for den nyeste sag med nummeret (L 35, KOM (2022) 0209, Aktstk. 144, SUU alm. del; samlingen må stå til sidst), plus `andre_match`: sagerne med samme nummer i andre samlinger."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sag med det nummer (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/cases/documents":{"get":{"operationId":"listCaseDocuments","summary":"Folketingets dokumenter efter dato og type, nyeste først","parameters":[{"name":"fra_dato","in":"query","required":false,"description":"Dokumenter dateret denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Dokumenter dateret denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Dokumenter dateret denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Dokumenter dateret denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dage","in":"query","required":false,"description":"De seneste N dage, i dag medregnet (1 er i dag), dansk tid.","schema":{"description":"De seneste N dage, i dag medregnet (1 er i dag), dansk tid.","type":"integer","minimum":1,"maximum":366}},{"name":"dokumenttype","in":"query","required":false,"description":"Kommasepareret, præcis som Folketinget skriver dem: Spørgsmål (udvalgsspørgsmål), § 20-spørgsmål, Svar, Lovforslag, Betænkning, Aktstykke, Bilag …","schema":{"description":"Kommasepareret, præcis som Folketinget skriver dem: Spørgsmål (udvalgsspørgsmål), § 20-spørgsmål, Svar, Lovforslag, Betænkning, Aktstykke, Bilag …","type":"string","minLength":1,"maxLength":300}},{"name":"spoergsmaal","in":"query","required":false,"description":"Kommasepareret: alle (alle Folketingets spørgsmål), paragraf20 (§ 20-spørgsmål), udvalg (udvalgsspørgsmål uden for lovbehandlingen), lovforslag (udvalgsspørgsmål til et lovforslag) eller samraad (samrådsspørgsmål).","schema":{"description":"Kommasepareret: alle (alle Folketingets spørgsmål), paragraf20 (§ 20-spørgsmål), udvalg (udvalgsspørgsmål uden for lovbehandlingen), lovforslag (udvalgsspørgsmål til et lovforslag) eller samraad (samrådsspørgsmål).","type":"string","minLength":1,"maxLength":100}},{"name":"q","in":"query","required":false,"description":"Tekst i dokumentets titel.","schema":{"description":"Tekst i dokumentets titel.","type":"string","maxLength":200}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Hvert item har også dokument_status, tekst_hentet, spoergsmaalstype (§ 20-spørgsmål, Udvalgsspørgsmål, Spørgsmål til lovforslag eller Samrådsspørgsmål; null for andre dokumenter), spoergsmaal (ordlyden, når Folketinget har den), sag_id og sag_titel (fx SUU alm. del) og aktoerer (navn, type, rolle: fx Stiller, Spørger, Adressat; url_original er personens eller udvalgets side på ft.dk, null når der ingen er; en ministertitel har ministeren på dokumentets dato i person med navn og url_original). id er file:<id> til /v1/documents, eller dokument:<id> når dokumentet ikke har en fil."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/documents/{id}":{"get":{"operationId":"getDocument","summary":"Ét dokuments metadata","parameters":[{"name":"id","in":"path","required":true,"description":"Dokumentets id: file:<id> eller tallet.","schema":{"type":"string"}}],"responses":{"200":{"description":"`item` (envelope plus sider_i_alt, dokument_status og meta). For Folketinget er dokument_status for et referat fra Folketingssalen (dokumenttype Referat) referatets udgave, foreløbig eller endelig, ellers ODA's dokumentstatus; et referat har også udgave, moede {nummer, titel}, video_url, embed_url og behandlinger (hver behandling på mødet med sagsnummer, behandling, stage, sag_id, sagstrin_id og url_original: behandlingens side på ft.dk). Linket at citere er `url_original`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ukendt id (`not_found`) eller dokumentet er trukket tilbage (`withdrawn`); `besked` på dansk."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/documents/{id}/pages":{"get":{"operationId":"getDocumentPages","summary":"Teksten på et dokuments sider","parameters":[{"name":"id","in":"path","required":true,"description":"Dokumentets id: file:<id> eller tallet.","schema":{"type":"string"}},{"name":"fra","in":"query","required":false,"description":"Første side (1 er første side). Standard 1. Side 0 er dokumentets felter (titel, dato, sager, aktører osv.) og kommer med ved første læsning: fra=0, eller fra udeladt og uden fra_tegn; fra=1 giver kun teksten. Side 0 tæller ikke med i max_tegn.","schema":{"default":1,"description":"Første side (1 er første side). Standard 1. Side 0 er dokumentets felter (titel, dato, sager, aktører osv.) og kommer med ved første læsning: fra=0, eller fra udeladt og uden fra_tegn; fra=1 giver kun teksten. Side 0 tæller ikke med i max_tegn.","type":"integer","minimum":0,"maximum":100000}},{"name":"fra_tegn","in":"query","required":false,"description":"Begynd så mange tegn inde i siden fra (standard 0). Læs videre med fortsaet_med fra forrige svar (fra = fortsaet_med.fra_side, fra_tegn = fortsaet_med.fra_tegn), også inde i en lang side, fx et helt mødereferat.","schema":{"default":0,"description":"Begynd så mange tegn inde i siden fra (standard 0). Læs videre med fortsaet_med fra forrige svar (fra = fortsaet_med.fra_side, fra_tegn = fortsaet_med.fra_tegn), også inde i en lang side, fx et helt mødereferat.","type":"integer","minimum":0,"maximum":100000000}},{"name":"til","in":"query","required":false,"description":"Sidste side, med. Standard: så mange sider som max_tegn rækker til.","schema":{"description":"Sidste side, med. Standard: så mange sider som max_tegn rækker til.","type":"integer","minimum":0,"maximum":100000}},{"name":"max_tegn","in":"query","required":false,"description":"Højst så mange tegn tekst i alt (standard 20 000, højst 100 000).","schema":{"default":20000,"description":"Højst så mange tegn tekst i alt (standard 20 000, højst 100 000).","type":"integer","minimum":100,"maximum":100000}},{"name":"resume","in":"query","required":false,"description":"true: sig også, om der findes et resumé (resume_status) og hvorfor ikke.","schema":{"description":"true: sig også, om der findes et resumé (resume_status) og hvorfor ikke.","type":"string","enum":["true","false"]}},{"name":"metadata","in":"query","required":false,"description":"true: dokumentets fulde felter (meta, og for et referat moede, video og behandlinger) også når du læser videre. Standard: kun ved første læsning (fra=0, eller fra udeladt og uden fra_tegn).","schema":{"description":"true: dokumentets fulde felter (meta, og for et referat moede, video og behandlinger) også når du læser videre. Standard: kun ved første læsning (fra=0, eller fra udeladt og uden fra_tegn).","type":"string","enum":["true","false"]}}],"responses":{"200":{"description":"`item` (som /v1/documents/{id}: med dokument_status, for et referat fra Folketingssalen foreløbig eller endelig), `sider` ([{side, tekst}]; en side vist i udsnit har også fra_tegn, til_tegn og tegn_i_alt), `afkortet`, `fortsaet_med` ({fra_side, fra_tegn}: hvor næste læsning begynder, send dem som fra og fra_tegn; altid efter det viste; null når der ikke er mere), `naeste_side` (næste side, når den viste side er læst til ende; null inde i en side) og `naeste_tegn` (hvor langt inde i den sidst viste side næste læsning begynder; null ved et sideskift), `henvisninger` og `besked`. `henvisninger` er de spørgsmål i Folketinget, som de viste siders tekst henviser til (fx \"der henvises til besvarelsen af spørgsmål nr. 354\"): [{tekst, sag, spoergsmaal, dokumenter: [{id, dokumenttype, titel, dato, url_original}]}], svar først; tom for andre kilder. Højst max_tegn tegn i alt. Side 0 er dokumentets felter (titel, dato, sager, aktører osv.) og kommer først ved første læsning (fra=0, eller fra udeladt og uden fra_tegn; fra=1 giver kun teksten) og tæller ikke med i max_tegn, ligesom item.meta (ellers kun med metadata=true); en post uden fil (fx en sag eller et møde) har kun side 0. `sider_i_alt` tæller filens egne sider (0 for en post)."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ukendt eller tilbagetrukket dokument; `besked` på dansk."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/documents/{id}/versions":{"get":{"operationId":"getDocumentVersions","summary":"Et dokuments udgaver (Ændringer)","parameters":[{"name":"id","in":"path","required":true,"description":"Dokumentets id: file:<id> eller tallet.","schema":{"type":"string"}}],"responses":{"200":{"description":"`item` (envelope), `versioner` (nyeste først: nummer, fra (hvornår Rigsdata først havde udgaven; den ældste: hvornår dokumentet blev set første gang), sha256, version (kildens versionsmærke), aktuel, aendring_id (ændringen, der bragte udgaven, til /v1/changes/{id}), tekst_uaendret, sider), `antal`, `trukket_tilbage` og `besked`. Rigsdata registrerer udgaver fra den dag, Ændringer blev taget i brug. Et tilbagetrukket dokument viser kun udgavernes datoer."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ukendt dokument; `besked` på dansk."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/changes":{"get":{"operationId":"listChanges","summary":"Ændringer: nye udgaver, ændrede felter og fjernede dokumenter, nyeste først","parameters":[{"name":"kilde","in":"query","required":false,"description":"Kun disse kilder, kommasepareret: folketing, hoeringsportalen, kommuner, regioner, ministerier, styrelser, parties, newsletters.","schema":{"description":"Kun disse kilder, kommasepareret: folketing, hoeringsportalen, kommuner, regioner, ministerier, styrelser, parties, newsletters.","type":"string","maxLength":200}},{"name":"myndighed","in":"query","required":false,"description":"Kun ændringer i dokumenter fra denne myndighed, som myndighed står i svarene.","schema":{"description":"Kun ændringer i dokumenter fra denne myndighed, som myndighed står i svarene.","type":"string","maxLength":200}},{"name":"dokumenttype","in":"query","required":false,"description":"Kun denne dokumenttype, som dokumenttype står i svarene (fx Lovforslag, Bilag).","schema":{"description":"Kun denne dokumenttype, som dokumenttype står i svarene (fx Lovforslag, Bilag).","type":"string","maxLength":100}},{"name":"art","in":"query","required":false,"description":"Kommasepareret: ny_version (ny udgave af en fil), felter (ændrede felter på en sag, høring eller et punkt), fjernet (fjernet hos kilden), genindsat (tilbage igen). Standard: alle.","schema":{"description":"Kommasepareret: ny_version (ny udgave af en fil), felter (ændrede felter på en sag, høring eller et punkt), fjernet (fjernet hos kilden), genindsat (tilbage igen). Standard: alle.","type":"string","maxLength":100}},{"name":"fra_dato","in":"query","required":false,"description":"Ændringer fra og med denne dag (dansk tid).","schema":{"description":"Ændringer fra og med denne dag (dansk tid).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Ændringer til og med denne dag (dansk tid).","schema":{"description":"Ændringer til og med denne dag (dansk tid).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"dokument_id","in":"query","required":false,"description":"Kun ét dokuments ændringer: file:<id>. Viser også nye udgaver med samme tekst (tekst_uaendret).","schema":{"description":"Kun ét dokuments ændringer: file:<id>. Viser også nye udgaver med samme tekst (tekst_uaendret).","type":"string","maxLength":40}},{"name":"sag_id","in":"query","required":false,"description":"Folketingets sag (sag:<id>): ændringer i sagen og dens dokumenter.","schema":{"description":"Folketingets sag (sag:<id>): ændringer i sagen og dens dokumenter.","type":"string","maxLength":40}},{"name":"hoering_id","in":"query","required":false,"description":"En høring på Høringsportalen (hoering:<id>): ændringer i høringen og dens dokumenter.","schema":{"description":"En høring på Høringsportalen (hoering:<id>): ændringer i høringen og dens dokumenter.","type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige side.","schema":{"description":"nextCursor fra forrige side.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Hvert item er dokumentet med `aendring` {id (aendring:<id>), art (ny_version, felter, fjernet, genindsat), tidspunkt (hvornår Rigsdata så ændringen), beskrivelse, tekst_uaendret, sider_aendret (sidetal), tegn_tilfoejet, tegn_fjernet, felter [{felt, foer, efter}] (værdier afkortet til 300 tegn), fjernet_siden, trukket_tilbage, fjernet_hos_kilden}. Nye udgaver med samme tekst vises kun med dokument_id. Et tilbagetrukket dokument viser kun, at og hvornår det ændrede sig (Folketingets vilkår: sletninger respekteres); et dokument fra en anden kilde end Folketinget, som kilden selv har fjernet, vises helt med fjernet_hos_kilden: true. Rigsdata registrerer ændringer fra den dag, funktionen blev taget i brug."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/changes/{id}":{"get":{"operationId":"getChange","summary":"Én ændring med forskellen linje for linje","parameters":[{"name":"id","in":"path","required":true,"description":"Ændringens id: aendring:<id> eller tallet.","schema":{"type":"string"}}],"responses":{"200":{"description":"`item` (som i /v1/changes, med felternes fulde værdier), `version_fra`, `version_til`, `diff` (for ny_version: {hunks: [{side_foer, side_efter, kontekst, fjernet: [linjer], tilfoejet: [linjer]}], afkortet, udeladt}; null for andre arter, for samme tekst og for et tilbagetrukket dokument) og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ukendt ændring; `besked` på dansk."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/hearings":{"get":{"operationId":"listHearings","summary":"Høringer på Høringsportalen og kommunernes egne høringssider efter emne, myndighed, kommune, status og frist","parameters":[{"name":"emne","in":"query","required":false,"description":"Emne: ord i høringens titel, beskrivelse (uden standardtekst som afsenderlinjen) eller dens dokumenters tekst (Høringsportalen, uden høringssvar og høringslister), fx ladeinfrastruktur eller NIS2; et ord finder også sammensatte ord i titel og beskrivelse (havvind: Havvindmøllepark). Et ord på højst fire tegn (fx NIS2, CER, PFAS) skal stå som hele ordet: NIS2 finder NIS 2 og NIS2-direktivet, ikke Nissen. Bedste match først; uddrag viser, hvor ordet står. Ordet høring(er) udelades. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","schema":{"description":"Emne: ord i høringens titel, beskrivelse (uden standardtekst som afsenderlinjen) eller dens dokumenters tekst (Høringsportalen, uden høringssvar og høringslister), fx ladeinfrastruktur eller NIS2; et ord finder også sammensatte ord i titel og beskrivelse (havvind: Havvindmøllepark). Et ord på højst fire tegn (fx NIS2, CER, PFAS) skal stå som hele ordet: NIS2 finder NIS 2 og NIS2-direktivet, ikke Nissen. Bedste match først; uddrag viser, hvor ordet står. Ordet høring(er) udelades. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","type":"string","minLength":1,"maxLength":200}},{"name":"myndighed","in":"query","required":false,"description":"Myndighed (del af navnet), fx Energistyrelsen, Skatteministeriet eller en kommune som Aarhus.","schema":{"description":"Myndighed (del af navnet), fx Energistyrelsen, Skatteministeriet eller en kommune som Aarhus.","type":"string","minLength":1,"maxLength":200}},{"name":"kilde","in":"query","required":false,"description":"hoeringsportalen (statens høringer), kommuner (kommunernes egne høringssider) eller alle. Standard: alle, dog kun Høringsportalen med omraade uden myndighed, og kun kommunerne med kommune eller art=afgoerelse.","schema":{"description":"hoeringsportalen (statens høringer), kommuner (kommunernes egne høringssider) eller alle. Standard: alle, dog kun Høringsportalen med omraade uden myndighed, og kun kommunerne med kommune eller art=afgoerelse.","type":"string","enum":["hoeringsportalen","kommuner","alle"]}},{"name":"art","in":"query","required":false,"description":"hoering (standard: høringer, også kommunale sider der ikke angiver arten), afgoerelse (kommunernes afgørelser, fx om lokalplaner og miljø) eller alle (også borgermøder og borgerdialog).","schema":{"description":"hoering (standard: høringer, også kommunale sider der ikke angiver arten), afgoerelse (kommunernes afgørelser, fx om lokalplaner og miljø) eller alle (også borgermøder og borgerdialog).","type":"string"}},{"name":"kommune","in":"query","required":false,"description":"Kun høringer fra denne kommune: kommunekode (fx 751) eller (del af) navnet (fx Aarhus).","schema":{"description":"Kun høringer fra denne kommune: kommunekode (fx 751) eller (del af) navnet (fx Aarhus).","type":"string","minLength":1,"maxLength":100}},{"name":"status","in":"query","required":false,"description":"aaben (fristen er i dag eller senere), udloebet (fristen er passeret) eller arkiv (fristen er passeret, og Høringsportalen har arkiveret høringen). Samme værdier som items' status.","schema":{"description":"aaben (fristen er i dag eller senere), udloebet (fristen er passeret) eller arkiv (fristen er passeret, og Høringsportalen har arkiveret høringen). Samme værdier som items' status.","type":"string"}},{"name":"frist_fra","in":"query","required":false,"description":"Høringsfrist denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Høringsfrist denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"frist_til","in":"query","required":false,"description":"Høringsfrist denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Høringsfrist denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"frist_inden","in":"query","required":false,"description":"Høringsfrist fra i dag og højst så mange dage frem, fx 30.","schema":{"description":"Høringsfrist fra i dag og højst så mange dage frem, fx 30.","type":"integer","minimum":0,"maximum":366}},{"name":"omraade","in":"query","required":false,"description":"Høringsportalens område (et ord i starten af områdets navn, fx Erhverv, Energi eller Sundhed). Kommunale høringer kommer kun med, når kilde=kommuner, kommune eller myndighed er angivet; så er det en del af kommunens områdetekst, fx Midtbyen.","schema":{"description":"Høringsportalens område (et ord i starten af områdets navn, fx Erhverv, Energi eller Sundhed). Kommunale høringer kommer kun med, når kilde=kommuner, kommune eller myndighed er angivet; så er det en del af kommunens områdetekst, fx Midtbyen.","type":"string","minLength":1,"maxLength":200}},{"name":"sortering","in":"query","required":false,"description":"relevans (standard med emne): bedste match først; frist (standard med status=aaben eller en fristgrænse uden emne): kommende høringsfrister først, tidligste først, derefter passerede, seneste først; nyeste (standard ellers): senest publiceret først; hoeringssvar: flest høringssvar-dokumenter først (Høringsportalen; et samlet dokument tæller som ét, se hoeringssvar_samlet).","schema":{"description":"relevans (standard med emne): bedste match først; frist (standard med status=aaben eller en fristgrænse uden emne): kommende høringsfrister først, tidligste først, derefter passerede, seneste først; nyeste (standard ellers): senest publiceret først; hoeringssvar: flest høringssvar-dokumenter først (Høringsportalen; et samlet dokument tæller som ét, se hoeringssvar_samlet).","type":"string"}},{"name":"limit","in":"query","required":false,"description":"Antal resultater (1–100, standard 20).","schema":{"default":20,"description":"Antal resultater (1–100, standard 20).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Hvert item har også hoeringsfrist, status (aaben, udloebet eller arkiv efter fristen, som filteret), status_navn (I gang, Udløbet, Arkiv), status_kilde (kildens egen status), omraade, dokumenter (antal pr. gruppe; kommuner: Høringsdokument), hoeringssvar (antal høringssvar-dokumenter, Høringsportalen; null når portalen ikke viser nogen) og hoeringssvar_samlet (svarene ligger i ét samlet dokument), lovforslag (sagen høringen er blevet til eller bygger på: id, nummer, samling, titel, grundlag beskrivelse eller titel, tidligere når samme lovforslag er fremsat før; ellers null), hoeringssvar_i_folketinget (fil-id'er på lovforslagets bilag med høringssvar og høringsnotat i Folketinget; ellers null), uddrag med emne (hvor ordet står), klagefrist og kommunekode (kun kommuner). Rækkefølge: relevans med emne, tidligste frist med status=aaben eller en fristgrænse, ellers nyeste; sortering bestemmer selv (frist: kommende frister først, så passerede, seneste først). kilde er hoeringsportalen eller kommuner (filteret tager også alle, standard); et ord på højst fire tegn i emne skal stå som hele ordet; en kommunal høring har id kommune_hoering:<id> og myndighed er kommunen."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/hearings/{id}":{"get":{"operationId":"getHearing","summary":"Én høring med dens dokumenter i rækkefølge","parameters":[{"name":"id","in":"path","required":true,"description":"Høringens id fra Høringsportalen (eller hoering:<id>), eller en kommunal høring som kommune_hoering:<id>.","schema":{"type":"string"}}],"responses":{"200":{"description":"Envelope med høringen, `beskrivelse`, `emner` (kommuner) og `forloeb`: på Høringsportalen høringsbrev, udkast, høringsliste, høringssvar og høringsnotat, hver med dato (udsendte dokumenter: høringens publiceringsdato; svar og notat: dagen de kom på siden, ellers null), for en kommunal høring dens egen side og dokumenter; hver med fil-id. `dublet_af` er høringen med dokumenter, når Høringsportalen har høringen to gange. På Høringsportalen også `hoeringssvar` (hvert svar: dokument_id, titel, url_original, part {id, navn, type} eller \"Privatperson\" eller null for et samlet eller ukendt svar, afsender, ingen_bemaerkninger, holdning; en privatpersons svar har hverken titel eller url_original her) og `inviterede` (antal, svaret, svarprocent og parter fra høringslisten; null uden læst høringsliste). items[0].hoeringssvar er stadig antallet af svar-dokumenter. `aendringer_efter_hoering` er de ændringer, høringsnotatet (eller lovforslagets bilag med høringsnotat i Folketinget, når høringen ikke har sit eget) siger, der er foretaget: tekst (ordret uddrag, højst 500 tegn), emne, parter (part {id, navn, type}, rolle foreslog, stoettede eller naevnt, rolle_navn, udtrykkelig: notatet siger selv, at ændringen skyldes organisationen), url_original (notatet), dokument_id, side, kilde, art (indhold eller redaktionel), foranledning (hoering eller egen: myndighedens egen), kilde_afsnit (aendringsafsnit eller emne), metode (regel eller llm) og sikkerhed (0–1); `ingen_aendringer` er true, når notatet siger, at høringen ikke har givet anledning til ændringer, false når det nævner ændringer, null uden læst notat; `hoeringsnotater` er antallet af læste notater."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen høring med det id (`not_found`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/stakeholders":{"get":{"operationId":"listStakeholders","summary":"Høringsparter: organisationer, der afgiver høringssvar på Høringsportalen, med antal svar","description":"Kun organisationer: privatpersoner har ingen høringspart og kan ikke findes her. Tallene er Rigsdatas sammenstilling af høringssvar, der er offentliggjort på Høringsportalen; afsenderen er fundet ud fra svarets titel, filnavn eller tekst. Med myndighed, omraade eller en dato er tallene dem inden for filteret.","parameters":[{"name":"organisation","in":"query","required":false,"description":"Organisationens navn, forkortelse eller en del af det, fx Dansk Erhverv, DI eller Landbrug. Kun organisationer; privatpersoner indgår ikke.","schema":{"description":"Organisationens navn, forkortelse eller en del af det, fx Dansk Erhverv, DI eller Landbrug. Kun organisationer; privatpersoner indgår ikke.","type":"string","minLength":1,"maxLength":200}},{"name":"type","in":"query","required":false,"description":"Organisationstype: interesseorganisation, fagforening, erhvervsorganisation, virksomhed, myndighed, kommune, region, uddannelse_forskning, ngo eller andet.","schema":{"description":"Organisationstype: interesseorganisation, fagforening, erhvervsorganisation, virksomhed, myndighed, kommune, region, uddannelse_forskning, ngo eller andet.","type":"string"}},{"name":"myndighed","in":"query","required":false,"description":"Kun svar på høringer fra denne myndighed (del af navnet), fx Miljøministeriet eller Skatteministeriet. Tallene er så dem inden for filteret.","schema":{"description":"Kun svar på høringer fra denne myndighed (del af navnet), fx Miljøministeriet eller Skatteministeriet. Tallene er så dem inden for filteret.","type":"string","minLength":1,"maxLength":200}},{"name":"omraade","in":"query","required":false,"description":"Kun svar på høringer inden for Høringsportalens område (et ord i starten af områdets navn), fx Miljø, Energi eller Sundhed.","schema":{"description":"Kun svar på høringer inden for Høringsportalens område (et ord i starten af områdets navn), fx Miljø, Energi eller Sundhed.","type":"string","minLength":1,"maxLength":200}},{"name":"fra_dato","in":"query","required":false,"description":"Kun høringer offentliggjort denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Kun høringer offentliggjort denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Kun høringer offentliggjort denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Kun høringer offentliggjort denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"sortering","in":"query","required":false,"description":"svar (standard): flest høringssvar først; navn: alfabetisk; seneste: senest aktive først; aendringer: flest høringer, hvor et høringsnotat forbinder organisationen med en ændring efter høringen.","schema":{"description":"svar (standard): flest høringssvar først; navn: alfabetisk; seneste: senest aktive først; aendringer: flest høringer, hvor et høringsnotat forbinder organisationen med en ændring efter høringen.","type":"string","enum":["svar","navn","seneste","aendringer"]}},{"name":"limit","in":"query","required":false,"description":"Antal organisationer (1–100, standard 20).","schema":{"default":20,"description":"Antal organisationer (1–100, standard 20).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Hvert item er en høringspart (id part:<id>, titel = navn, dokumenttype Høringspart, url_original null med url_mangler) med navn, slug, type og type_navn, registreret (kendt organisation fra Rigsdatas register), antal_svar, antal_hoeringer, ingen_bemaerkninger_andel (0–1 af de svar, hvis tekst er læst), inviteret og svaret_inviteret (høringer hvor organisationen stod på høringslisten og der er offentliggjort svar), svarprocent_inviteret, foerste_svar_dato og seneste_svar_dato, hoeringer_med_aendring og aendringer (høringer og ændringer, hvor et høringsnotat forbinder organisationen med en ændring på grund af høringen; inden for filteret, når et er givet; sortering=aendringer sorterer efter dem)."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/stakeholders/{id}":{"get":{"operationId":"getStakeholder","summary":"Én høringsparts profil: svar, fordeling, holdninger og hvem den ofte svarer sammen med","parameters":[{"name":"id","in":"path","required":true,"description":"Høringspartens id (part:<id> eller tallet) eller slug, fx dansk-erhverv.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Antal af organisationens seneste høringssvar pr. side (1–50, standard 10).","schema":{"default":10,"description":"Antal af organisationens seneste høringssvar pr. side (1–50, standard 10).","type":"integer","minimum":1,"maximum":50}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar: næste side af seneste_svar.","schema":{"description":"nextCursor fra forrige svar: næste side af seneste_svar.","type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"Envelope med høringsparten (som i listen) og `aliaser`, `fordeling` (myndighed, omraade og aar: antal svar pr. myndighed, område og år), `holdninger` (antal svar pr. holdning: stoetter, imod, blandet, ingen_bemaerkninger, uklar; maskinlæst, når den ikke er ingen_bemaerkninger), `inviteret` (antal, svaret, svarprocent), `ofte_sammen_med` (op til 10: part {id, navn, type}, faelles_hoeringer og de seneste fælles høringer med id, titel, dato og url_original) og `seneste_svar` (envelope-items, nyeste først: id file:<id>, titel = høringens titel, dato, myndighed, url_original = svarets fil, hoering_id, hoering_url, dokument_titel, ingen_bemaerkninger, holdning, holdning_navn, hovedpunkter (citater fra svaret)). `indflydelse` (null før høringsnotaterne er læst): hoeringer_besvaret, hoeringer_med_notat (af dem med kendt udfald), hoeringer_med_aendring, aendringer, aendringer_udtrykkelig (notatet siger selv, at ændringen skyldes organisationen), andel, pr_aar, pr_myndighed, eksempler (de seneste ændringer som i høringens aendringer_efter_hoering, med hoering_id, hoering_titel, dato, myndighed, rolle og udtrykkelig) og forklaring (hvad tallene betyder: 'forbundet med', ikke 'fik igennem'). nextCursor henter næste side af seneste_svar (send den som after); en sådan side har kun høringsparten og seneste_svar."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen høringspart med det id (`not_found`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/decisions":{"get":{"operationId":"listDecisions","summary":"Kommunale og regionale dagsordenspunkter og beslutninger","parameters":[{"name":"emne","in":"query","required":false,"description":"Emne: ord i dagsordenspunktets titel eller tekst, fx miljøzone. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","schema":{"description":"Emne: ord i dagsordenspunktets titel eller tekst, fx miljøzone. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","type":"string","minLength":1,"maxLength":200}},{"name":"myndigheder","in":"query","required":false,"description":"Kommasepareret: kommunekoder (101), kommunenavne (Aarhus) og regioner (hovedstaden eller Region Hovedstaden).","schema":{"description":"Kommasepareret: kommunekoder (101), kommunenavne (Aarhus) og regioner (hovedstaden eller Region Hovedstaden).","type":"string","minLength":1,"maxLength":500}},{"name":"stoerste","in":"query","required":false,"description":"De N største kommuner efter indbyggertal (Danmarks Statistik, FOLK1A), fx 5. Lægges sammen med myndigheder.","schema":{"description":"De N største kommuner efter indbyggertal (Danmarks Statistik, FOLK1A), fx 5. Lægges sammen med myndigheder.","type":"integer","minimum":1,"maximum":98}},{"name":"kilde","in":"query","required":false,"description":"kommuner eller regioner. Standard: begge.","schema":{"description":"kommuner eller regioner. Standard: begge.","type":"string","enum":["kommuner","regioner"]}},{"name":"udvalg","in":"query","required":false,"description":"Udvalg: ord i navnet, store og små bogstaver er ligegyldige (fx teknik og miljø). 'byråd', 'kommunalbestyrelse' eller 'regionsråd' giver kommunalbestyrelsen eller regionsrådet i alle myndigheder, hvad de end hedder (Aarhus Byråd, Borgerrepræsentationen, Regionsrådet 2026-2029).","schema":{"description":"Udvalg: ord i navnet, store og små bogstaver er ligegyldige (fx teknik og miljø). 'byråd', 'kommunalbestyrelse' eller 'regionsråd' giver kommunalbestyrelsen eller regionsrådet i alle myndigheder, hvad de end hedder (Aarhus Byråd, Borgerrepræsentationen, Regionsrådet 2026-2029).","type":"string","minLength":1,"maxLength":200}},{"name":"sagsnummer","in":"query","required":false,"description":"Kommunens eller regionens sagsnummer; giver punktets forløb, ældste møde først.","schema":{"description":"Kommunens eller regionens sagsnummer; giver punktets forløb, ældste møde først.","type":"string","minLength":1,"maxLength":100}},{"name":"fra_dato","in":"query","required":false,"description":"Møder denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Møder denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Møder denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Møder denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"kun_beslutninger","in":"query","required":false,"description":"true: kun punkter fra referater (afholdte møder), hvis tekst har en beslutning.","schema":{"description":"true: kun punkter fra referater (afholdte møder), hvis tekst har en beslutning.","type":"string","enum":["true","false"]}},{"name":"sortering","in":"query","required":false,"description":"relevans (standard med emne): bedste match først, nyere møder vægtes højere; nyeste: nyeste møde først (standard uden emne).","schema":{"description":"relevans (standard med emne): bedste match først, nyere møder vægtes højere; nyeste: nyeste møde først (standard uden emne).","type":"string","enum":["relevans","nyeste"]}},{"name":"limit","in":"query","required":false,"description":"Antal resultater (1–100, standard 10).","schema":{"default":10,"description":"Antal resultater (1–100, standard 10).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Hvert item har også udvalg, referat, beslutning (kun fra referater), dagsorden_id, dagsorden_dokument_id, bilag (de første fem), bilag_antal og andre_behandlinger (sagens andre møder). filtre har sortering og myndigheder_fundet; besked nævner kendte huller for de valgte myndigheder, også når der er resultater."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/speeches":{"get":{"operationId":"listSpeeches","summary":"Taler i Folketingssalen efter emne, taler, parti, rolle, sag og dato","parameters":[{"name":"emne","in":"query","required":false,"description":"Ord, der alle skal stå i talen (bøjningsformer findes også), fx topskat. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","schema":{"description":"Ord, der alle skal stå i talen (bøjningsformer findes også), fx topskat. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","type":"string","minLength":1,"maxLength":200}},{"name":"person","in":"query","required":false,"description":"Hvem der talte: et medlems eller en ministers navn (fx Pia Olsen Dyhr) eller aktoer:<id>. Kun personer, der har talt i Folketingssalen.","schema":{"description":"Hvem der talte: et medlems eller en ministers navn (fx Pia Olsen Dyhr) eller aktoer:<id>. Kun personer, der har talt i Folketingssalen.","type":"string","minLength":1,"maxLength":100}},{"name":"parti","in":"query","required":false,"description":"Partiet på dagen: forkortelsen som i referatet (S, V, SF, DD …) eller navnet.","schema":{"description":"Partiet på dagen: forkortelsen som i referatet (S, V, SF, DD …) eller navnet.","type":"string","minLength":1,"maxLength":60}},{"name":"rolle","in":"query","required":false,"description":"ordfoerer, minister, kort_bemaerkning, replik (svar på en kort bemærkning), spoerger (spørgetid), medlem eller formand. Formandens linjer er kun med, når rolle er formand, eller person er angivet.","schema":{"description":"ordfoerer, minister, kort_bemaerkning, replik (svar på en kort bemærkning), spoerger (spørgetid), medlem eller formand. Formandens linjer er kun med, når rolle er formand, eller person er angivet.","type":"string","enum":["formand","ordfoerer","minister","kort_bemaerkning","replik","spoerger","medlem"]}},{"name":"sag_id","in":"query","required":false,"description":"Kun talerne om denne sag (sag:<id> fra find_sag).","schema":{"description":"Kun talerne om denne sag (sag:<id> fra find_sag).","type":"string","pattern":"^(sag:)?\\d{1,10}$"}},{"name":"fra_dato","in":"query","required":false,"description":"Møder denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Møder denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Møder denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Møder denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"sortering","in":"query","required":false,"description":"relevans (standard med emne): bedste match først; nyeste: nyeste tale først.","schema":{"description":"relevans (standard med emne): bedste match først; nyeste: nyeste tale først.","type":"string","enum":["relevans","nyeste"]}},{"name":"limit","in":"query","required":false,"description":"Antal taler (1–50, standard 10).","schema":{"default":10,"description":"Antal taler (1–50, standard 10).","type":"integer","minimum":1,"maximum":50}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Ét item pr. tale (id tale:<id>, dokumenttype Tale; titel er dagsordenspunktet, dato talens start, url_original behandlingens side på ft.dk, ellers referatet; uddrag hvor emne står, ellers talens begyndelse). Hvert item har også taler ({navn, titel (fx Skatteministeren), som_skrevet (som i referatet), parti (på dagen), rolle og rolle_tekst, aktoer_id, url_original: personens side på ft.dk}), sag ({id, sagsnummer, titel} eller null), behandling, sagstrin_id, moede ({nummer, titel, dato}), dokument_status (foreløbig eller endelig udgave af referatet), udgave, referat_url, video_url (mødets web-tv fra talens start til slut; null før web-tv-arkivet, 1. november 2009), video_fra, video_til (null uden video), dokument_id (referatets file:<id> til /v1/documents, null indtil teksten er hentet), side, fra_tegn og til_tegn (hvor talen står i referatets tekst; null indtil de er fundet) og ord. Med emne også antal_i_alt, antal_pr_parti ([{parti, antal}]) og antal_pr_aar ([{aar, antal}]) over alle taler, der passer (null når optællingen tog for lang tid). filtre har sortering og med person personer_fundet. Formandens linjer er kun med, når rolle er formand, eller person er angivet. Kilde: Folketinget."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/decisions/compare":{"get":{"operationId":"compareDecisions","summary":"Sammenlign alle kommuner (og regioner) på ét emne","description":"Én række pr. myndighed i udvalget (standard: alle 98 kommuner), også dem uden fund, så svaret skelner mellem behandlet, ikke_fundet (dækket, men intet matcher) og ikke_daekket (Rigsdata har ikke myndighedens dagsordener og referater for perioden). Rækkerne er sorteret efter indbyggertal og har faste felter, så de kan eksporteres som tabel. Med visning=tidslinje i stedet spredningen over tid: pr. måned hvor mange myndigheder der tog emnet op første gang.","parameters":[{"name":"emne","in":"query","required":true,"description":"Emne: ord i dagsordenspunktets titel eller tekst, fx betalingsparkering. Alle ord skal findes; småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Forstår også søgesyntaksen fra /v1/search (\"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver), fx nulemissionszone OR \"0-emissionszone\"; en ugyldig søgning giver invalid_query. Udvides ikke til nogle af ordene: sammenligningen siger, om en myndighed har taget emnet op.","schema":{"type":"string","minLength":1,"maxLength":200,"description":"Emne: ord i dagsordenspunktets titel eller tekst, fx betalingsparkering. Alle ord skal findes; småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Forstår også søgesyntaksen fra /v1/search (\"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver), fx nulemissionszone OR \"0-emissionszone\"; en ugyldig søgning giver invalid_query. Udvides ikke til nogle af ordene: sammenligningen siger, om en myndighed har taget emnet op."}},{"name":"myndigheder","in":"query","required":false,"description":"Kun disse myndigheder, kommasepareret: kommunekoder (101), kommunenavne (Aarhus) og regioner (hovedstaden). Standard: alle kommuner.","schema":{"description":"Kun disse myndigheder, kommasepareret: kommunekoder (101), kommunenavne (Aarhus) og regioner (hovedstaden). Standard: alle kommuner.","type":"string","minLength":1,"maxLength":500}},{"name":"stoerste","in":"query","required":false,"description":"Kun de N største kommuner efter indbyggertal, fx 10.","schema":{"description":"Kun de N største kommuner efter indbyggertal, fx 10.","type":"integer","minimum":1,"maximum":98}},{"name":"kilde","in":"query","required":false,"description":"kommuner (standard: alle 98 kommuner), regioner (de fem regioner) eller alle. Med myndigheder: de nævnte.","schema":{"description":"kommuner (standard: alle 98 kommuner), regioner (de fem regioner) eller alle. Med myndigheder: de nævnte.","type":"string","enum":["kommuner","regioner","alle"]}},{"name":"udvalg","in":"query","required":false,"description":"Udvalg: ord i navnet (fx teknik og miljø); 'byråd', 'kommunalbestyrelse' eller 'regionsråd' giver kommunalbestyrelsen eller regionsrådet.","schema":{"description":"Udvalg: ord i navnet (fx teknik og miljø); 'byråd', 'kommunalbestyrelse' eller 'regionsråd' giver kommunalbestyrelsen eller regionsrådet.","type":"string","minLength":1,"maxLength":200}},{"name":"fra_dato","in":"query","required":false,"description":"Møder denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Møder denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Møder denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Møder denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"kun_beslutninger","in":"query","required":false,"description":"true: kun punkter fra referater af afholdte møder med en beslutningstekst.","schema":{"description":"true: kun punkter fra referater af afholdte møder med en beslutningstekst.","type":"string","enum":["true","false"]}},{"name":"punkter","in":"query","required":false,"description":"Bedste punkter pr. myndighed (0–3, standard 3).","schema":{"default":3,"description":"Bedste punkter pr. myndighed (0–3, standard 3).","type":"integer","minimum":0,"maximum":3}},{"name":"visning","in":"query","required":false,"description":"tabel (standard): én række pr. myndighed; tidslinje: pr. måned hvor mange myndigheder der tog emnet op første gang.","schema":{"description":"tabel (standard): én række pr. myndighed; tidslinje: pr. måned hvor mange myndigheder der tog emnet op første gang.","type":"string","enum":["tabel","tidslinje"]}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"visning=tabel: `items` (hver med id, kilde, kode, myndighed, indbyggertal, status: behandlet | ikke_fundet | ikke_daekket, status_tekst (hvorfor, eller forbehold), antal_punkter, antal_moeder, foerste_dato, seneste_dato, seneste_udvalg og punkter: de bedste punkter med id, titel, dato, udvalg, referat, beslutning (uddrag, kun fra referater), url_original og dagsorden_id), `antal`, `opsummering` (myndigheder, behandlet, ikke_fundet, ikke_daekket), `filtre`, `nextCursor` (altid null: alle rækker kommer i ét svar), `besked` (forklarer de tre status; gentag den) og `definitioner`. visning=tidslinje: `items` pr. måned (maaned ÅÅÅÅ-MM, nye, i_alt og myndigheder med foerste_dato og ved_arkivets_start), `opsummering`, `ikke_daekket` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/municipalities/transparency":{"get":{"operationId":"municipalTransparency","summary":"Kommunernes åbenhed: lukkede punkter, referater, PDF og høringsperioder","description":"Tal pr. kommune for en periode, beregnet dagligt af Rigsdata ud fra kommunernes dagsordener, referater og høringer: andel lukkede punkter, andel punkter kun som PDF, andel åbne punkter uden beslutningstekst, median dage fra møde til referat, median høringsperiode og antal møder. Rangeret efter sortering; kommuner med ufuldstændige data rangeres ikke. Definitionerne følger med i svaret.","parameters":[{"name":"kommune","in":"query","required":false,"description":"Kun disse kommuner, kommasepareret: koder (101) eller navne (Aarhus). Pladserne er stadig blandt alle kommuner.","schema":{"description":"Kun disse kommuner, kommasepareret: koder (101) eller navne (Aarhus). Pladserne er stadig blandt alle kommuner.","type":"string","minLength":1,"maxLength":500}},{"name":"periode","in":"query","required":false,"description":"12m (standard: de seneste 12 måneder, der sluttede for 30 dage siden), et år (2025) eller et kvartal (2025K3).","schema":{"description":"12m (standard: de seneste 12 måneder, der sluttede for 30 dage siden), et år (2025) eller et kvartal (2025K3).","type":"string","pattern":"^(12m|\\d{4}|\\d{4}K[1-4])$"}},{"name":"sortering","in":"query","required":false,"description":"lukkede_punkter (standard: andel lukkede punkter), kun_pdf (andel punkter kun som PDF), uden_beslutning (andel åbne punkter uden beslutningstekst), referat_dage (dage fra møde til referat), hoeringsperiode (høringsperiodens længde) eller moeder (antal møder).","schema":{"description":"lukkede_punkter (standard: andel lukkede punkter), kun_pdf (andel punkter kun som PDF), uden_beslutning (andel åbne punkter uden beslutningstekst), referat_dage (dage fra møde til referat), hoeringsperiode (høringsperiodens længde) eller moeder (antal møder).","type":"string","enum":["lukkede_punkter","kun_pdf","uden_beslutning","referat_dage","hoeringsperiode","moeder"]}},{"name":"retning","in":"query","required":false,"description":"faldende (standard: størst først) eller stigende.","schema":{"description":"faldende (standard: størst først) eller stigende.","type":"string","enum":["faldende","stigende"]}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"`items` (rangerede først; hver med id, kode, kommune, indbyggertal, plads (null når ikke rangeret), fuldstaendig, mangler (hvorfor ufuldstændig, på dansk), moeder, referatpunkter, andel_lukkede_pct, andel_kun_pdf_pct, andel_uden_beslutning_pct, referat_median_dage, hoeringsperiode_median_dage og stikproever; null når tallet ikke kan opgøres), `antal`, `periode` (periode, type, fra, til, beregnet), `perioder` (de perioder, der findes tal for), `filtre`, `nextCursor` (null), `besked` og `definitioner`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/agendas/{kilde}/{id}":{"get":{"operationId":"getAgenda","summary":"Én dagsorden eller ét referat med alle punkter","parameters":[{"name":"kilde","in":"path","required":true,"description":"kommuner eller regioner.","schema":{"type":"string","enum":["kommuner","regioner"]}},{"name":"id","in":"path","required":true,"description":"Dagsordenens id (eller dagsorden:<kilde>:<id>).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope med dagsordenen og `forloeb`: punkterne i rækkefølge."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen dagsorden med det id (`not_found`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/legislative-programme":{"get":{"operationId":"legislativeProgramme","summary":"Regeringens lovprogram for et folketingsår holdt op mod Folketingets sager, med skøn over hvornår åbne lovforslag behandles og vedtages","parameters":[{"name":"samling","in":"query","required":false,"description":"Folketingsåret, fx 2026-27 (også 2026-2027 eller periodekoden 20261). Standard: det nyeste lovprogram.","schema":{"description":"Folketingsåret, fx 2026-27 (også 2026-2027 eller periodekoden 20261). Standard: det nyeste lovprogram.","type":"string","minLength":4,"maxLength":30}},{"name":"ministerium","in":"query","required":false,"description":"Ministerium eller minister, helt eller delvist, fx Skatteministeriet, skat eller Justitsministeren.","schema":{"description":"Ministerium eller minister, helt eller delvist, fx Skatteministeriet, skat eller Justitsministeren.","type":"string","minLength":2,"maxLength":100}},{"name":"status","in":"query","required":false,"description":"Kun punkter med denne status: ikke_fremsat (annonceret, endnu ikke fremsat), fremsat (fremsat, ikke afgjort), vedtaget, forkastet, bortfaldet (også tilbagetaget) og ikke_i_programmet (regeringens lovforslag i samlingen, som ikke stod i lovprogrammet).","schema":{"description":"Kun punkter med denne status: ikke_fremsat (annonceret, endnu ikke fremsat), fremsat (fremsat, ikke afgjort), vedtaget, forkastet, bortfaldet (også tilbagetaget) og ikke_i_programmet (regeringens lovforslag i samlingen, som ikke stod i lovprogrammet).","type":"string","enum":["ikke_fremsat","fremsat","vedtaget","forkastet","bortfaldet","ikke_i_programmet"]}},{"name":"forsinket","in":"query","required":false,"description":"true: kun punkter, der er fremsat efter den forventede halve måned, eller som ikke er fremsat, selvom den er gået.","schema":{"description":"true: kun punkter, der er fremsat efter den forventede halve måned, eller som ikke er fremsat, selvom den er gået.","type":"string","enum":["true","false"]}},{"name":"limit","in":"query","required":false,"description":"Punkter pr. side (standard 50, højst 200).","schema":{"default":50,"description":"Punkter pr. side (standard 50, højst 200).","type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Ét item pr. punkt i lovprogrammet i programmets rækkefølge (id lovprogram:<id>, kilde lovprogram, url_original: lovprogrammet hos Statsministeriet, side: siden i det, dato: lovprogrammets udgivelse, myndighed: ministeriet ud fra ministerens titel), derefter regeringens lovforslag i samlingen, som ikke stod i programmet (id sag:<id>, kilde folketing, status ikke_i_programmet). Hvert item har samling, i_programmet, art (lovforslag, beslutningsforslag, redegoerelse), minister, beskrivelse, forventet_fremsaettelse {tekst som 'Okt I', maaned, halvdel (I: 1.-15., II: 16.-månedens slutning), senest}, status, forsinket, genfremsaettelse_af, sag {id, sagsnummer, titel, status, samling, fremsat, url_original} (null når punktet ikke er fremsat), match {metode titel eller manuel, sikkerhed 0-1} og prognose (som i /v1/cases/{id}). Svaret har også `ministerier`: pr. ministerium annonceret, fremsat, vedtaget, ikke_fremsat, forsinket og ikke_i_programmet for hele samlingen, og `note`. Kræver at nøglen må læse folketing."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/whoami":{"get":{"operationId":"whoami","summary":"Hvem nøglen eller tokenet tilhører","description":"Kontrollerer nøglen eller tokenet og svarer med organisationen. Tæller ikke som opslag og logges ikke.","responses":{"200":{"description":"`organizationId`, `keyId` (kun for API-nøgler) og `channel` (key eller oauth)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."}}}},"/v1/reuse":{"get":{"operationId":"textReuse","summary":"Tekstgenbrug: passager et dokument deler med andre dokumenter","parameters":[{"name":"dokument_id","in":"query","required":false,"description":"Dokumentets id (file:<id> fra et tidligere svar): hvilke passager i dokumentet der også står i andre dokumenter. Angiv dokument_id eller tekst.","schema":{"description":"Dokumentets id (file:<id> fra et tidligere svar): hvilke passager i dokumentet der også står i andre dokumenter. Angiv dokument_id eller tekst.","type":"string","maxLength":30}},{"name":"tekst","in":"query","required":false,"description":"En tekstpassage (mindst 20 ord, højst 2 000 tegn): hvor den, eller en tæt variant, står i andre dokumenter. Angiv dokument_id eller tekst.","schema":{"description":"En tekstpassage (mindst 20 ord, højst 2 000 tegn): hvor den, eller en tæt variant, står i andre dokumenter. Angiv dokument_id eller tekst.","type":"string","maxLength":2000}},{"name":"kilde","in":"query","required":false,"description":"Kun genbrug i dokumenter fra denne kilde (det andet dokument).","schema":{"description":"Kun genbrug i dokumenter fra denne kilde (det andet dokument).","type":"string","enum":["folketing","hoeringsportalen","kommuner","regioner","ministerier","styrelser","parties","newsletters"]}},{"name":"myndighed","in":"query","required":false,"description":"Kun det andet dokuments myndighed, præcis som i resultaterne.","schema":{"description":"Kun det andet dokuments myndighed, præcis som i resultaterne.","type":"string","minLength":1,"maxLength":200}},{"name":"retning","in":"query","required":false,"description":"kilde: hvor dokumentets passager kom fra (andre dokumenter, der kom før); genbrug: hvor dokumentets passager er genbrugt (dokumenter, der kom efter); begge (standard). Kun med dokument_id.","schema":{"default":"begge","description":"kilde: hvor dokumentets passager kom fra (andre dokumenter, der kom før); genbrug: hvor dokumentets passager er genbrugt (dokumenter, der kom efter); begge (standard). Kun med dokument_id.","type":"string","enum":["kilde","genbrug","begge"]}},{"name":"fra_dato","in":"query","required":false,"description":"Det andet dokument dateret denne dag eller senere.","schema":{"description":"Det andet dokument dateret denne dag eller senere.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Det andet dokument dateret denne dag eller tidligere.","schema":{"description":"Det andet dokument dateret denne dag eller tidligere.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"kopier","in":"query","required":false,"description":"true: også dokumenter, der er en version af det samme (fx udkastet i høring og det fremsatte lovforslag). Standard false.","schema":{"description":"true: også dokumenter, der er en version af det samme (fx udkastet i høring og det fremsatte lovforslag). Standard false.","type":"string","enum":["true","false"]}},{"name":"limit","in":"query","required":false,"description":"Antal resultater (1–50).","schema":{"default":20,"description":"Antal resultater (1–50).","type":"integer","minimum":1,"maximum":50}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige side (kun med dokument_id).","schema":{"description":"nextCursor fra forrige side (kun med dokument_id).","type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Hvert item er det andet dokument, med side (siden med passagen), uddrag (passagen) og genbrug: passage_uddrag, lighed (0–1, ens 5-ords-sekvenser), ord_faelles, retning (kilde: det andet dokument kom først; genbrug: det kom senere; ukendt; null for tekst), tidligst (id på dokumentet, der kom først, eller null), kopi (versioner af samme dokument), dette og andet (id, side, fra_tegn, til_tegn og url_original for passagen i hvert dokument; dette er null for tekst) og hoeringssvar (når det ene dokument er et høringssvar: dokument_id, afsender og part, organisationen som i /v1/stakeholders; for en privatperson kun \"Privatperson\"; ellers null). Beregnet på forhånd for udvalgte dokumenttyper (lovforslag, betænkninger, svar, høringsdokumenter, pressemeddelelser, nyheder, nyhedsbreve, dagsordener og referater); en fælles passage viser genbrug, ikke hvem der skrev den."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Intet dokument med det id (`not_found`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/legislation":{"get":{"operationId":"legislation","summary":"Retsakter fra Retsinformation: love, lovbekendtgørelser, bekendtgørelser","description":"Søg i Retsinformation på titel (BM25), lovnummer og år, type, status, ministerium og dato, eller find de retsakter, der er udstedt med hjemmel i en lov (hjemmel: lovens ELI-link; også dens tidligere og senere lovbekendtgørelser). Kræver, at nøglen må læse retsinformation.","parameters":[{"name":"q","in":"query","required":false,"description":"Ord i titlen eller den populære titel, fx 'NIS 2-loven' eller 'hold af dyr'. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.q_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","schema":{"description":"Ord i titlen eller den populære titel, fx 'NIS 2-loven' eller 'hold af dyr'. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.q_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","type":"string","maxLength":200}},{"name":"type","in":"query","required":false,"description":"lov, lovbekendtgoerelse, bekendtgoerelse, cirkulaere, vejledning eller andet.","schema":{"description":"lov, lovbekendtgoerelse, bekendtgoerelse, cirkulaere, vejledning eller andet.","type":"string","enum":["lov","lovbekendtgoerelse","bekendtgoerelse","cirkulaere","vejledning","andet"]}},{"name":"status","in":"query","required":false,"description":"gaeldende eller historisk.","schema":{"description":"gaeldende eller historisk.","type":"string","enum":["gaeldende","historisk"]}},{"name":"ministerium","in":"query","required":false,"description":"En del af ministeriets navn.","schema":{"description":"En del af ministeriets navn.","type":"string","maxLength":200}},{"name":"hjemmel","in":"query","required":false,"description":"Kun retsakter udstedt med hjemmel i denne lov (ELI-link eller accessionsnummer): også i lovens tidligere og senere lovbekendtgørelser.","schema":{"description":"Kun retsakter udstedt med hjemmel i denne lov (ELI-link eller accessionsnummer): også i lovens tidligere og senere lovbekendtgørelser.","type":"string","minLength":3,"maxLength":200}},{"name":"lovnummer","in":"query","required":false,"description":"Nummeret, fx 434.","schema":{"description":"Nummeret, fx 434.","type":"integer","minimum":1,"maximum":99999}},{"name":"aar","in":"query","required":false,"description":"Året for nummeret, fx 2025.","schema":{"description":"Året for nummeret, fx 2025.","type":"integer","minimum":1800,"maximum":2100}},{"name":"fra_dato","in":"query","required":false,"description":"Dateret denne dag eller senere (ÅÅÅÅ-MM-DD).","schema":{"description":"Dateret denne dag eller senere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Dateret denne dag eller tidligere (ÅÅÅÅ-MM-DD).","schema":{"description":"Dateret denne dag eller tidligere (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Antal pr. side (standard 20, højst 100).","schema":{"default":20,"description":"Antal pr. side (standard 20, højst 100).","type":"integer","minimum":1,"maximum":100}},{"name":"naeste","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar (som naeste).","schema":{"description":"nextCursor fra forrige svar (som naeste).","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Hvert item har desuden type, status og status_navn (Gældende, Historisk), nummer, aar, populaer_titel, ministerium, ikraft, eli (url_original), accn og dokument_id (file:… til hent_dokument)."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/lifecycle":{"get":{"operationId":"lifecycle","summary":"Lovens livsforløb: én tidslinje på tværs af kilderne","description":"Ét af sag_id, sagsnummer (med periode), lovnummer med aar, eli, hoering_id eller kom. Svaret har ankeret som item og forloeb: EU-forslaget og regeringens notater, høringen over lovforslaget, Folketingets behandlinger, loven, lovbekendtgørelser og ændringslove, bekendtgørelser udstedt med hjemmel i loven og deres høringer, de direktiver loven gennemfører og kommunale dagsordenspunkter, der nævner loven; ældste først. Hvert trin har kobling {art, metode, sikkerhed, fra}: hvordan det er fundet, og hvor sikkert. Trin fra kilder, nøglen ikke må læse, er udeladt og nævnt i udeladt (ingen 403).","parameters":[{"name":"sag_id","in":"query","required":false,"description":"Folketingets sag (et lovforslag eller en KOM-sag), fx sag:69354.","schema":{"description":"Folketingets sag (et lovforslag eller en KOM-sag), fx sag:69354.","type":"string","pattern":"^(sag:)?\\d{1,10}$"}},{"name":"sagsnummer","in":"query","required":false,"description":"Lovforslagets eller KOM-sagens nummer, fx L 141 eller KOM (2020) 0823; samlingen må stå til sidst.","schema":{"description":"Lovforslagets eller KOM-sagens nummer, fx L 141 eller KOM (2020) 0823; samlingen må stå til sidst.","type":"string","minLength":1,"maxLength":60}},{"name":"periode","in":"query","required":false,"description":"Folketingsåret for sagsnummer: 20241 eller 2024-25.","schema":{"description":"Folketingsåret for sagsnummer: 20241 eller 2024-25.","type":"string","minLength":4,"maxLength":40}},{"name":"lovnummer","in":"query","required":false,"description":"Lovens nummer, fx 434.","schema":{"description":"Lovens nummer, fx 434.","type":"integer","minimum":1,"maximum":99999}},{"name":"aar","in":"query","required":false,"description":"Året for lovnummer, fx 2025.","schema":{"description":"Året for lovnummer, fx 2025.","type":"integer","minimum":1800,"maximum":2100}},{"name":"eli","in":"query","required":false,"description":"Retsaktens ELI-link eller accessionsnummer, fx https://www.retsinformation.dk/eli/lta/2025/434.","schema":{"description":"Retsaktens ELI-link eller accessionsnummer, fx https://www.retsinformation.dk/eli/lta/2025/434.","type":"string","minLength":3,"maxLength":200}},{"name":"hoering_id","in":"query","required":false,"description":"En høring på Høringsportalen, fx hoering:69896.","schema":{"description":"En høring på Høringsportalen, fx hoering:69896.","type":"string","pattern":"^(hoering:)?\\d{1,10}$"}},{"name":"kom","in":"query","required":false,"description":"EU-forslagets KOM-nummer, fx KOM (2020) 0823.","schema":{"description":"EU-forslagets KOM-nummer, fx KOM (2020) 0823.","type":"string","minLength":1,"maxLength":60}}],"responses":{"200":{"description":"`items` (ankeret), `forloeb` (trin: id, trin, trin_navn, titel, dato, kilde, kilde_navn, myndighed, url_original, kobling), `udeladt` ({kilde, kilde_navn, antal, besked}), `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Intet fundet med det angivne (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/eu-implementation":{"get":{"operationId":"euImplementation","summary":"EU-direktiver og deres gennemførelse i dansk ret","description":"De direktiver, som danske retsakter eller lovforslag nævner, med gennemfoert, gennemfoert_ved (de danske retsakter), lovforslag, kom_forslag og gennemfoerelsesfrist. Fristen er ikke i Rigsdatas data endnu (frist_mangler); status=mangler betyder, at ingen dansk gennemførelse er fundet, ikke at Danmark er forsinket.","parameters":[{"name":"status","in":"query","required":false,"description":"gennemfoert (en dansk retsakt gennemfører direktivet) eller mangler (ingen fundet).","schema":{"description":"gennemfoert (en dansk retsakt gennemfører direktivet) eller mangler (ingen fundet).","type":"string","enum":["mangler","gennemfoert"]}},{"name":"direktiv","in":"query","required":false,"description":"Direktivets nummer, fx 2022/2555 (NIS 2) eller 2014/24/EU.","schema":{"description":"Direktivets nummer, fx 2022/2555 (NIS 2) eller 2014/24/EU.","type":"string","minLength":4,"maxLength":60}},{"name":"q","in":"query","required":false,"description":"Ord i direktivets titel, fx NIS 2 eller cybersikkerhed.","schema":{"description":"Ord i direktivets titel, fx NIS 2 eller cybersikkerhed.","type":"string","maxLength":200}},{"name":"frist_fra","in":"query","required":false,"description":"Gennemførelsesfrist denne dag eller senere.","schema":{"description":"Gennemførelsesfrist denne dag eller senere.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"frist_til","in":"query","required":false,"description":"Gennemførelsesfrist denne dag eller tidligere.","schema":{"description":"Gennemførelsesfrist denne dag eller tidligere.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Antal pr. side (standard 20, højst 100).","schema":{"default":20,"description":"Antal pr. side (standard 20, højst 100).","type":"integer","minimum":1,"maximum":100}},{"name":"naeste","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"Envelope: `items` (hvert med id, kilde, kilde_navn, myndighed, titel, dato, dokumenttype, sagsnummer, url_original, hentet, uddrag, resume, status_tekst, side; en fil, et partis eller ministeriums side linker til, men som en anden har udgivet, har desuden linket_fra {navn, url_original}, og myndighed er udgiveren), `antal`, `filtre` (som anvendt), `nextCursor` og `besked` (\"Ingen dokumenter fundet …\" når items er tom; gentag den ordret). dato er ÅÅÅÅ-MM-DD eller et tidspunkt som 2026-10-19T09:30:00+02:00; hentet er et tidspunkt i dansk tid med UTC-offset. Plus udeladt og forklaring."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/deadlines":{"get":{"operationId":"listDeadlines","summary":"Frister og møder: høringsfrister, klagefrister, svarfrister, behandlinger, samråd og møder","description":"Kommende (eller valgte dages) frister og møder fra alle kilder i starttidens orden: Høringsportalens og kommunernes høringsfrister, kommunale klagefrister, ministerens frist for svar på udvalgets spørgsmål og udvalgets andre frister, 1.-3. behandling og samråd, møder i Folketingssalen og udvalgene, kommunale og regionale møder. Standard fra i dag og 30 dage frem; højst 400 dage ad gangen. En frist er en dag (heldag: true), et møde et tidspunkt i dansk tid. sager og hoeringer vælger bestemte sager og høringer; de andre filtre afgrænser. Samme filtre som en kalender (POST /v1/calendars).","parameters":[{"name":"typer","in":"query","required":false,"description":"Kommasepareret: hoeringsfrist, klagefrist, svarfrist, udvalgsfrist, behandling, samraad, folketingsmoede, udvalgsmoede, kommunalt_moede, regionalt_moede. Udelad for alle frister og møder.","schema":{"description":"Kommasepareret: hoeringsfrist, klagefrist, svarfrist, udvalgsfrist, behandling, samraad, folketingsmoede, udvalgsmoede, kommunalt_moede, regionalt_moede. Udelad for alle frister og møder.","type":"string","maxLength":400}},{"name":"kilder","in":"query","required":false,"description":"Kommasepareret: folketing, hoeringsportalen, kommuner, regioner. Udelad for alle.","schema":{"description":"Kommasepareret: folketing, hoeringsportalen, kommuner, regioner. Udelad for alle.","type":"string","maxLength":200}},{"name":"emne","in":"query","required":false,"description":"Ord i høringens titel eller beskrivelse, sagens titel eller resumé eller dagsordenspunkternes tekst; samme syntaks som soeg, fx energi eller \"grøn omstilling\".","schema":{"description":"Ord i høringens titel eller beskrivelse, sagens titel eller resumé eller dagsordenspunkternes tekst; samme syntaks som soeg, fx energi eller \"grøn omstilling\".","type":"string","maxLength":200}},{"name":"kommuner","in":"query","required":false,"description":"Kommasepareret kommunekoder, fx 101,751: kun disse kommuners frister og møder.","schema":{"description":"Kommasepareret kommunekoder, fx 101,751: kun disse kommuners frister og møder.","type":"string","maxLength":400}},{"name":"myndighed","in":"query","required":false,"description":"Del af myndighedens, udvalgets, kommunens eller regionens navn, fx Energistyrelsen.","schema":{"description":"Del af myndighedens, udvalgets, kommunens eller regionens navn, fx Energistyrelsen.","type":"string","maxLength":100}},{"name":"sager","in":"query","required":false,"description":"Kommasepareret sags-id'er (fra find_sag): kun disse sagers frister, behandlinger og møder.","schema":{"description":"Kommasepareret sags-id'er (fra find_sag): kun disse sagers frister, behandlinger og møder.","type":"string","maxLength":400}},{"name":"hoeringer","in":"query","required":false,"description":"Kommasepareret høringer, fx hoering:12,kommune_hoering:5: kun deres frister.","schema":{"description":"Kommasepareret høringer, fx hoering:12,kommune_hoering:5: kun deres frister.","type":"string","maxLength":600}},{"name":"dage","in":"query","required":false,"description":"Fra i dag og så mange dage frem (1–366, standard 30).","schema":{"description":"Fra i dag og så mange dage frem (1–366, standard 30).","type":"integer","minimum":1,"maximum":366}},{"name":"fra_dato","in":"query","required":false,"description":"Første dag (ÅÅÅÅ-MM-DD); standard i dag.","schema":{"description":"Første dag (ÅÅÅÅ-MM-DD); standard i dag.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Sidste dag (ÅÅÅÅ-MM-DD).","schema":{"description":"Sidste dag (ÅÅÅÅ-MM-DD).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Antal pr. side (1–100, standard 20).","schema":{"default":20,"description":"Antal pr. side (1–100, standard 20).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"Envelopen: `items` (hvert med id = det, begivenheden hører til: sag:…, hoering:…, kommune_hoering:…, dagsorden:…; titel som kalenderen viser den, myndighed, dato, url_original, plus type, type_navn, start, slut, heldag, status (aflyst, udsat eller null), uid (kalenderens UID) og beskrivelse), `antal`, `filtre`, `nextCursor` og `besked` (\"Ingen frister eller møder fundet …\" når items er tom)."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/calendars":{"get":{"operationId":"listCalendars","summary":"Kalendere: organisationens fristkalendere (en bruger ser sine egne)","parameters":[],"responses":{"200":{"description":"`items` (hvert med id, navn, filter, beskrivelse, noegle (adressens første tegn), oprettet, sidst_hentet, tilbagekaldt, aktiv), `antal`, `graense`, `brugt` og `besked`. Adressen vises aldrig her, kun ved oprettelsen."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}},"post":{"operationId":"createCalendar","summary":"Opret en fristkalender (ICS-abonnement)","description":"Kræver scope rigsdata:write for OAuth-tokens; API-nøgler må også. Kalenderen er en adresse (/cal/<token>.ics), som Outlook, Google Kalender og Apple Kalender abonnerer på; den viser 30 dage tilbage og 365 dage frem og opdateres af kalenderprogrammet. Adressen er i svaret én gang og gemmes ikke; alle med adressen kan se kalenderen. Abonnementet begrænser antallet af kalendere. En kalender tæller ikke som opslag, når den hentes. Med forhaandsvisning=true kontrolleres alt, men intet oprettes.","parameters":[{"name":"forhaandsvisning","in":"query","required":false,"description":"true: vis hvad der ville blive oprettet, uden at oprette det.","schema":{"description":"true: vis hvad der ville blive oprettet, uden at oprette det.","type":"string","enum":["true","false"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"navn":{"type":"string","minLength":1,"maxLength":100,"description":"Kalenderens navn, som kalenderprogrammet viser, fx 'Energi-høringer'."},"typer":{"description":"Kun disse typer: hoeringsfrist, klagefrist, svarfrist, udvalgsfrist, behandling, samraad, folketingsmoede, udvalgsmoede, kommunalt_moede, regionalt_moede. Udelad for alle.","maxItems":10,"type":"array","items":{"type":"string","enum":["hoeringsfrist","klagefrist","svarfrist","udvalgsfrist","behandling","samraad","folketingsmoede","udvalgsmoede","kommunalt_moede","regionalt_moede"]}},"kilder":{"description":"Kun disse kilder: folketing, hoeringsportalen, kommuner, regioner. Udelad for alle.","maxItems":4,"type":"array","items":{"type":"string","enum":["folketing","hoeringsportalen","kommuner","regioner"]}},"ord":{"description":"Ord (ord, match, udeluk): kun frister og møder om dem.","minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"ord":{"type":"string","minLength":1,"maxLength":200,"description":"Ordet, ordene eller sætningen, fx 'ladeinfrastruktur' eller 'grøn omstilling'."},"match":{"default":"ord","description":"Hvordan ordet skal matche: ord: ordet (alle bøjninger), starter_med: starter med, slutter_med: slutter med, indeholder: indeholder, saetning: præcis sætning, avanceret: avanceret søgning. Standard ord: ordet i alle bøjninger (flere ord: alle skal forekomme).","type":"string","enum":["ord","starter_med","slutter_med","indeholder","saetning","avanceret"]},"udeluk":{"default":false,"description":"true: dokumenter med dette ord udelades ('men ikke').","type":"boolean"}},"required":["ord"],"additionalProperties":false}},"alle_ord":{"description":"true: alle ordene skal forekomme.","type":"boolean"},"emne":{"description":"I stedet for ord: én søgning i soeg-syntaks.","type":"string","minLength":1,"maxLength":200},"kommuner":{"description":"Kommunekoder: kun disse kommuners frister og møder.","maxItems":50,"type":"array","items":{"type":"integer","minimum":1,"maximum":9999}},"myndigheder":{"description":"Dele af myndighedernes navne, fx 'Energistyrelsen' eller 'Sundhedsudvalget'.","maxItems":50,"type":"array","items":{"type":"string","minLength":2,"maxLength":100}},"sager":{"description":"Sags-id'er (find_sag): kun disse sagers frister, behandlinger og møder.","maxItems":50,"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":2147483647}},"hoeringer":{"description":"Høringer ('hoering:12', 'kommune_hoering:5'): kun deres frister.","maxItems":50,"type":"array","items":{"type":"string","maxLength":40}}},"required":["navn"],"additionalProperties":false}}}},"responses":{"200":{"description":"Med forhaandsvisning=true: `forhaandsvisning: true`, `oprettet: false`, `item`, `graense`, `brugt` og `besked`."},"201":{"description":"`item` (som i listen), `url` og `webcal_url` (kun denne ene gang) og `besked`."},"400":{"description":"Ugyldigt felt (`invalid_query`, `message`), eller nøglen er ikke knyttet til en bruger (`user_required`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Abonnementets grænse er nået (`calendar_limit`), tokenet mangler scope rigsdata:write (`insufficient_scope`), eller nøglen må ikke læse kilden (`key_source_restricted`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."}}}},"/v1/calendars/{id}":{"delete":{"operationId":"revokeCalendar","summary":"Tilbagekald en kalender: adressen holder op med at virke","parameters":[{"name":"id","in":"path","required":true,"description":"Kalenderens id fra listen.","schema":{"type":"string"}}],"responses":{"200":{"description":"`tilbagekaldt: true`, `id` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen kalender med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/dossiers":{"get":{"operationId":"listDossiers","summary":"Sagsmapper: organisationens fælles mapper for en sag eller et emne","description":"Sagsmapper deles af hele organisationen: alle medlemmer og nøgler ser de samme. OAuth-tokens kræver scope rigsdata:write; API-nøgler må også. En nøgle begrænset til nogle kilder ser og tilføjer kun elementer fra dem.","parameters":[{"name":"arkiverede","in":"query","required":false,"description":"true: vis de arkiverede sagsmapper i stedet for de aktive.","schema":{"description":"true: vis de arkiverede sagsmapper i stedet for de aktive.","type":"string","enum":["true","false"]}}],"responses":{"200":{"description":"`items` (hver med id, titel, beskrivelse, arkiveret, antal_items, nye (elementer tilføjet siden kalderen sidst markerede sagsmappen som læst, ikke dem kalderen selv tilføjede), oprettet og opdateret), `antal`, `graense` (abonnementets antal aktive sagsmapper), `brugt` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}},"post":{"operationId":"createDossier","summary":"Opret en sagsmappe, evt. med sager, høringer og dokumenter","description":"Sagsmapper deles af hele organisationen: alle medlemmer og nøgler ser de samme. OAuth-tokens kræver scope rigsdata:write; API-nøgler må også. En nøgle begrænset til nogle kilder ser og tilføjer kun elementer fra dem. items er id'er fra andre resultater; Rigsdata følger sagerne, høringerne og dagsordenspunkterne og lægger nye dokumenter, høringssvar, høringsnotater og referater i sagsmappen ca. hvert kvarter. Abonnementet begrænser antallet af aktive sagsmapper. Med forhaandsvisning=true kontrolleres alt, men intet oprettes (MCP-værktøjet sagsmappe gør sådan, indtil brugeren har bekræftet).","parameters":[{"name":"forhaandsvisning","in":"query","required":false,"description":"true: vis hvad der ville blive oprettet, uden at oprette det.","schema":{"description":"true: vis hvad der ville blive oprettet, uden at oprette det.","type":"string","enum":["true","false"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"titel":{"type":"string","minLength":1,"maxLength":200,"description":"Sagsmappens titel, fx 'L 35 Klimaloven' eller 'Lokalplan for Nordhavn'."},"beskrivelse":{"type":"string","maxLength":2000,"description":"Hvad sagsmappen handler om (valgfri)."},"items":{"default":[],"description":"Sager, høringer, punkter og dokumenter at starte med (id'er, højst 50).","maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":120,"description":"Id'et fra et andet værktøjs eller endpoints resultat: sag:<id>, hoering:<id>, kommune_hoering:<id>, file:<id>, punkt:<kommuner|regioner>:<id> eller dagsorden:<kommuner|regioner>:<id>."}}},"required":["titel"],"additionalProperties":false}}}},"responses":{"200":{"description":"Med forhaandsvisning=true: `forhaandsvisning: true`, `oprettet: false`, `item`, `graense`, `brugt` og `besked` med det, brugeren skal bekræfte."},"201":{"description":"`item` (som i listen) og `besked`."},"400":{"description":"Ugyldigt felt (`invalid_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Abonnementets grænse er nået (`dossier_limit`, `graense`, `brugt`, `besked`), scope mangler, eller nøglen må ikke læse kilden."},"404":{"description":"Et id i items findes ikke (`not_found`, `ukendte`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."}}}},"/v1/dossiers/{id}":{"get":{"operationId":"getDossier","summary":"Én sagsmappe med status, noter og de nyeste elementer","description":"status er sammensat automatisk og uden sprogmodel: tekst (en kort opsummering), opdateret, sager (hver fulgt sag, høring og dagsordenspunkt med seneste status_tekst og resume fra Rigsdatas resuméer af de offentlige dokumenter), tidslinje (de nyeste elementer efter deres egen dato, med begivenhed) og typer (antal pr. slags).","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}}],"responses":{"200":{"description":"`item` (id, titel, beskrivelse, arkiveret, antal_items, nye (elementer tilføjet siden kalderen sidst markerede sagsmappen som læst, ikke dem kalderen selv tilføjede), oprettet og opdateret), `status`, `noter` (id, tekst, forfatter, oprettet), `typer`, `items` (de 50 nyeste, hver med envelopens felter (id: sag:…, hoering:…, file:…, punkt:<kilde>:…, dagsorden:<kilde>:…; kilde, kilde_navn, titel, myndighed, dato, dokumenttype, url_original, resume og status_tekst fra resuméerne) plus item_id, tilfoejet_af (manuel eller automatisk), begivenhed (fx Høringsnotat, Referat, Nyt dokument på sagen), via (sagen eller høringen den kom fra), note, fastgjort og tilfoejet), `nextCursor` (til /items) og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}},"patch":{"operationId":"updateDossier","summary":"Omdøb, beskriv, arkivér eller genåbn en sagsmappe","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"titel":{"type":"string","minLength":1,"maxLength":200,"description":"Sagsmappens titel, fx 'L 35 Klimaloven' eller 'Lokalplan for Nordhavn'."},"beskrivelse":{"nullable":true,"type":"string","maxLength":2000,"description":"Hvad sagsmappen handler om (valgfri)."},"arkiveret":{"description":"true arkiverer (følges ikke længere, tæller ikke i abonnementet), false genåbner.","type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"`item` og `besked`."},"400":{"description":"Intet felt eller ugyldigt felt."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Genåbning ville overskride abonnementets grænse (`dossier_limit`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."}}},"delete":{"operationId":"deleteDossier","summary":"Slet en sagsmappe med elementer og noter","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}}],"responses":{"200":{"description":"`slettet: true`, `id` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/dossiers/{id}/items":{"get":{"operationId":"listDossierItems","summary":"Sagsmappens elementer, nyeste først","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Kun én slags: sag, hoering, kommune_hoering, punkt, dagsorden, file (dokumenter) eller andet.","schema":{"description":"Kun én slags: sag, hoering, kommune_hoering, punkt, dagsorden, file (dokumenter) eller andet.","type":"string","enum":["sag","hoering","kommune_hoering","punkt","dagsorden","file","aendring","andet"]}},{"name":"limit","in":"query","required":false,"description":"Antal elementer pr. side (1–100, standard 20).","schema":{"default":20,"description":"Antal elementer pr. side (1–100, standard 20).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"`items` (hver med envelopens felter (id: sag:…, hoering:…, file:…, punkt:<kilde>:…, dagsorden:<kilde>:…; kilde, kilde_navn, titel, myndighed, dato, dokumenttype, url_original, resume og status_tekst fra resuméerne) plus item_id, tilfoejet_af (manuel eller automatisk), begivenhed (fx Høringsnotat, Referat, Nyt dokument på sagen), via (sagen eller høringen den kom fra), note, fastgjort og tilfoejet), `antal`, `filtre`, `nextCursor` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}},"post":{"operationId":"addDossierItem","summary":"Læg en sag, høring, et dagsordenspunkt eller et dokument i sagsmappen","description":"ref er id'et fra et andet resultat. Sager, høringer og dagsordenspunkter følges derefter automatisk.","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ref":{"type":"string","minLength":1,"maxLength":120,"description":"Id'et fra et andet værktøjs eller endpoints resultat: sag:<id>, hoering:<id>, kommune_hoering:<id>, file:<id>, punkt:<kommuner|regioner>:<id> eller dagsorden:<kommuner|regioner>:<id>."},"note":{"description":"En kort note til elementet (valgfri).","type":"string","maxLength":1000},"fastgjort":{"description":"true: vis elementet øverst.","type":"boolean"}},"required":["ref"],"additionalProperties":false}}}},"responses":{"201":{"description":"`item` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe, eller Rigsdata kender ikke id'et (`not_found`)."},"409":{"description":"Allerede i sagsmappen (`already_added`), sagsmappen er fuld (`dossier_full`) eller arkiveret (`dossier_archived`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/dossiers/{id}/items/{itemId}":{"patch":{"operationId":"updateDossierItem","summary":"Ret et elements note, eller fastgør det","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}},{"name":"itemId","in":"path","required":true,"description":"item_id fra elementet.","schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"description":"Elementets note; null eller tom fjerner den.","nullable":true,"type":"string","maxLength":1000},"fastgjort":{"description":"true fastgør, false løsner.","type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"`item` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}},"delete":{"operationId":"deleteDossierItem","summary":"Fjern et element fra sagsmappen","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}},{"name":"itemId","in":"path","required":true,"description":"item_id fra elementet.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"`slettet: true`, `id` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/dossiers/{id}/noter":{"post":{"operationId":"addDossierNote","summary":"Skriv en note i sagsmappen (organisationens egne noter)","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tekst":{"type":"string","minLength":1,"maxLength":4000,"description":"Notens tekst (højst 4 000 tegn). Noter er organisationens egne."}},"required":["tekst"],"additionalProperties":false}}}},"responses":{"201":{"description":"`item` (id, tekst, forfatter, oprettet) og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"409":{"description":"Sagsmappen har det højeste antal noter (`note_limit`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/dossiers/{id}/noter/{noteId}":{"delete":{"operationId":"deleteDossierNote","summary":"Slet en note","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}},{"name":"noteId","in":"path","required":true,"description":"Notens id.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"`slettet: true`, `id` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/dossiers/{id}/nyt":{"get":{"operationId":"dossierNews","summary":"Nyt siden sidst: elementer tilføjet efter kalderens læst-markering","description":"For et OAuth-token tokenets bruger (elementer brugeren selv har tilføjet tæller ikke), for en API-nøgle nøglen. Uden markering: alle elementer. Ændrer intet; markér med POST …/nyt/laest.","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Antal nye elementer pr. side (1–100, standard 20).","schema":{"default":20,"description":"Antal nye elementer pr. side (1–100, standard 20).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"description":"nextCursor fra forrige svar.","schema":{"description":"nextCursor fra forrige svar.","type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"`items` (hver med envelopens felter (id: sag:…, hoering:…, file:…, punkt:<kilde>:…, dagsorden:<kilde>:…; kilde, kilde_navn, titel, myndighed, dato, dokumenttype, url_original, resume og status_tekst fra resuméerne) plus item_id, tilfoejet_af (manuel eller automatisk), begivenhed (fx Høringsnotat, Referat, Nyt dokument på sagen), via (sagen eller høringen den kom fra), note, fastgjort og tilfoejet), `antal`, `siden` (markeringens tidspunkt eller null), `nextCursor` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/dossiers/{id}/nyt/laest":{"post":{"operationId":"markDossierRead","summary":"Markér sagsmappen som læst nu","parameters":[{"name":"id","in":"path","required":true,"description":"Sagsmappens id fra listen.","schema":{"type":"string"}}],"responses":{"200":{"description":"`laest` (tidspunktet) og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen sagsmappe med det id (`not_found`, `besked`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/coverage":{"get":{"operationId":"coverage","summary":"Dækning: hvad hver kilde dækker, hvor friskt og kendte huller","parameters":[{"name":"detaljer","in":"query","required":false,"description":"true: også synkroniseringsdetaljer, afstemning mod kilden og listen over kommuner, regioner, ministerier, styrelser og partier med deres dækning. Standard: et kort overblik pr. kilde.","schema":{"description":"true: også synkroniseringsdetaljer, afstemning mod kilden og listen over kommuner, regioner, ministerier, styrelser og partier med deres dækning. Standard: et kort overblik pr. kilde.","type":"string","enum":["true","false"]}},{"name":"kilde","in":"query","required":false,"description":"Kun denne kilde, fx kommuner.","schema":{"description":"Kun denne kilde, fx kommuner.","type":"string","enum":["folketing","hoeringsportalen","kommuner","regioner","ministerier","styrelser","parties","retsinformation","rigsrevisionen","ministerkalender","plandata","udbud","naevn","valg","newsletters"]}}],"responses":{"200":{"description":"`kilder`: pr. kilde dokumenter (filer med tekst), poster (sager, møder, punkter, artikler osv., som også kan søges), tidligste og seneste dato, senest hentet og synkroniseret, aktuel, tekst_mangler (dokumenter hvis tekst endnu ikke er hentet, er blokeret eller ikke kunne læses), enheder (kommuner, regioner, ministerier, styrelser og partier dækket helt, delvist eller ikke) og kendte_huller. Med detaljer=true også synkroniseringsfejl (antal), afstemning mod kilden og enhedsliste."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/attest/{id}":{"get":{"operationId":"getAttest","summary":"Dækningsattest for et tidligere svar","description":"Attesten for et svar med `daekning`: hvad der blev søgt (handling og parametre, som i organisationens audit-log), hvornår, antal resultater og de første resultat-id'er, og dækningen som den var dengang (`daekning`, `enhedsliste`, `opgoerelser`). Kun for organisationens egne nøgler og tokens; gemmes i 12 måneder.","parameters":[{"name":"id","in":"path","required":true,"description":"attest_id fra svaret eller headeren X-Rigsdata-Attest.","schema":{"type":"string","pattern":"^[0-9A-Za-z]{22}$"}}],"responses":{"200":{"description":"`attest_id`, `attest_url`, `tidspunkt`, `handling`, `type`, `kanal`, `klient`, `parametre`, `antal_resultater`, `resultat_ids`, `status`, `daekning` (se Daekning), `enhedsliste` (alle enheder i de omfattede kilder), `opgoerelser` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Ingen attest med det id i organisationen (`not_found`), eller den er ikke gemt endnu (`attest_not_ready`, med Retry-After)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/statistics/answers":{"get":{"operationId":"statisticsAnswers","summary":"Svartider: hvor hurtigt ministrene svarer på Folketingets spørgsmål","description":"Skriftlige spørgsmål (§ 20, udvalgsspørgsmål og spørgsmål til lovforslag; ikke samråds- og spørgetimespørgsmål) med frist, svar og forsinkelse, beregnet af Rigsdata ud fra Folketingets åbne data efter hver synkronisering. Folketinget gemmer ingen svarfrist; fristen er reglen (§ 20: 6 hverdage, udvalgsspørgsmål: 4 uger, lovforslag: 4 uger eller lovforslagets svarfrist). Definitionerne står i svarets `definitioner`. `minister` og `spoerger` tager kun navne på folketingsmedlemmer og ministre (ADR 0018). Kilde: Folketinget.","parameters":[{"name":"minister","in":"query","required":false,"description":"Ministerens navn (en person, der har haft en ministerpost), fx Mette Frederiksen.","schema":{"description":"Ministerens navn (en person, der har haft en ministerpost), fx Mette Frederiksen.","type":"string","minLength":1,"maxLength":100}},{"name":"ministerium","in":"query","required":false,"description":"Tekst i ministertitlen, fx beskæftigelses eller udenrigsministeren.","schema":{"description":"Tekst i ministertitlen, fx beskæftigelses eller udenrigsministeren.","type":"string","minLength":1,"maxLength":100}},{"name":"udvalg","in":"query","required":false,"description":"Udvalgets forkortelse (BEU) eller tekst i navnet (Beskæftigelsesudvalget).","schema":{"description":"Udvalgets forkortelse (BEU) eller tekst i navnet (Beskæftigelsesudvalget).","type":"string","minLength":1,"maxLength":100}},{"name":"spoerger","in":"query","required":false,"description":"Navnet på det folketingsmedlem, der stillede spørgsmålet.","schema":{"description":"Navnet på det folketingsmedlem, der stillede spørgsmålet.","type":"string","minLength":1,"maxLength":100}},{"name":"parti","in":"query","required":false,"description":"Spørgerens parti den dag, spørgsmålet blev stillet: forkortelse (V, S, SF) eller navn.","schema":{"description":"Spørgerens parti den dag, spørgsmålet blev stillet: forkortelse (V, S, SF) eller navn.","type":"string","minLength":1,"maxLength":100}},{"name":"art","in":"query","required":false,"description":"Kommasepareret: paragraf20, udvalg (udvalgsspørgsmål) og/eller lovforslag.","schema":{"description":"Kommasepareret: paragraf20, udvalg (udvalgsspørgsmål) og/eller lovforslag.","type":"string","minLength":1,"maxLength":60}},{"name":"fra_dato","in":"query","required":false,"description":"Spørgsmål stillet denne dag eller senere (standard: for et år siden).","schema":{"description":"Spørgsmål stillet denne dag eller senere (standard: for et år siden).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Spørgsmål stillet denne dag eller tidligere.","schema":{"description":"Spørgsmål stillet denne dag eller tidligere.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"status","in":"query","required":false,"description":"aaben (ubesvaret), overskredet (besvaret for sent eller ubesvaret efter fristen) eller besvaret.","schema":{"description":"aaben (ubesvaret), overskredet (besvaret for sent eller ubesvaret efter fristen) eller besvaret.","type":"string","enum":["aaben","overskredet","besvaret"]}},{"name":"gruppering","in":"query","required":false,"description":"Tal også pr. ministertitel, pr. minister eller pr. måned (grupper).","schema":{"description":"Tal også pr. ministertitel, pr. minister eller pr. måned (grupper).","type":"string","enum":["ministerium","minister","maaned"]}},{"name":"limit","in":"query","required":false,"description":"Spørgsmål i listen pr. side (standard 20, højst 100).","schema":{"default":20,"description":"Spørgsmål i listen pr. side (standard 20, højst 100).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":512}},{"name":"format","in":"query","required":false,"description":"csv eller xlsx: svaret er en fil med rutens rækker (højst 1.000; brug POST /v1/exports for flere) i stedet for JSON. Samme filtre, kilder og rækkefølge som JSON-svaret; ét opslag pr. påbegyndte 100 rækker. Headerne X-Rigsdata-Raekker, X-Rigsdata-Afkortet og X-Rigsdata-Opslag siger antal rækker, om ruten havde flere, og forbruget.","schema":{"type":"string","enum":["csv","xlsx"]}},{"name":"separator","in":"query","required":false,"description":"Med format=csv: semikolon (standard, dansk Excel) eller komma.","schema":{"type":"string","enum":["semikolon","komma"]}}],"responses":{"200":{"description":"`aggregater` (antal, besvaret, aabne, bortfaldet, median_dage, p90_dage, andel_overskredet, andel_overskredet_uden_udsaettelse, andel_udsat, aabne_over_frist), `grupper` (samme tal pr. ministertitel, minister eller måned, når gruppering er givet; højst 50), `items` (spørgsmålene, nyeste først, som envelope-items med art, nummer, stillet, frist, frist_kilde, besvaret, dage, dage_over_frist, status: besvaret/aaben/bortfaldet, overskredet, udsat, foreloebigt_svar, svar {id, url_original}, ministertitel, minister {navn, url_original}, spoerger {navn, parti, url_original}, udvalg {navn, url_original} og sag_id), `antal`, `filtre`, `nextCursor`, `besked`, `beregnet` (hvornår tallene sidst blev beregnet) og `definitioner`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`) eller et navn, der passer på flere personer (`ambiguous_person` med `besked` og `kandidater`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."}}}},"/v1/statistics/votes":{"get":{"operationId":"statisticsVotes","summary":"Afstemninger: partiernes samhold, enighed mellem partier og afvigere","description":"Partiernes linje i hver afstemning i Folketingssalen, beregnet af Rigsdata ud fra Folketingets åbne data: et medlem tælles med det parti, medlemmet var med i den dag, der blev stemt. Fravær tæller ikke med i samhold og er aldrig en afvigelse. Definitionerne står i svarets `definitioner`. `person` tager kun navne på folketingsmedlemmer (ADR 0018). Kilde: Folketinget.","parameters":[{"name":"visning","in":"query","required":false,"description":"samhold (pr. parti), enighed (partipar), afvigere (medlemmer, der stemte imod partiets linje) eller afstemninger (listen).","schema":{"default":"samhold","description":"samhold (pr. parti), enighed (partipar), afvigere (medlemmer, der stemte imod partiets linje) eller afstemninger (listen).","type":"string","enum":["samhold","enighed","afvigere","afstemninger"]}},{"name":"parti","in":"query","required":false,"description":"Partiets forkortelse (V, S, SF) eller navn.","schema":{"description":"Partiets forkortelse (V, S, SF) eller navn.","type":"string","minLength":1,"maxLength":100}},{"name":"person","in":"query","required":false,"description":"Et folketingsmedlems navn (visning afvigere eller afstemninger).","schema":{"description":"Et folketingsmedlems navn (visning afvigere eller afstemninger).","type":"string","minLength":1,"maxLength":100}},{"name":"emne","in":"query","required":false,"description":"Ord i sagens titel eller resumé, eller et af Folketingets emneord, fx klima. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","schema":{"description":"Ord i sagens titel eller resumé, eller et af Folketingets emneord, fx klima. Forstår søgesyntaksen fra /v1/search: \"eksakt frase\", ord*, ord~, -ord og OR med store bogstaver, fx elbil OR ladestander; en ugyldig søgning giver invalid_query. Småord (og, om, for …) udelades, og NIS2 finder også NIS 2. Almindelige ord skal alle findes; finder de intet på første side, søges der bredere som i /v1/search (nogle af ordene, flest først, sammensatte ord delt, stavevarianter), filtre.emne_bredere er true, og besked siger det; tolkning siger, hvordan søgningen blev læst.","type":"string","minLength":1,"maxLength":200}},{"name":"sag_id","in":"query","required":false,"description":"Kun afstemninger i denne sag (sag:<id>).","schema":{"description":"Kun afstemninger i denne sag (sag:<id>).","type":"string","pattern":"^(sag:)?\\d{1,10}$"}},{"name":"fra_dato","in":"query","required":false,"description":"Afstemninger denne dag eller senere (standard: for et år siden).","schema":{"description":"Afstemninger denne dag eller senere (standard: for et år siden).","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Afstemninger denne dag eller tidligere.","schema":{"description":"Afstemninger denne dag eller tidligere.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"limit","in":"query","required":false,"description":"Rækker pr. side (standard 20, højst 100).","schema":{"default":20,"description":"Rækker pr. side (standard 20, højst 100).","type":"integer","minimum":1,"maximum":100}},{"name":"after","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":512}}],"responses":{"200":{"description":"`visning` og `items`: samhold [{parti, parti_navn, afstemninger, samhold, helt_enige_afstemninger, afgivne_stemmer, fravaer_andel}]; enighed [{parti_a, parti_b, faelles_afstemninger, enige, enighed}]; afvigere [{person {navn, url_original}, partier, afvigelser, afgivne_stemmer, andel_afvigelser}] (side efter side med nextCursor); afstemninger [{id, dato, nummer, type, vedtaget, sag_id, sagsnummer, sag_titel, url_original, partier [{parti, linje, for, imod, hverken, fravaer}], med person også person_stemme, person_parti og afviger}] (nyeste først, nextCursor). Desuden `antal`, `filtre`, `besked`, `beregnet` og `definitioner`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`) eller et navn, der passer på flere personer (`ambiguous_person` med `besked` og `kandidater`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."}}}},"/v1/trends":{"get":{"operationId":"trends","summary":"Tendenser: ord og emner, der er stigende på tværs af kilderne","description":"De ord og udtryk, der nævnes i markant flere dokumenter end normalt: seneste hele uge (periode=uge) eller fire uger (maaned) mod gennemsnittet i de 12 uger før. Tællingen dækker titler og starten af teksten i alle dokumenter og poster; et ord i mere end 10 % af en kildes dokumenter er standardtekst og udeladt. En nøgle begrænset til nogle kilder ser kun tal fra dem. Listerne beregnes hver nat.","parameters":[{"name":"periode","in":"query","required":false,"description":"uge: seneste hele uge mod de 12 uger før; maaned: seneste fire hele uger mod de 12 uger før.","schema":{"default":"uge","description":"uge: seneste hele uge mod de 12 uger før; maaned: seneste fire hele uger mod de 12 uger før.","type":"string","enum":["uge","maaned"]}},{"name":"kilder","in":"query","required":false,"description":"Kun disse kilder, kommasepareret: folketing, hoeringsportalen, kommuner, regioner, ministerier, styrelser, parties, newsletters.","schema":{"description":"Kun disse kilder, kommasepareret: folketing, hoeringsportalen, kommuner, regioner, ministerier, styrelser, parties, newsletters.","type":"string","maxLength":200,"pattern":"^[a-z0-9_,\\s-]*$"}},{"name":"myndighed","in":"query","required":false,"description":"Kun denne myndighed, skrevet som i resultaterne, fx 'Miljøstyrelsen' eller 'Aarhus'.","schema":{"description":"Kun denne myndighed, skrevet som i resultaterne, fx 'Miljøstyrelsen' eller 'Aarhus'.","type":"string","minLength":1,"maxLength":200}},{"name":"kommune","in":"query","required":false,"description":"Kun denne kommune: navn (Aarhus) eller kode (751). Gælder kilden kommuner.","schema":{"description":"Kun denne kommune: navn (Aarhus) eller kode (751). Gælder kilden kommuner.","type":"string","minLength":1,"maxLength":100}},{"name":"emne","in":"query","required":false,"description":"Kun ord, der indeholder dette ord (bøjningsformer og sammensætninger), fx 'klima'.","schema":{"description":"Kun ord, der indeholder dette ord (bøjningsformer og sammensætninger), fx 'klima'.","type":"string","minLength":1,"maxLength":100}},{"name":"antal","in":"query","required":false,"description":"Antal ord (1–50).","schema":{"default":20,"description":"Antal ord (1–50).","type":"integer","minimum":1,"maximum":50}},{"name":"min_bredde","in":"query","required":false,"description":"Mindst så mange forskellige myndigheder (standard 2; 1 med myndighed eller kommune).","schema":{"description":"Mindst så mange forskellige myndigheder (standard 2; 1 med myndighed eller kommune).","type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"`periode` (type, fra, til, basis_fra, basis_til, beregnet), `items` (term, noegle, type: ord, akronym, eu, lov eller navn; antal, basis, faktor, ny, score, bredde, bredde_basis, myndigheder, kilder med antal pr. kilde, eksempler: op til tre dokumenter i envelope-form med url_original), `antal`, `filtre`, `forklaring` og `besked` (når listen er tom)."},"400":{"description":"Ugyldig parameter, ukendt kilde eller kommune (`invalid_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/trends/term":{"get":{"operationId":"trendTerm","summary":"Ét ords udvikling over tid, pr. uge eller måned, fordelt på kilder og myndigheder","parameters":[{"name":"term","in":"query","required":true,"description":"Ordet eller udtrykket, fx 'NIS2', 'klimatilpasning' eller '(EU) 2022/2555'.","schema":{"type":"string","minLength":1,"maxLength":100,"description":"Ordet eller udtrykket, fx 'NIS2', 'klimatilpasning' eller '(EU) 2022/2555'."}},{"name":"fra_dato","in":"query","required":false,"description":"Fra denne dag (ÅÅÅÅ-MM-DD). Standard: et år tilbage.","schema":{"description":"Fra denne dag (ÅÅÅÅ-MM-DD). Standard: et år tilbage.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"til_dato","in":"query","required":false,"description":"Til denne dag (ÅÅÅÅ-MM-DD). Standard: i dag.","schema":{"description":"Til denne dag (ÅÅÅÅ-MM-DD). Standard: i dag.","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"gruppering","in":"query","required":false,"description":"Én værdi pr. uge eller pr. måned (en uge hører til måneden for dens torsdag).","schema":{"default":"maaned","description":"Én værdi pr. uge eller pr. måned (en uge hører til måneden for dens torsdag).","type":"string","enum":["uge","maaned"]}},{"name":"kilder","in":"query","required":false,"description":"Kun disse kilder, kommasepareret: folketing, hoeringsportalen, kommuner, regioner, ministerier, styrelser, parties, newsletters.","schema":{"description":"Kun disse kilder, kommasepareret: folketing, hoeringsportalen, kommuner, regioner, ministerier, styrelser, parties, newsletters.","type":"string","maxLength":200,"pattern":"^[a-z0-9_,\\s-]*$"}}],"responses":{"200":{"description":"`term`, `noegle`, `type`, `gruppering`, `punkter` (fra, antal, bredde, dokumenter_i_alt), `antal_i_alt`, `kilder` (antal pr. kilde), `myndigheder` (de 20 med flest), `filtre`, `forklaring` og `besked` (når ordet ikke er fundet)."},"400":{"description":"Ugyldig dato, for langt interval eller kun fyldord (`invalid_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/exports":{"get":{"operationId":"listExports","summary":"Udtræk: organisationens filer (en bruger ser sine egne)","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"after","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"`items` (nyeste først, hvert med id, type, beskrivelse, parametre, format, status (i_koe, koerer, faerdig, fejlet, udloebet), status_navn, raekker, forventede_raekker, forventede_raekker_praecist, max_raekker, afkortet, bytes, opslag, besked (hvorfor et udtræk fejlede eller stoppede før tid), oprettet, faerdig, udloeber, download_url (siden i kundeportalen, som brugeren kan åbne) og api_download (stien til filen for API-kald, når den er klar)), `antal`, `nextCursor` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}},"post":{"operationId":"createExport","summary":"Start et udtræk af en liste som CSV eller Excel","description":"Kører rutens egen forespørgsel side for side med de samme parametre, kilder og rækkefølge som et almindeligt kald og skriver rækkerne til en fil, der kan hentes i 7 dage. Første side køres med det samme: forkerte parametre giver 400 nu, og svaret siger, hvor mange rækker og opslag udtrækket giver. Koster det mere end 10 opslag (eller kan det), oprettes intet uden bekraeftet: true; svaret er da en forhåndsvisning (oprettet: false). Med forhaandsvisning=true oprettes aldrig noget. Højst 3 udtræk i gang pr. organisation.","parameters":[{"name":"forhaandsvisning","in":"query","required":false,"description":"true: tjek og beregn, men opret intet.","schema":{"type":"string","enum":["true","false"]}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","maxLength":60,"description":"Hvad der eksporteres, med samme navn som MCP-værktøjet: soeg, hoeringer, kommunale_beslutninger, folketingets_dokumenter, sager, find_sag, dagsorden, aendringer, hoeringsparter, udtalelser, retsakter, sammenlign_kommuner, kommunal_aabenhed, frister, svartider, lovprogram (eller rutens navn, fx hearings)."},"parametre":{"default":{},"description":"Rutens egne parametre, som ved et almindeligt kald (fx emne, myndighed, fra_dato). limit og after sættes af udtrækket.","type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":500},{"type":"number"},{"type":"boolean"},{"maxItems":50,"type":"array","items":{"anyOf":[{"type":"string","maxLength":200},{"type":"number"}]}}]}},"format":{"default":"xlsx","description":"xlsx (Excel, standard) eller csv.","type":"string","enum":["csv","xlsx"]},"separator":{"default":"semikolon","description":"CSV: semikolon (standard, dansk Excel) eller komma.","type":"string","enum":["semikolon","komma"]},"max_raekker":{"description":"Højst så mange rækker (begrænser også forbruget).","type":"integer","minimum":1,"maximum":1000000},"bekraeftet":{"default":false,"description":"true: opret udtrækket, også når det koster mere end grænsen for bekræftelse.","type":"boolean"}},"required":["type"],"additionalProperties":false},"examples":{"beslutninger":{"summary":"Alle kommunale beslutninger om miljøzoner siden 2024 som Excel","value":{"type":"kommunale_beslutninger","parametre":{"emne":"miljøzone","fra_dato":"2024-01-01","kun_beslutninger":true},"format":"xlsx"}},"spoergsmaal":{"summary":"Folketingets spørgsmål i en periode som CSV","value":{"type":"folketingets_dokumenter","parametre":{"spoergsmaal":"alle","fra_dato":"2025-10-01"},"format":"csv","bekraeftet":true}}}}}},"responses":{"200":{"description":"Intet oprettet: `oprettet: false`, `forhaandsvisning`, `forventede_raekker` (`forventede_raekker_praecist`), `opslag`, `opslag_hoejst`, `kraever_bekraeftelse` og `besked` til brugeren."},"202":{"description":"Oprettet: `oprettet: true`, `item` (id, type, beskrivelse, parametre, format, status (i_koe, koerer, faerdig, fejlet, udloebet), status_navn, raekker, forventede_raekker, forventede_raekker_praecist, max_raekker, afkortet, bytes, opslag, besked (hvorfor et udtræk fejlede eller stoppede før tid), oprettet, faerdig, udloeber, download_url (siden i kundeportalen, som brugeren kan åbne) og api_download (stien til filen for API-kald, når den er klar)), `opslag` og `besked`."},"400":{"description":"Ukendt type eller parametre, ruten afviser (`invalid_query`, `message`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse kilden (`key_source_restricted`), eller abonnementet omfatter ikke udtræk (`export_not_in_plan`)."},"429":{"description":"For mange udtræk i gang (`export_busy`), eller kaldet er over grænsen."},"503":{"description":"Udtræk som fil er ikke tilgængeligt (`export_unavailable`)."}}}},"/v1/exports/{id}":{"get":{"operationId":"getExport","summary":"Ét udtræk og dets status","parameters":[{"name":"id","in":"path","required":true,"description":"Udtrækkets id.","schema":{"type":"string"}}],"responses":{"200":{"description":"`item`: id, type, beskrivelse, parametre, format, status (i_koe, koerer, faerdig, fejlet, udloebet), status_navn, raekker, forventede_raekker, forventede_raekker_praecist, max_raekker, afkortet, bytes, opslag, besked (hvorfor et udtræk fejlede eller stoppede før tid), oprettet, faerdig, udloeber, download_url (siden i kundeportalen, som brugeren kan åbne) og api_download (stien til filen for API-kald, når den er klar)."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Intet udtræk med det id (`not_found`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}},"delete":{"operationId":"deleteExport","summary":"Slet et udtræk og dets fil","parameters":[{"name":"id","in":"path","required":true,"description":"Udtrækkets id.","schema":{"type":"string"}}],"responses":{"200":{"description":"`slettet: true`, `id` og `besked`."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Intet udtræk med det id (`not_found`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}},"/v1/exports/{id}/download":{"get":{"operationId":"downloadExport","summary":"Hent filen (CSV eller XLSX)","parameters":[{"name":"id","in":"path","required":true,"description":"Udtrækkets id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Filen: CSV i UTF-8 med BOM og semikolon (eller komma), eller XLSX. Kolonnerne er envelopens feltnavne; url_original er altid med."},"400":{"description":"Ugyldig request (`invalid_query`, `invalid_cursor`, `missing_query`)."},"401":{"description":"Mangler eller ugyldig API-nøgle eller access token (`missing_api_key`, `invalid_api_key`, `key_expired`, `key_disabled`, `invalid_token`)."},"403":{"description":"Nøglen må ikke læse den kilde (`key_source_restricted`), eller tokenet mangler scope (`insufficient_scope`)."},"404":{"description":"Intet udtræk med det id (`not_found`)."},"409":{"description":"Udtrækket er ikke færdigt, eller det fejlede (`not_ready`, `besked`)."},"410":{"description":"Filen er udløbet og slettet (`gone`)."},"429":{"description":"For mange kald (`rate_limited`), for mange forespørgsler i gang på samme tid fra organisationen (`too_many_concurrent`, prøv igen efter `Retry-After`) eller periodens opslag er brugt (`quota_exceeded`)."},"503":{"description":"Forespørgslen tog for lang tid og blev stoppet (`query_timeout`, `besked` siger hvordan den kan gøres smallere), eller nøglekontrollen er utilgængelig (`auth_unavailable`). Prøv igen efter `Retry-After`."}}}}}}