{"openapi":"3.1.0","info":{"title":"Grundfast API","version":"0.1.0","description":"REST over Datafordeler — BBR ejendom (BFE-keyed), Matriklen, DAGI, DHM, Stednavne, DAR address resolution, and CVR company lookup; translated kodelister, WGS84 geometry, and a property-keyed batch. The address surface resolves a DAR UUID to an address; CVR resolves an 8-digit CVR number to a company record (no personal CVRPerson entity; a sole proprietor’s company data is itself personal — see reklamebeskyttet)."},"servers":[{"url":"https://api.grundfast.dk"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key. A gf_live_… key hits real data, counts against your tier allowance and bills overage. A gf_test_… key is a sandbox: same real data, but never billed, capped at a separate monthly allowance, and flagged on every response with X-Grundfast-Environment: test. Both are SECRET keys: keep them on a server."},"publicKey":{"type":"apiKey","in":"query","name":"token","description":"A public (publishable) key, gf_pub_live_… or gf_pub_test_…, made to sit in a web page so a browser can call the address autocomplete directly — no server proxy. Sent as `?token=` (no CORS preflight) or as `Authorization: Bearer`. It only answers when the request’s Origin (else Referer) matches one of the key’s allowed origins (exact host, or `*.example.dk` for subdomains), only on the operations that list this scheme (GET, address search/autocomplete/lookup, datavask, postnumre), and with a per-IP limit per key on top of the plan’s burst limit. Anything else is a 403 (origin_not_allowed / public_key_scope in GET /v1/errors). Metered and billed like any key. Create one under Nøgler in the dashboard."},"queryToken":{"type":"apiKey","in":"query","name":"token","description":"The same API key as a `?token=` query parameter, for systems that cannot set a header (GIS clients, spreadsheet web queries, low-code connectors). Metered and billed exactly like the header; the header wins when both are sent. Prefer the header wherever you can: a URL ends up in places a header does not (proxy logs, browser history, shared links)."},"cookieAuth":{"type":"apiKey","in":"cookie","name":"gf_session"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"What went wrong, in English. Stable for display."},"type":{"type":"string","description":"The failure class — an entry of GET /v1/errors. Branch on this."},"code":{"type":"string","description":"The specific cause where one is known (e.g. api_key_missing, key_scope_missing), else equal to `type`."},"message":{"type":"string","description":"Short human message in the Accept-Language language (da default, en)."},"request_id":{"type":["string","null"],"description":"The X-Request-Id of the call — quote it to support."},"doc_url":{"type":"string","format":"uri","description":"This failure class on /docs/fejl."}},"required":["error","type","code","message","request_id","doc_url"]},"EjendomBatchInput":{"type":"object","properties":{"bfe":{"minItems":1,"maxItems":150,"type":"array","items":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647}}},"required":["bfe"]},"AdgangsadresseReverseBatchInput":{"type":"object","properties":{"punkter":{"minItems":1,"maxItems":150,"type":"array","items":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"},"id":{"type":"string","minLength":1,"maxLength":64}},"required":["lon","lat"]}},"radius":{"type":"integer","minimum":1,"maximum":1000}},"required":["punkter"]},"AdgangsadresseReverseBatchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"adresse":{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"type":"string"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"afstand_m":{"type":"number"}},"required":["betegnelse","adgangsadresse_id","bfe_nummer","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat","afstand_m"]}},"required":["punkt","adresse"]}},"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"error":{"type":"string"},"status":{"type":"number"}},"required":["punkt","error","status"]},"description":"Points with no access address inside `radius` (404). Not billed."},"requested":{"type":"number"},"succeeded":{"type":"number"},"failed":{"type":"number"},"radius":{"type":"number"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["results","errors","requested","succeeded","failed","radius","meta"]},"DagiReverseBatchInput":{"type":"object","properties":{"punkter":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"},"id":{"type":"string","minLength":1,"maxLength":64}},"required":["lon","lat"]}}},"required":["punkter"]},"DagiReverseBatchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"antal":{"type":"number"},"omraader":{"type":"array","items":{"type":"object","properties":{"tema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]},"navn":{"type":"string"},"kode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["tema","navn","kode"]}}},"required":["punkt","epsg25832","antal","omraader"]}},"errors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"error":{"type":"string"},"status":{"type":"number"}},"required":["punkt","error","status"]},"description":"Points the DAGI register did not answer (502/503). Not billed."},"requested":{"type":"number"},"succeeded":{"type":"number"},"failed":{"type":"number"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["results","errors","requested","succeeded","failed","meta"]},"CreateJobInput":{"type":"object","properties":{"kind":{"type":"string","enum":["datavask","reverse","bbr","dagi","miljoe"]},"rows":{"default":[],"type":"array","items":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":200},"additionalProperties":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"},{"type":"null"}]}}},"columns":{"type":"object","properties":{"adresse":{"type":"string","minLength":1,"maxLength":200},"vej":{"type":"string","minLength":1,"maxLength":200},"husnr":{"type":"string","minLength":1,"maxLength":200},"postnr":{"type":"string","minLength":1,"maxLength":200},"by":{"type":"string","minLength":1,"maxLength":200},"x":{"type":"string","minLength":1,"maxLength":200},"y":{"type":"string","minLength":1,"maxLength":200},"bfe":{"type":"string","minLength":1,"maxLength":200},"adgangsadresse_id":{"type":"string","minLength":1,"maxLength":200}}},"srid":{"anyOf":[{"type":"number","const":4326},{"type":"number","const":25832}]},"label":{"type":"string","minLength":1,"maxLength":120},"start":{"default":true,"type":"boolean"}},"required":["kind"]},"AppendJobRowsInput":{"type":"object","properties":{"rows":{"minItems":1,"type":"array","items":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":200},"additionalProperties":{"anyOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"},{"type":"null"}]}}}},"required":["rows"]},"JobResponse":{"type":"object","properties":{"job":{"type":"object","properties":{"id":{"type":"string","description":"job_…"},"kind":{"type":"string","enum":["datavask","reverse","bbr","dagi","miljoe"]},"status":{"type":"string","enum":["draft","queued","running","paused","completed","failed","cancelled"]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalRows":{"type":"number"},"processedRows":{"type":"number","description":"Rows with an answer or an error on file."},"succeeded":{"type":"number"},"failed":{"type":"number"},"billedUnits":{"type":"number","description":"Successful rows billed (0 for a test key)."},"progress":{"type":"number","description":"processedRows / totalRows, 0..1."},"columns":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Role → your column name (adresse, vej, husnr, postnr, by, x, y, bfe, adgangsadresse_id)."},"srid":{"anyOf":[{"type":"number","const":4326},{"type":"number","const":25832}]},"inputColumns":{"type":"array","items":{"type":"string"}},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"string"},"resultsAvailable":{"type":"boolean","description":"False once the rows are deleted (JOB_RESULT_RETENTION_DAYS after the job ends)."}},"required":["id","kind","status","label","totalRows","processedRows","succeeded","failed","billedUnits","progress","columns","srid","inputColumns","error","createdAt","startedAt","completedAt","updatedAt","resultsAvailable"],"description":"An asynchronous job over a list. Poll it; download results and errors as files."}},"required":["job"]},"JobList":{"type":"object","properties":{"jobs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"job_…"},"kind":{"type":"string","enum":["datavask","reverse","bbr","dagi","miljoe"]},"status":{"type":"string","enum":["draft","queued","running","paused","completed","failed","cancelled"]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalRows":{"type":"number"},"processedRows":{"type":"number","description":"Rows with an answer or an error on file."},"succeeded":{"type":"number"},"failed":{"type":"number"},"billedUnits":{"type":"number","description":"Successful rows billed (0 for a test key)."},"progress":{"type":"number","description":"processedRows / totalRows, 0..1."},"columns":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Role → your column name (adresse, vej, husnr, postnr, by, x, y, bfe, adgangsadresse_id)."},"srid":{"anyOf":[{"type":"number","const":4326},{"type":"number","const":25832}]},"inputColumns":{"type":"array","items":{"type":"string"}},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"string"},"resultsAvailable":{"type":"boolean","description":"False once the rows are deleted (JOB_RESULT_RETENTION_DAYS after the job ends)."}},"required":["id","kind","status","label","totalRows","processedRows","succeeded","failed","billedUnits","progress","columns","srid","inputColumns","error","createdAt","startedAt","completedAt","updatedAt","resultsAvailable"],"description":"An asynchronous job over a list. Poll it; download results and errors as files."}}},"required":["jobs"]},"EjendomBatchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"bfe":{"type":"number"},"ejendom":{"type":"object","properties":{"type":{"type":"string","const":"ejendom"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"grund_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"dagi":{"type":"object","properties":{"kommune":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"region":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]}},"required":["kommune","region"]},"jordstykke":{"type":"object","properties":{"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlav_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ejerlav_navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["matrikelnummer","ejerlav_kode","ejerlav_navn"]},"jordstykker":{"type":"array","items":{"type":"object","properties":{"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlav_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ejerlav_navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["matrikelnummer","ejerlav_kode","ejerlav_navn"]}},"antal_bygninger":{"type":"number"},"hovedbygning_index":{"anyOf":[{"type":"number"},{"type":"null"}]},"bygninger":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string","const":"bygning"},"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Year of the building's most recent SIGNIFICANT extension or conversion (BBR field 209, byg027). BBR only registers a year here when the improvement was worth at least 15% of the building's value before the work (typically extra m2) — a new kitchen or bathroom does not produce one, so this is \"last major om-/tilbygning\", not \"last change\". null when the register holds no year. Delivered RAW: BBR writes 0 and 1000 as placeholders for \"not registered\", so both occur and must be filtered by the consumer. A building is at least as old as its opfoerelsesaar whatever this field says. Source: BBR-instruks felt 209."},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"afvigende_etager":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"byg055AfvigendeEtager — floors that depart from the building's regular ones: 0 none, 10 afvigende etager, 11 hems, 12 etagegennembrydende rum, 13 indskudt etage. null when the register holds no value, which is NOT the same as code 0."},"areal":{"type":"object","properties":{"bebygget_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_bygningsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_boligareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_erhvervsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebygget_m2","samlet_bygningsareal_m2","samlet_boligareal_m2","samlet_erhvervsareal_m2"]},"materialer":{"type":"object","properties":{"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"ydervaeg_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["ydervaeg","ydervaeg_supplerende","tag","tag_supplerende"],"description":"Wall and roof materials. BBR carries TWO of each (byg032/byg034 walls, byg033/byg035 roof) and both code lists spell code 3 \"Fibercement herunder asbest\", so a material-based asbestos signal must be read from all four. The _supplerende entries are null when the register holds no second material, never a repeat of the primary."},"varme":{"type":"object","properties":{"installation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["installation","opvarmningsmiddel","supplerende"]},"asbest":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"byg036AsbestholdigtMateriale — asbestos-containing material FOUND in the building: 1 ydervæg, 2 tagdækning, 3 both, 4 other materials, 5 \"Ikke asbest i bygningen\". null means nothing is registered, NOT \"no asbestos\" — only code 5 says that."},"afloeb":{"type":"object","properties":{"afloebsforhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"medlemskab_spildevandsforsyning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"paabud":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"Påbud om forbedret rensning (Rensningspåbud) — the register’s spildevandspåbud."},"paabud_frist":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_udtraeden":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_udtraeden_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_alternativ_afledning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_alternativ_afledning_dato":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["afloebsforhold","medlemskab_spildevandsforsyning","paabud","paabud_frist","tilladelse_udtraeden","tilladelse_udtraeden_dato","tilladelse_alternativ_afledning","tilladelse_alternativ_afledning_dato"],"description":"The building's own afløb/spildevand registrations (byg031, byg123–byg129)."},"geometri":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Point"},"coordinates":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}},"required":["type","coordinates","epsg25832"]},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"fredning":{"anyOf":[{"type":"object","properties":{"fredet":{"type":"boolean","description":"True when the building is fredet under bygningsfredningsloven (Slots- og Kulturstyrelsen). Verified across the whole FBB layer to be exactly equivalent to status === 1."},"status":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"FBB's raw fredningsstatus code, unmodified."},"status_tekst":{"anyOf":[{"type":"string","enum":["fredet","bevaringssag","vurderet","ukendt","ingen_registrering"]},{"type":"null"}],"description":"status translated. \"ukendt\" is FBB code 4, which Slots- og Kulturstyrelsen has not published a meaning for — it is passed through untranslated rather than guessed. \"vurderet\" means the building went through a SAVE registration; it does NOT promise a bevaringsvaerdi, and the other statuses do not forbid one, so read the two fields independently. null for a code outside the set."},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"SAVE bevaringsværdi, 1-9 where 1 is the HIGHEST. null when the building has not been assessed: FBB stores that as the placeholders -1 and 0 (92.6% of the layer), mapped to null here so they can never be rendered as \"bevaringsvaerdi 0\" or sorted as better than 1. A fredet building often has none — fredning is not a SAVE grade — so null never means \"not worth preserving\"."},"kilde":{"type":"string","const":"fbb"},"hentet":{"type":"string","description":"ISO instant this row was read from FBB."}},"required":["fredet","status","status_tekst","bevaringsvaerdi","kilde","hentet"],"description":"Fredning and SAVE bevaringsværdi from FBB (Fredede og Bevaringsværdige Bygninger), joined on the building id. NOTE: the whole object is null when we cannot answer for the building — no FBB row, or the lookup did not complete. null is NOT the same as fredet: false; one says \"unknown\", the other is a positive claim that the building is unprotected. Carries no verdict: \"bevaringsværdig\" is a threshold on the SAVE value that the kommune sets, and the two facts have different authorities (Slots- og Kulturstyrelsen for fredning, the kommune for SAVE)."},{"type":"null"}]},"etager":{"anyOf":[{"type":"object","properties":{"registreringer":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"udnyttet_tagetage_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kaelder_lavloftet_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"beboelse_i_kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","betegnelse","type","areal_m2","udnyttet_tagetage_m2","kaelder_lavloftet_m2","beboelse_i_kaelder_m2"]}},"kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kaelder_lavloftet_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"udnyttet_tagetage_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"beboelse_i_kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["registreringer","kaelder_m2","kaelder_lavloftet_m2","udnyttet_tagetage_m2","beboelse_i_kaelder_m2"],"description":"The building's registered floors (BBR_Etage) plus the four areas read off them: total basement area (the sum over kælder-typed floors, BBR felt 223), the low-ceilinged part of it (felt 224), the utilised part of the loft (felt 222) and legally habitable basement (felt 225). BBR registers a floor row only where the floor carries something worth registering, so an ordinary two-storey house legitimately has none. null for the whole object = the join did not run."},{"type":"null"}]},"enheder":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"areal":{"type":"object","properties":{"samlet_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["samlet_m2"]},"antal_vaerelser":{"anyOf":[{"type":"number"},{"type":"null"}]},"varme":{"type":"object","properties":{"installation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["installation","opvarmningsmiddel"]},"etage":{"anyOf":[{"type":"object","properties":{"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["betegnelse","type"]},{"type":"null"}],"description":"The floor the unit sits on, as BBR registers it — resolved through the unit's etage association (a BBR_Etage uuid), not a text on the unit. null means it could not be resolved (no reference, or the floor join did not run); it never means ground floor. Distinct from adresse.etage, which is DAR's designation for the ADDRESS."},"adresse":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"etage":{"anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"_note":{"type":"string"},"_error":{"type":"string"}},"required":["id","betegnelse"]}},"required":["id","anvendelse","areal","antal_vaerelser","varme","etage","adresse"]}}},"required":["id","type","bygningsnummer","anvendelse","opfoerelsesaar","om_tilbygningsaar","antal_etager","afvigende_etager","areal","materialer","varme","asbest","afloeb","geometri","kommunekode","fredning","etager","enheder"]}},"ejer":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"vurdering":{"description":"Ejendomsvurdering summary (VUR, register #13) for the BFE. ABSENT = the join did not run (no VUR source configured, or a ?asOf= snapshot). null = it ran and there is nothing to show — no assessment OR the register could not be read, which are deliberately not distinguished here; /v1/vurdering/{bfe} answers 404 and 502 respectively. Read antal_vurderingsejendomme first: above 1 the property has no single honest value and seneste/historik stay empty.","anyOf":[{"type":"object","properties":{"antal_vurderingsejendomme":{"type":"number"},"seneste":{"anyOf":[{"type":"object","properties":{"aar":{"type":"number"},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"vurderet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["aar","ejendomsvaerdi_kr","grundvaerdi_kr","vurderet_areal_m2"]},{"type":"null"}]},"historik":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number"},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["aar","ejendomsvaerdi_kr","grundvaerdi_kr"]}}},"required":["antal_vurderingsejendomme","seneste","historik"]},{"type":"null"}]},"grund_afloeb":{"description":"The grund's afløb/spildevand registrations (gru010, gru021–gru028). Absent when the grund's fields were not read (offline fixture, older cache).","type":"object","properties":{"afloebsforhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"medlemskab_spildevandsforsyning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"paabud":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"Påbud om forbedret rensning (Rensningspåbud) — the register’s spildevandspåbud."},"paabud_frist":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_udtraeden":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_udtraeden_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_alternativ_afledning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_alternativ_afledning_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"udledningstilladelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["afloebsforhold","medlemskab_spildevandsforsyning","paabud","paabud_frist","tilladelse_udtraeden","tilladelse_udtraeden_dato","tilladelse_alternativ_afledning","tilladelse_alternativ_afledning_dato","udledningstilladelse"]},"tekniske_anlaeg":{"description":"Every current teknisk anlæg on the grund, in full. ABSENT = the join did not run; null = it ran and failed (never read as \"no tank\"); [] = BBR registers none.","anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"klassifikation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"anlaegsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"bygning_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"etableringsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"ombygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"driftstatus":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"rotordiameter_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"punkt":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}]},"tank":{"anyOf":[{"type":"object","properties":{"indhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"materiale":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"type":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"stoerrelsesklasse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"stoerrelse":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"tek032Stoerrelse, raw — the published datamodel states no unit."},"rumfang":{"anyOf":[{"type":"number"},{"type":"null"}]},"placering":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"sloejfningsfrist":{"anyOf":[{"type":"string"},{"type":"null"}]},"fabrikationsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"fabrikationsnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"typegodkendelsesnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"korrosionsbeskyttelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"korrosionsbeskyttelse_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"overdaekning":{"anyOf":[{"type":"string"},{"type":"null"}]},"inspektionsdato":{"anyOf":[{"type":"string"},{"type":"null"}]},"seneste_inspektion":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["indhold","materiale","type","stoerrelsesklasse","stoerrelse","rumfang","placering","sloejfning","sloejfningsaar","sloejfningsfrist","fabrikationsaar","fabrikationsnummer","typegodkendelsesnummer","korrosionsbeskyttelse","korrosionsbeskyttelse_dato","overdaekning","inspektionsdato","seneste_inspektion"]},{"type":"null"}],"description":"null when the facility carries no tank field at all."}},"required":["id","klassifikation","anlaegsnummer","bygning_id","etableringsaar","ombygningsaar","driftstatus","areal_m2","hoejde_m","rotordiameter_m","punkt","tank"]}},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"as_of":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["type","bfe_nummer","grund_id","kommunekode","dagi","jordstykke","jordstykker","antal_bygninger","hovedbygning_index","bygninger","meta"],"description":"A property (BFE): grund identity + every current building on it."},"stale":{"type":"boolean"}},"required":["bfe","ejendom","stale"]}},"errors":{"type":"array","items":{"type":"object","properties":{"bfe":{"type":"number"},"error":{"type":"string"},"status":{"type":"number"}},"required":["bfe","error","status"]}},"requested":{"type":"number"},"succeeded":{"type":"number"},"failed":{"type":"number"}},"required":["results","errors","requested","succeeded","failed"],"description":"Per-BFE results + partial failures; one billable unit per deduped BFE."},"EjendomRollup":{"type":"object","properties":{"type":{"type":"string","const":"ejendom"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"grund_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"dagi":{"type":"object","properties":{"kommune":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"region":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]}},"required":["kommune","region"]},"jordstykke":{"type":"object","properties":{"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlav_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ejerlav_navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["matrikelnummer","ejerlav_kode","ejerlav_navn"]},"jordstykker":{"type":"array","items":{"type":"object","properties":{"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlav_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ejerlav_navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["matrikelnummer","ejerlav_kode","ejerlav_navn"]}},"antal_bygninger":{"type":"number"},"hovedbygning_index":{"anyOf":[{"type":"number"},{"type":"null"}]},"bygninger":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string","const":"bygning"},"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Year of the building's most recent SIGNIFICANT extension or conversion (BBR field 209, byg027). BBR only registers a year here when the improvement was worth at least 15% of the building's value before the work (typically extra m2) — a new kitchen or bathroom does not produce one, so this is \"last major om-/tilbygning\", not \"last change\". null when the register holds no year. Delivered RAW: BBR writes 0 and 1000 as placeholders for \"not registered\", so both occur and must be filtered by the consumer. A building is at least as old as its opfoerelsesaar whatever this field says. Source: BBR-instruks felt 209."},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"afvigende_etager":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"byg055AfvigendeEtager — floors that depart from the building's regular ones: 0 none, 10 afvigende etager, 11 hems, 12 etagegennembrydende rum, 13 indskudt etage. null when the register holds no value, which is NOT the same as code 0."},"areal":{"type":"object","properties":{"bebygget_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_bygningsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_boligareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_erhvervsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebygget_m2","samlet_bygningsareal_m2","samlet_boligareal_m2","samlet_erhvervsareal_m2"]},"materialer":{"type":"object","properties":{"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"ydervaeg_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["ydervaeg","ydervaeg_supplerende","tag","tag_supplerende"],"description":"Wall and roof materials. BBR carries TWO of each (byg032/byg034 walls, byg033/byg035 roof) and both code lists spell code 3 \"Fibercement herunder asbest\", so a material-based asbestos signal must be read from all four. The _supplerende entries are null when the register holds no second material, never a repeat of the primary."},"varme":{"type":"object","properties":{"installation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["installation","opvarmningsmiddel","supplerende"]},"asbest":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"byg036AsbestholdigtMateriale — asbestos-containing material FOUND in the building: 1 ydervæg, 2 tagdækning, 3 both, 4 other materials, 5 \"Ikke asbest i bygningen\". null means nothing is registered, NOT \"no asbestos\" — only code 5 says that."},"afloeb":{"type":"object","properties":{"afloebsforhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"medlemskab_spildevandsforsyning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"paabud":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"Påbud om forbedret rensning (Rensningspåbud) — the register’s spildevandspåbud."},"paabud_frist":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_udtraeden":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_udtraeden_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_alternativ_afledning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_alternativ_afledning_dato":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["afloebsforhold","medlemskab_spildevandsforsyning","paabud","paabud_frist","tilladelse_udtraeden","tilladelse_udtraeden_dato","tilladelse_alternativ_afledning","tilladelse_alternativ_afledning_dato"],"description":"The building's own afløb/spildevand registrations (byg031, byg123–byg129)."},"geometri":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Point"},"coordinates":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}},"required":["type","coordinates","epsg25832"]},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"fredning":{"anyOf":[{"type":"object","properties":{"fredet":{"type":"boolean","description":"True when the building is fredet under bygningsfredningsloven (Slots- og Kulturstyrelsen). Verified across the whole FBB layer to be exactly equivalent to status === 1."},"status":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"FBB's raw fredningsstatus code, unmodified."},"status_tekst":{"anyOf":[{"type":"string","enum":["fredet","bevaringssag","vurderet","ukendt","ingen_registrering"]},{"type":"null"}],"description":"status translated. \"ukendt\" is FBB code 4, which Slots- og Kulturstyrelsen has not published a meaning for — it is passed through untranslated rather than guessed. \"vurderet\" means the building went through a SAVE registration; it does NOT promise a bevaringsvaerdi, and the other statuses do not forbid one, so read the two fields independently. null for a code outside the set."},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"SAVE bevaringsværdi, 1-9 where 1 is the HIGHEST. null when the building has not been assessed: FBB stores that as the placeholders -1 and 0 (92.6% of the layer), mapped to null here so they can never be rendered as \"bevaringsvaerdi 0\" or sorted as better than 1. A fredet building often has none — fredning is not a SAVE grade — so null never means \"not worth preserving\"."},"kilde":{"type":"string","const":"fbb"},"hentet":{"type":"string","description":"ISO instant this row was read from FBB."}},"required":["fredet","status","status_tekst","bevaringsvaerdi","kilde","hentet"],"description":"Fredning and SAVE bevaringsværdi from FBB (Fredede og Bevaringsværdige Bygninger), joined on the building id. NOTE: the whole object is null when we cannot answer for the building — no FBB row, or the lookup did not complete. null is NOT the same as fredet: false; one says \"unknown\", the other is a positive claim that the building is unprotected. Carries no verdict: \"bevaringsværdig\" is a threshold on the SAVE value that the kommune sets, and the two facts have different authorities (Slots- og Kulturstyrelsen for fredning, the kommune for SAVE)."},{"type":"null"}]},"etager":{"anyOf":[{"type":"object","properties":{"registreringer":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"udnyttet_tagetage_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kaelder_lavloftet_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"beboelse_i_kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","betegnelse","type","areal_m2","udnyttet_tagetage_m2","kaelder_lavloftet_m2","beboelse_i_kaelder_m2"]}},"kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kaelder_lavloftet_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"udnyttet_tagetage_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"beboelse_i_kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["registreringer","kaelder_m2","kaelder_lavloftet_m2","udnyttet_tagetage_m2","beboelse_i_kaelder_m2"],"description":"The building's registered floors (BBR_Etage) plus the four areas read off them: total basement area (the sum over kælder-typed floors, BBR felt 223), the low-ceilinged part of it (felt 224), the utilised part of the loft (felt 222) and legally habitable basement (felt 225). BBR registers a floor row only where the floor carries something worth registering, so an ordinary two-storey house legitimately has none. null for the whole object = the join did not run."},{"type":"null"}]},"enheder":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"areal":{"type":"object","properties":{"samlet_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["samlet_m2"]},"antal_vaerelser":{"anyOf":[{"type":"number"},{"type":"null"}]},"varme":{"type":"object","properties":{"installation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["installation","opvarmningsmiddel"]},"etage":{"anyOf":[{"type":"object","properties":{"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["betegnelse","type"]},{"type":"null"}],"description":"The floor the unit sits on, as BBR registers it — resolved through the unit's etage association (a BBR_Etage uuid), not a text on the unit. null means it could not be resolved (no reference, or the floor join did not run); it never means ground floor. Distinct from adresse.etage, which is DAR's designation for the ADDRESS."},"adresse":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"etage":{"anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"_note":{"type":"string"},"_error":{"type":"string"}},"required":["id","betegnelse"]}},"required":["id","anvendelse","areal","antal_vaerelser","varme","etage","adresse"]}}},"required":["id","type","bygningsnummer","anvendelse","opfoerelsesaar","om_tilbygningsaar","antal_etager","afvigende_etager","areal","materialer","varme","asbest","afloeb","geometri","kommunekode","fredning","etager","enheder"]}},"ejer":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"vurdering":{"description":"Ejendomsvurdering summary (VUR, register #13) for the BFE. ABSENT = the join did not run (no VUR source configured, or a ?asOf= snapshot). null = it ran and there is nothing to show — no assessment OR the register could not be read, which are deliberately not distinguished here; /v1/vurdering/{bfe} answers 404 and 502 respectively. Read antal_vurderingsejendomme first: above 1 the property has no single honest value and seneste/historik stay empty.","anyOf":[{"type":"object","properties":{"antal_vurderingsejendomme":{"type":"number"},"seneste":{"anyOf":[{"type":"object","properties":{"aar":{"type":"number"},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"vurderet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["aar","ejendomsvaerdi_kr","grundvaerdi_kr","vurderet_areal_m2"]},{"type":"null"}]},"historik":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number"},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["aar","ejendomsvaerdi_kr","grundvaerdi_kr"]}}},"required":["antal_vurderingsejendomme","seneste","historik"]},{"type":"null"}]},"grund_afloeb":{"description":"The grund's afløb/spildevand registrations (gru010, gru021–gru028). Absent when the grund's fields were not read (offline fixture, older cache).","type":"object","properties":{"afloebsforhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"medlemskab_spildevandsforsyning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"paabud":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"Påbud om forbedret rensning (Rensningspåbud) — the register’s spildevandspåbud."},"paabud_frist":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_udtraeden":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_udtraeden_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"tilladelse_alternativ_afledning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tilladelse_alternativ_afledning_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"udledningstilladelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["afloebsforhold","medlemskab_spildevandsforsyning","paabud","paabud_frist","tilladelse_udtraeden","tilladelse_udtraeden_dato","tilladelse_alternativ_afledning","tilladelse_alternativ_afledning_dato","udledningstilladelse"]},"tekniske_anlaeg":{"description":"Every current teknisk anlæg on the grund, in full. ABSENT = the join did not run; null = it ran and failed (never read as \"no tank\"); [] = BBR registers none.","anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"klassifikation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"anlaegsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"bygning_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"etableringsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"ombygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"driftstatus":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"rotordiameter_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"punkt":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}]},"tank":{"anyOf":[{"type":"object","properties":{"indhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"materiale":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"type":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"stoerrelsesklasse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"stoerrelse":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"tek032Stoerrelse, raw — the published datamodel states no unit."},"rumfang":{"anyOf":[{"type":"number"},{"type":"null"}]},"placering":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"sloejfningsfrist":{"anyOf":[{"type":"string"},{"type":"null"}]},"fabrikationsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"fabrikationsnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"typegodkendelsesnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"korrosionsbeskyttelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"korrosionsbeskyttelse_dato":{"anyOf":[{"type":"string"},{"type":"null"}]},"overdaekning":{"anyOf":[{"type":"string"},{"type":"null"}]},"inspektionsdato":{"anyOf":[{"type":"string"},{"type":"null"}]},"seneste_inspektion":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["indhold","materiale","type","stoerrelsesklasse","stoerrelse","rumfang","placering","sloejfning","sloejfningsaar","sloejfningsfrist","fabrikationsaar","fabrikationsnummer","typegodkendelsesnummer","korrosionsbeskyttelse","korrosionsbeskyttelse_dato","overdaekning","inspektionsdato","seneste_inspektion"]},{"type":"null"}],"description":"null when the facility carries no tank field at all."}},"required":["id","klassifikation","anlaegsnummer","bygning_id","etableringsaar","ombygningsaar","driftstatus","areal_m2","hoejde_m","rotordiameter_m","punkt","tank"]}},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"as_of":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["type","bfe_nummer","grund_id","kommunekode","dagi","jordstykke","jordstykker","antal_bygninger","hovedbygning_index","bygninger","meta"],"description":"A property (BFE): grund identity + every current building on it."},"BbrHistorik":{"type":"object","properties":{"type":{"type":"string","const":"bbr_historik"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"bygninger":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"versioner":{"type":"array","items":{"type":"object","properties":{"registrering_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"registrering_til":{"anyOf":[{"type":"string"},{"type":"null"}]},"virkning_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"virkning_til":{"anyOf":[{"type":"string"},{"type":"null"}]},"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"BBR field 209 as registered in THIS version — see EjendomRollup."},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"areal":{"type":"object","properties":{"bebygget_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_bygningsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_boligareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_erhvervsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebygget_m2","samlet_bygningsareal_m2","samlet_boligareal_m2","samlet_erhvervsareal_m2"]},"materialer":{"type":"object","properties":{"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["ydervaeg","tag"]},"varme":{"type":"object","properties":{"installation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["installation","opvarmningsmiddel","supplerende"]}},"required":["registrering_fra","registrering_til","virkning_fra","virkning_til","bygningsnummer","anvendelse","opfoerelsesaar","om_tilbygningsaar","antal_etager","areal","materialer","varme"]}},"afkortet":{"type":"boolean"}},"required":["id","versioner","afkortet"]}},"afkortet":{"type":"boolean"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"omfang":{"type":"string","const":"aktuelle_bygninger"}},"required":["kilde","grundfast_version","omfang"]}},"required":["type","bfe_nummer","bygninger","afkortet","meta"],"description":"Bitemporal version history: each current building's registration timeline."},"BbrFeatureCollection":{"type":"object","properties":{"type":{"type":"string","const":"FeatureCollection"},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"Feature"},"geometry":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Point"},"coordinates":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}},"required":["type","coordinates"]},{"type":"null"}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}]}}},"required":["type","geometry","properties"]}},"numberMatched":{"type":"number"},"numberReturned":{"type":"number"},"crs":{"type":"object","properties":{"type":{"type":"string","const":"name"},"properties":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"required":["type","properties"]},"bbox":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}]}},"required":["type","features","numberMatched","numberReturned","crs"]},"KodelisteResponse":{"type":"object","properties":{"navn":{"type":"string"},"koder":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."}}},"required":["navn","koder"]},"MatrikelEjendom":{"type":"object","properties":{"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":{"type":"string","const":"samlet_fast_ejendom"},"jordstykker":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlav":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"geometri":{"anyOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"anyOf":[{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},{"type":"null"}]},"epsg25832_ring":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},"required":["type","coordinates","epsg25832_ring"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"anyOf":[{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},{"type":"null"}]},"epsg25832_rings":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates","epsg25832_rings"]}]},{"type":"null"}]}},"required":["id","matrikelnummer","ejerlav","areal_m2","kommunekode","geometri"]}},"dagi":{"type":"object","properties":{"kommune":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"region":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]}},"required":["kommune","region"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"as_of":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","type","jordstykker","dagi","meta"]},"MatrikelHistorik":{"type":"object","properties":{"type":{"type":"string","const":"matrikel_historik"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"jordstykker":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"versioner":{"type":"array","items":{"type":"object","properties":{"registrering_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"registrering_til":{"anyOf":[{"type":"string"},{"type":"null"}]},"virkning_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"virkning_til":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlav":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["registrering_fra","registrering_til","virkning_fra","virkning_til","id","matrikelnummer","ejerlav","areal_m2","kommunekode"]}},"afkortet":{"type":"boolean"}},"required":["id","versioner","afkortet"]}},"afkortet":{"type":"boolean"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["type","bfe_nummer","jordstykker","afkortet","meta"],"description":"Bitemporal version history for a property’s parcels (Matriklen Historik layer)."},"Jordstykke":{"type":"object","properties":{"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlavskode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ejerlavsnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"jordstykke":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlav":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"geometri":{"anyOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"anyOf":[{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},{"type":"null"}]},"epsg25832_ring":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},"required":["type","coordinates","epsg25832_ring"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"anyOf":[{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},{"type":"null"}]},"epsg25832_rings":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates","epsg25832_rings"]}]},{"type":"null"}]}},"required":["id","matrikelnummer","ejerlav","areal_m2","kommunekode","geometri"]},"dagi":{"type":"object","properties":{"kommune":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"region":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]}},"required":["kommune","region"]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","kommunekode","matrikelnummer","ejerlavskode","ejerlavsnavn","jordstykke","dagi","koordinat","meta"]},"GeodanmarkBygninger":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"buildings":{"type":"array","items":{"type":"object","properties":{"bbr_uuid":{"type":"string"},"rings":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["bbr_uuid","rings"]}},"attribution":{"type":"string"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","buildings","attribution","meta"]},"DemoProperty":{"type":"object","properties":{"punkt":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"opslagspunkt":{"description":"Where the point registers (plan, byggelinjer, jord, DAGI, terrain, stednavne) were asked — signed distances are measured from here; in BFE mode a point inside the main jordstykke, not the address.","anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"adresse":{"anyOf":[{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["betegnelse","adgangsadresse_id","postnr","postnrnavn","koordinat"]},{"type":"null"}]},"adresser":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["betegnelse","adgangsadresse_id","postnr","postnrnavn","koordinat"]}},"parcel":{"anyOf":[{"type":"object","properties":{"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"matrikelnumre":{"type":"array","items":{"type":"string"}},"antal_jordstykker":{"type":"number"},"ejerlavsnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"polygons":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"jordstykker":{"description":"Each jordstykke on its own, in the order its surfaces appear in `polygons`. Absent on the single-parcel fallback.","type":"array","items":{"type":"object","properties":{"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlavskode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ejerlavsnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Matriklen's REGISTERED area (some old parcels carry 1 m²)."},"flader":{"type":"number","description":"How many entries of `polygons` belong to this jordstykke."}},"required":["matrikelnummer","ejerlavskode","ejerlavsnavn","areal_m2","flader"]}}},"required":["bfe_nummer","matrikelnummer","matrikelnumre","antal_jordstykker","ejerlavsnavn","areal_m2","kommunekode","polygons"]},{"type":"null"}]},"dagi":{"anyOf":[{"type":"object","properties":{"kommune":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"region":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]}},"required":["kommune","region"]},{"type":"null"}]},"administrativt_omraade":{"type":"array","items":{"type":"object","properties":{"tema":{"type":"string","enum":["sogn","retskreds","politikreds","opstillingskreds"],"description":"Kommune and region are NOT here — they arrive with the property on `dagi`."},"navn":{"type":"string"},"kode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The identifier in this område's own DAGI layer, NOT comparable across temas: a padded DAGI code for sogn, a myndighedskode for retskreds and politikreds, and null for opstillingskreds (its upstream number is unique only within a storkreds, so there is no national code to give)."}},"required":["tema","navn","kode"]}},"vurdering":{"description":"Ejendomsvurdering (register #13). Whole kroner, not øre. Null when the property has no assessment AND when the register could not be read — ask /v1/vurdering/{bfe} for the difference. `seneste` and `historik` are empty when antal_vurderingsejendomme > 1: there is no single honest figure for such a BFE.","anyOf":[{"type":"object","properties":{"antal_vurderingsejendomme":{"type":"number"},"seneste":{"anyOf":[{"type":"object","properties":{"aar":{"type":"number"},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"vurderet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["aar","ejendomsvaerdi_kr","grundvaerdi_kr","vurderet_areal_m2"]},{"type":"null"}]},"historik":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number"},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["aar","ejendomsvaerdi_kr","grundvaerdi_kr"]}}},"required":["antal_vurderingsejendomme","seneste","historik"]},{"type":"null"}]},"bbr":{"anyOf":[{"type":"object","properties":{"antal_bygninger":{"type":"number"},"antal_enheder":{"type":"number"},"samlet_boligareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_erhvervsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"hovedbygning_opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"hovedbygning_om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"The dominant building's most recent SIGNIFICANT om-/tilbygning (BBR field 209), null when none is registered."},"hovedbygning_anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["antal_bygninger","antal_enheder","samlet_boligareal_m2","samlet_erhvervsareal_m2","hovedbygning_opfoerelsesaar","hovedbygning_om_tilbygningsaar","hovedbygning_anvendelse"]},{"type":"null"}]},"epsg25832":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}]},"terraen":{"anyOf":[{"type":"object","properties":{"terraen_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"overflade_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["terraen_m","overflade_m"]},{"type":"null"}]},"jord":{"anyOf":[{"type":"object","properties":{"omraadeklassificeret":{"type":"boolean"},"analysefri":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True in an analysefrit delområde, false when analyses are required, null when the point is not områdeklassificeret at all."},"analysekrav":{"anyOf":[{"type":"string"},{"type":"null"}]},"forslag":{"type":"boolean"},"kommune":{"anyOf":[{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["navn","url"]},{"type":"null"}]}},"required":["omraadeklassificeret","analysefri","analysekrav","forslag","kommune"]},{"type":"null"}]},"jord_kortlaegning":{"anyOf":[{"type":"object","properties":{"kortlagt":{"type":"boolean"},"status":{"type":"string","enum":["v1","v2","v1_og_v2","ingen"]},"grundlag":{"type":"string","enum":["matrikel","punkt"]},"kortlagt_andel":{"anyOf":[{"type":"number"},{"type":"null"}]},"lokaliteter":{"type":"array","items":{"type":"object","properties":{"nummer":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"vidensniveau":{"type":"string","enum":["V1","V2"]},"region":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["nummer","navn","vidensniveau","region"]}},"attest_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kortlagt","status","grundlag","kortlagt_andel","lokaliteter","attest_url"]},{"type":"null"}]},"byggelinjer":{"type":"array","items":{"type":"object","properties":{"noegle":{"type":"string"},"navn":{"type":"string"},"hjemmel":{"type":"string"},"inden_for":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"null = the register could not be read. NEVER read a null as \"the line does not apply\" — a false is a measured claim, a null is no claim."},"usikker":{"type":"boolean"},"afstand_m":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Signed metres to the nearest in-force edge — negative inside."},"status":{"type":"string","enum":["ok","utilgaengelig"]}},"required":["noegle","navn","hjemmel","inden_for","usikker","afstand_m","status"]}},"plan":{"anyOf":[{"type":"object","properties":{"zone":{"type":"object","properties":{"status":{"anyOf":[{"type":"string","enum":["byzone","landzone","sommerhusomraade"]},{"type":"null"}]},"kilde":{"type":"string","enum":["zonekort","afledt"]},"kommune":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"konflikt":{"type":"boolean"}},"required":["status","kilde","kommune","konflikt"]},"har_lokalplan":{"type":"boolean"},"lokalplaner":{"type":"array","items":{"type":"object","properties":{"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["vedtaget","forslag","aflyst"]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"ved_punkt":{"description":"false = the plan covers only part of the grund, not the point.","type":"boolean"}},"required":["plannr","navn","status","anvendelse","dokument_url","bebyggelsesprocent","max_etager","max_hoejde_m"]}},"kommuneplanramme":{"anyOf":[{"type":"object","properties":{"rammenr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["rammenr","navn","anvendelse","dokument_url","bebyggelsesprocent"]},{"type":"null"}]},"omfang":{"description":"\"grund\": the parcels were asked as well as the point; \"punkt\": the point only.","type":"string","enum":["grund","punkt"]},"zoner_paa_grunden":{"description":"Zones touching the grund; landzone only when the point lies in it.","type":"array","items":{"type":"string","enum":["byzone","landzone","sommerhusomraade"]}},"andre_kommuneplanrammer":{"type":"array","items":{"type":"object","properties":{"rammenr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["rammenr","navn","anvendelse","dokument_url","bebyggelsesprocent"]}},"restbyggeret":{"description":"Indicative restbyggeret, exactly as /v1/plan/ejendom/{bfe} computes it (BFE mode only); null = not computable, absent = older payload.","anyOf":[{"type":"object","properties":{"vejledende":{"type":"boolean","const":true},"restbyggeret_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"tilladt_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundlag":{"type":"object","properties":{"kilde":{"anyOf":[{"type":"string","enum":["delomraade","lokalplan","kommuneplanramme"]},{"type":"null"}]},"plan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"delnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kilde","plan_id","plannr","delnr","bebyggelsesprocent","beregnes_af"]},"grundareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_jordstykker":{"type":"number"},"eksisterende_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"eksisterende_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_bygninger":{"type":"number"},"bygninger_uden_etageareal":{"type":"number"},"formel":{"type":"string"},"ikke_beregnet":{"anyOf":[{"type":"string"},{"type":"null"}]},"forbehold":{"type":"string"}},"required":["vejledende","restbyggeret_m2","tilladt_etageareal_m2","grundlag","grundareal_m2","antal_jordstykker","eksisterende_etageareal_m2","eksisterende_bebygget_areal_m2","antal_bygninger","bygninger_uden_etageareal","formel","ikke_beregnet","forbehold"]},{"type":"null"}]}},"required":["zone","har_lokalplan","lokalplaner","kommuneplanramme"]},{"type":"null"}]},"stoej":{"anyOf":[{"type":"object","properties":{"kortlaegningsaar":{"type":"number","description":"The newest mapping round among the sources (see `runder`)."},"runder":{"description":"The round per source; absent on a payload cached before 2022 = all 2017.","type":"object","properties":{"vej":{"type":"number"},"jernbane":{"type":"number"},"lufthavn":{"type":"number"},"industri":{"type":"number"}},"required":["vej","jernbane","lufthavn","industri"]},"kilder":{"type":"object","properties":{"vej":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"jernbane":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"lufthavn":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"industri":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]}},"required":["vej","jernbane","lufthavn","industri"]},"hoejeste":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"omfang":{"description":"What the bands were measured over: `grund` = the whole parcel (nothing louder is mapped within a circle around it); `adgangspunkter` = the loudest band at the property's address points and parcel point (part of the grund may be louder); `punkt` = one point only.","type":"string","enum":["grund","adgangspunkter","punkt"]},"antal_punkter":{"description":"How many points were asked.","type":"number"}},"required":["kortlaegningsaar","kilder","hoejeste"]},{"type":"null"}]},"stednavne":{"type":"array","items":{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string"},"afstand_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"koordinat":{"description":"The place's own point (WGS84); null when the register has none.","anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["navn","type","afstand_m"]}},"buildings":{"type":"array","items":{"type":"object","properties":{"bbr_uuid":{"anyOf":[{"type":"string"},{"type":"null"}]},"rings":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},"bbr":{"anyOf":[{"type":"object","properties":{"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"BBR field 209 — the year of the building's most recent SIGNIFICANT extension or conversion, null when none is registered. Read together with opfoerelsesaar as ONE widened interval: a later extension adds an era rather than replacing the build year. Delivered raw (0 and 1000 are BBR placeholders). See EjendomRollup."},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_boligareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_erhvervsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_enheder":{"anyOf":[{"type":"number"},{"type":"null"}]},"ydervaeg":{"anyOf":[{"type":"string"},{"type":"null"}]},"tag":{"anyOf":[{"type":"string"},{"type":"null"}]},"varme":{"anyOf":[{"type":"string"},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BBR byg057Opvarmningsmiddel — WHAT the installation burns (olie, naturgas, el, …), as opposed to `varme`, which is the installation itself. Either half alone under-determines an energy or climate screening."},"supplerende_varme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BBR byg058SupplerendeVarme — an additional source, null when none is registered."},"enheder":{"type":"array","items":{"type":"object","properties":{"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"samlet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_vaerelser":{"anyOf":[{"type":"number"},{"type":"null"}]},"varme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The unit's OWN heating installation, null when BBR registered none for it. Never the building's value filled in."},"adresse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["anvendelse","samlet_areal_m2","antal_vaerelser","varme","adresse"]},"description":"The building's BBR units. `antal_enheder` is this list's length; the list is carried too because a boligareal alone does not say whether it is one 120 m² house or four 30 m² flats."},"fredet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the building is fredet under bygningsfredningsloven (FBB / Slots- og Kulturstyrelsen), false when FBB answered and it is not, null when FBB holds no row for it or the lookup did not land. THREE states: null is the absence of a claim and must never be rendered as \"ikke fredet\"."},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"SAVE bevaringsværdi, 1-9 where 1 is the HIGHEST; null when the building has not been assessed. Independent of fredet — a fredet building often carries no SAVE value — and not itself the bevaringsværdig designation, which the kommune makes in the kommune-/lokalplan against its own threshold on the scale."}},"required":["bygningsnummer","anvendelse","opfoerelsesaar","om_tilbygningsaar","antal_etager","bebygget_areal_m2","samlet_boligareal_m2","samlet_erhvervsareal_m2","antal_enheder","ydervaeg","tag","varme","opvarmningsmiddel","supplerende_varme","enheder","fredet","bevaringsvaerdi"]},{"type":"null"}]},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Measured height over terrain in metres (DHM): the 95th-percentile surface inside this footprint minus the median terrain under it — the quantity BR18 measures a building height as. null means NOT MEASURED; never 0, and never derived from BBR's storey count."},"tag":{"description":"The fitted roof for this footprint — measured from the same cells the height was, and free for the same reason. null means the roof was not measured at all; a present object with tagform null says why.","anyOf":[{"type":"object","properties":{"tagform":{"anyOf":[{"type":"string","enum":["fladt","ensidig","saddeltag","valm"]},{"type":"null"}]},"kip_retning_grader":{"anyOf":[{"type":"number"},{"type":"null"}]},"fald_retning_grader":{"anyOf":[{"type":"number"},{"type":"null"}]},"haeldning_grader":{"anyOf":[{"type":"number"},{"type":"null"}]},"tagfod_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"konfidens":{"type":"number"},"antal_celler":{"type":"number"},"aarsag":{"anyOf":[{"type":"string","enum":["ingen_geometri","ingen_data","upstream_fejl","uden_for_budget","for_faa_celler","usikker_fit"]},{"type":"null"}]}},"required":["tagform","kip_retning_grader","fald_retning_grader","haeldning_grader","tagfod_m","konfidens","antal_celler","aarsag"],"description":"The roof fitted from the DSM cells inside the footprint. tagform is a MEASUREMENT or null — never guessed from byggeår or BBR roof material — and a null carries an aarsag: draw a flat massing and say so rather than printing \"valmtag\" over a fit that was really a tree. kip_retning_grader is the ridge bearing in degrees clockwise from north, in [0,180) because a ridge is undirected (0 = a north-south ridge); it is null for a flat roof, which has none. fald_retning_grader is the other half of that: the DOWN-slope bearing of the dominant face in [0,360), so an ensidig roof can be drawn at all (a ridge bearing leaves its two mirror images identical) and a saddeltag says which way its main slope faces. haeldning_grader is the cell-weighted mean pitch of the faces that define the form, and tagfod_m the lowest height those same faces reach over terraen_m — the same denominator hoejde_m uses — not the lowest raw cell, and not the lowest of every face fitted: an annex or lean-to inside the same BBR building is roof, but it is not the form named above it. tagfod_m stays the least robust number here — a minimum over one face, where the pitch is a mean and the height a percentile — so a plane grazing a lower annex past its own eave reads metres low. The rest catch it: a face climbs half the footprint span across kip_retning_grader (all of it under an ensidig fall), so pitch and span already bound the roof, and where hoejde_m - tagfod_m sits far above that bound, prefer the geometry. konfidens (0-1) is a heuristic score, not a probability: how much of the roof the named faces explain, damped by how well they explain it. antal_celler is the count the fit was actually made from, after outlier rejection."},{"type":"null"}]}},"required":["bbr_uuid","rings","bbr","hoejde_m"]}},"bygninger_uden_omrids":{"description":"The property's BBR buildings that no footprint in `buildings` links to — registered and counted in bbr.antal_bygninger, but not drawn by GeoDanmark. [] when every building is drawn, and when the footprint lookup failed.","type":"array","items":{"type":"object","properties":{"bbr_uuid":{"type":"string"},"bbr":{"type":"object","properties":{"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"BBR field 209 — the year of the building's most recent SIGNIFICANT extension or conversion, null when none is registered. Read together with opfoerelsesaar as ONE widened interval: a later extension adds an era rather than replacing the build year. Delivered raw (0 and 1000 are BBR placeholders). See EjendomRollup."},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_boligareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_erhvervsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_enheder":{"anyOf":[{"type":"number"},{"type":"null"}]},"ydervaeg":{"anyOf":[{"type":"string"},{"type":"null"}]},"tag":{"anyOf":[{"type":"string"},{"type":"null"}]},"varme":{"anyOf":[{"type":"string"},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BBR byg057Opvarmningsmiddel — WHAT the installation burns (olie, naturgas, el, …), as opposed to `varme`, which is the installation itself. Either half alone under-determines an energy or climate screening."},"supplerende_varme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BBR byg058SupplerendeVarme — an additional source, null when none is registered."},"enheder":{"type":"array","items":{"type":"object","properties":{"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"samlet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_vaerelser":{"anyOf":[{"type":"number"},{"type":"null"}]},"varme":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The unit's OWN heating installation, null when BBR registered none for it. Never the building's value filled in."},"adresse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["anvendelse","samlet_areal_m2","antal_vaerelser","varme","adresse"]},"description":"The building's BBR units. `antal_enheder` is this list's length; the list is carried too because a boligareal alone does not say whether it is one 120 m² house or four 30 m² flats."},"fredet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True when the building is fredet under bygningsfredningsloven (FBB / Slots- og Kulturstyrelsen), false when FBB answered and it is not, null when FBB holds no row for it or the lookup did not land. THREE states: null is the absence of a claim and must never be rendered as \"ikke fredet\"."},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"SAVE bevaringsværdi, 1-9 where 1 is the HIGHEST; null when the building has not been assessed. Independent of fredet — a fredet building often carries no SAVE value — and not itself the bevaringsværdig designation, which the kommune makes in the kommune-/lokalplan against its own threshold on the scale."}},"required":["bygningsnummer","anvendelse","opfoerelsesaar","om_tilbygningsaar","antal_etager","bebygget_areal_m2","samlet_boligareal_m2","samlet_erhvervsareal_m2","antal_enheder","ydervaeg","tag","varme","opvarmningsmiddel","supplerende_varme","enheder","fredet","bevaringsvaerdi"]}},"required":["bbr_uuid","bbr"]}},"neighbours":{"type":"array","items":{"type":"object","properties":{"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"rings":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},"matrikelnummer":{"anyOf":[{"type":"string"},{"type":"null"}]},"ejerlavskode":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bfe_nummer","rings"]}},"neighbour_buildings":{"type":"array","items":{"type":"object","properties":{"rings":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["rings"]}},"omraade":{"type":"object","properties":{"roads":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},"water_polygons":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},"water_lines":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["roads","water_polygons","water_lines"]},"tekniske_anlaeg":{"type":"array","items":{"type":"object","properties":{"klassifikation":{"anyOf":[{"type":"string"},{"type":"null"}]},"klassifikation_tekst":{"anyOf":[{"type":"string"},{"type":"null"}]},"art":{"type":"string","enum":["solceller","solvarme","pool","vindmoelle","tank","silo","mast","anlaeg"]},"punkt":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}]},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"rotordiameter_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["klassifikation","klassifikation_tekst","art","punkt","hoejde_m","areal_m2","rotordiameter_m"]}},"attribution":{"anyOf":[{"type":"string"},{"type":"null"}]},"timings":{"description":"Measured when this payload was COMPOSED. A cached answer carries the original compose's numbers; the X-Grundfast-Cache header says hit or miss.","type":"object","properties":{"composed_at":{"type":"string","description":"ISO time the composite was composed."},"total_ms":{"type":"number","description":"Wall time of the whole compose."},"registre":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number"},{"type":"null"}]},"description":"Per register, ms from the start of the compose until its answer was in (parallel, so they overlap). null = not asked / did not answer in time."}},"required":["composed_at","total_ms","registre"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","bfe_nummer","adresse","adresser","parcel","dagi","bbr","terraen","stednavne","buildings","neighbours","neighbour_buildings","attribution","meta"]},"DemoPropertyLag":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"bbox":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}],"description":"[minLon, minLat, maxLon, maxLat] the layers are clipped to."},"byggelinjer":{"type":"array","items":{"type":"object","properties":{"linje":{"type":"string"},"navn":{"type":"string"},"geometry":{"anyOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"required":["type","coordinates"]}]},{"type":"object","properties":{"type":{"type":"string","const":"LineString"},"coordinates":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}},"required":["type","coordinates"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiLineString"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]}]}},"required":["linje","navn","geometry"]}},"plan":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["zone","lokalplan","delomraade","kommuneplanramme"]},"navn":{"type":"string"},"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"geometry":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"required":["type","coordinates"]}]}},"required":["type","navn","plannr","geometry"]}},"jord":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["V1","V2","omraadeklassificering"]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"geometry":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"required":["type","coordinates"]}]}},"required":["type","navn","geometry"]}},"stoej":{"type":"array","items":{"type":"object","properties":{"kilde":{"type":"string","enum":["vej","jernbane","lufthavn","industri"]},"indikator":{"type":"string","enum":["Lden","Lnight"]},"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}]},"geometry":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"required":["type","coordinates"]}]}},"required":["kilde","indikator","fra_db","til_db","geometry"]},"description":"Always [] with status.stoej 'utilgaengelig': the upstream contours cannot be fetched per request (single polygons of up to 1,5 M vertices)."},"oversvoemmelse":{"description":"Register #17 in the box. Absent on answers cached before it existed.","type":"object","properties":{"lavninger":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxdybde_m":{"type":"number"},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"fyldes_ved_mm":{"anyOf":[{"type":"number"},{"type":"null"}]},"geometry":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Polygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates"]},{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"required":["type","coordinates"]}]}},"required":["id","maxdybde_m","areal_m2","fyldes_ved_mm","geometry"]},"description":"Miljøstyrelsen’s lavninger touching the box, deepest first."},"havvand":{"anyOf":[{"type":"object","properties":{"celle_m":{"type":"number","const":100},"nx":{"type":"number"},"ny":{"type":"number"},"hjoerner":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"description":"(nx+1)×(ny+1) cell corners, WGS84, row by row from the north-west."},"klasser":{"type":"array","items":{"type":"object","properties":{"klasse":{"type":"number"},"fra_m":{"type":"number"},"til_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"tekst":{"type":"string"}},"required":["klasse","fra_m","til_m","tekst"]}},"scenarier":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number"},"gentagelsesperiode_aar":{"type":"number"},"dybder":{"type":"string","description":"One digit per cell from the north-west: 0 = not modelled flooded from the sea, 1-5 = depth class."}},"required":["aar","gentagelsesperiode_aar","dybder"]}}},"required":["celle_m","nx","ny","hjoerner","klasser","scenarier"]},{"type":"null"}],"description":"Kystdirektoratet’s stormflod model in its own 100 m cells over the box, all twelve scenarios; null = not read."}},"required":["lavninger","havvand"]},"status":{"type":"object","properties":{"byggelinjer":{"type":"string","enum":["ok","utilgaengelig"]},"plan":{"type":"string","enum":["ok","utilgaengelig"]},"jord":{"type":"string","enum":["ok","utilgaengelig"]},"stoej":{"type":"string","enum":["ok","utilgaengelig"]},"lavninger":{"type":"string","enum":["ok","utilgaengelig"]},"havvand":{"type":"string","enum":["ok","utilgaengelig"]}},"required":["byggelinjer","plan","jord","stoej"],"description":"An unavailable group is NEVER an empty list that reads as \"none\"."},"mangler":{"type":"array","items":{"type":"string"},"description":"Sub-layers not read, or trimmed (suffix `:afkortet`) to bound the payload."}},"required":["bfe_nummer","bbox","byggelinjer","plan","jord","stoej","status","mangler"]},"EjendomSitemap":{"type":"object","properties":{"ejendomme":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"type":"string"},"bfe_nummer":{"type":"number"}},"required":["betegnelse","bfe_nummer"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["ejendomme","meta"]},"Energimaerke":{"type":"object","properties":{"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"label":{"type":"object","properties":{"serial":{"anyOf":[{"type":"string"},{"type":"null"}]},"klasse":{"anyOf":[{"type":"string"},{"type":"null"}]},"gyldig_til":{"anyOf":[{"type":"string"},{"type":"null"}]},"udstedt":{"anyOf":[{"type":"string"},{"type":"null"}]},"bygning_bbr_uuid":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["serial","klasse","gyldig_til","udstedt","bygning_bbr_uuid"]},"bygning":{"type":"object","properties":{"opfoert_aar":{"anyOf":[{"type":"number"},{"type":"null"}]},"renoveret_aar":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelseskode":{"anyOf":[{"type":"number"},{"type":"null"}]},"bolig_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"erhverv_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["opfoert_aar","renoveret_aar","anvendelseskode","bolig_areal_m2","erhverv_areal_m2"]},"vinduer":{"type":"array","items":{"type":"object","properties":{"beskrivelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"lang_beskrivelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"antal":{"anyOf":[{"type":"number"},{"type":"null"}]},"aar":{"anyOf":[{"type":"number"},{"type":"null"}]},"u_vaerdi":{"anyOf":[{"type":"number"},{"type":"null"}]},"rude_type":{"anyOf":[{"type":"string"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["beskrivelse","lang_beskrivelse","antal","aar","u_vaerdi","rude_type","areal_m2"]}},"forbedringsforslag":{"type":"array","items":{"type":"object","properties":{"beskrivelse":{"type":"string"},"aarlig_besparelse_kr":{"anyOf":[{"type":"number"},{"type":"null"}]},"investering_kr":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["beskrivelse","aarlig_besparelse_kr","investering_kr"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","label","bygning","vinduer","forbedringsforslag","meta"]},"EjerlavList":{"type":"object","properties":{"antal":{"type":"number"},"total":{"type":"number"},"ejerlav":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["antal","total","ejerlav","meta"]},"EjerlavOpslag":{"type":"object","properties":{"kode":{"type":"number"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["kode","navn","meta"]},"AdgangsadresseReverse":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"antal":{"type":"number"},"adresser":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"type":"string"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"afstand_m":{"type":"number"}},"required":["betegnelse","adgangsadresse_id","bfe_nummer","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat","afstand_m"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","antal","adresser","meta"]},"AdgangsadresserByBfe":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"antal":{"type":"number"},"truncated":{"type":"boolean"},"adresser":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"type":"string"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["betegnelse","adgangsadresse_id","bfe_nummer","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","antal","truncated","adresser","meta"]},"AdgangsadresseList":{"type":"object","properties":{"antal":{"type":"number"},"side":{"type":"number"},"per_side":{"type":"number"},"srid":{"anyOf":[{"type":"number","const":4326},{"type":"number","const":25832}]},"adgangsadresser":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"type":"string"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"koordinater":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}],"description":"The adgangspunkt in the requested srid: [lon, lat] (4326) or [x, y] metres (25832)."}},"required":["betegnelse","adgangsadresse_id","bfe_nummer","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat","koordinater"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["antal","side","per_side","srid","adgangsadresser","meta"],"description":"A page of access addresses matching every given filter (DAWA /adgangsadresser)."},"AdresseEnhederByBfe":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"antal":{"type":"number"},"truncated":{"type":"boolean","description":"True when the BFE has more units than were returned."},"enheder":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse_id":{"type":"string"},"adgangsadresse_id":{"type":"string"},"etage":{"anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"anyOf":[{"type":"string"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"koordinater":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}],"description":"The adgangspunkt in the requested srid: [lon, lat] (4326) or [x, y] metres (25832)."}},"required":["betegnelse","adresse_id","adgangsadresse_id","etage","doer","vejnavn","husnr","postnr","postnrnavn","kommunekode","bfe_nummer","koordinat","koordinater"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","antal","truncated","enheder","meta"],"description":"Every unit address (etage/dør) on a BFE, in reading order — local DAR corpus."},"AdresseList":{"type":"object","properties":{"antal":{"type":"number"},"side":{"type":"number"},"per_side":{"type":"number"},"srid":{"anyOf":[{"type":"number","const":4326},{"type":"number","const":25832}]},"adresser":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse_id":{"type":"string"},"adgangsadresse_id":{"type":"string"},"etage":{"anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"anyOf":[{"type":"string"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"koordinater":{"anyOf":[{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},{"type":"null"}],"description":"The adgangspunkt in the requested srid: [lon, lat] (4326) or [x, y] metres (25832)."}},"required":["betegnelse","adresse_id","adgangsadresse_id","etage","doer","vejnavn","husnr","postnr","postnrnavn","kommunekode","bfe_nummer","koordinat","koordinater"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["antal","side","per_side","srid","adresser","meta"],"description":"A page of unit addresses (DAR Adresse: etage + dør) matching every filter."},"AdresseGeoJson":{"type":"object","properties":{"type":{"type":"string","const":"FeatureCollection"},"crs":{"description":"Present for srid=25832 (EPSG:25832).","type":"object","properties":{"type":{"type":"string","const":"name"},"properties":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"required":["type","properties"]},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","const":"Feature"},"geometry":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"Point"},"coordinates":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}},"required":["type","coordinates"]},{"type":"null"}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["type","geometry","properties"]}}},"required":["type","features"],"description":"One Point feature per address; coordinates in the requested srid."},"ErrorCatalogue":{"type":"object","properties":{"antal":{"type":"number"},"fejl":{"type":"array","items":{"type":"object","properties":{"status":{"type":"number"},"type":{"type":"string"},"title":{"type":"string"},"beskrivelse":{"type":"string"},"retry":{"type":"string","enum":["nej","retry-after","backoff","senere"]},"taeller_i_kvote":{"type":"boolean"},"eksempel":{"type":"string"},"besked":{"type":"object","properties":{"da":{"type":"string"},"en":{"type":"string"}},"required":["da","en"],"description":"The short `message` an error body of this class carries, per language."}},"required":["status","type","title","beskrivelse","retry","taeller_i_kvote","eksempel","besked"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["antal","fejl","meta"],"description":"Every error status the API can return, one entry per failure class."},"StatsTotals":{"type":"object","properties":{"opdateret":{"type":"string"},"adresser":{"type":"number","description":"Adgangsadresser (DAR)."},"enheder":{"type":"number","description":"Unit addresses with etage/dør (DAR Adresse)."},"jordstykker":{"type":"number","description":"Cadastral parcels (Matriklen)."},"bygninger":{"type":"number","description":"Standing buildings (BBR status opført)."},"kommuner":{"type":"number"},"postnumre":{"type":"number"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["opdateret","adresser","enheder","jordstykker","bygninger","kommuner","postnumre","meta"],"description":"National totals over the corpora Grundfast holds itself."},"PostnummerStats":{"type":"object","properties":{"opdateret":{"type":"string"},"antal":{"type":"number"},"postnumre":{"type":"array","items":{"type":"object","properties":{"postnr":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresser":{"type":"number"},"bygninger":{"type":"number"}},"required":["postnr","navn","adresser","bygninger"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["opdateret","antal","postnumre","meta"]},"StatsTop":{"type":"object","properties":{"maal":{"type":"string","enum":["adresser","bygninger","jordstykker"]},"niveau":{"type":"string","enum":["kommune","postnummer"]},"opdateret":{"type":"string"},"raekker":{"type":"array","items":{"type":"object","properties":{"rang":{"type":"number"},"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"vaerdi":{"type":"number"}},"required":["rang","kode","navn","vaerdi"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["maal","niveau","opdateret","raekker","meta"]},"UsageBreakdown":{"type":"object","properties":{"range":{"type":"string","enum":["today","24h","7d","30d","month","12m"]},"gruppering":{"type":"string","enum":["noegle","time","endpoint"]},"from":{"type":"string"},"to":{"type":"string"},"rows":{"type":"array","items":{"type":"object","properties":{"group":{"anyOf":[{"type":"string"},{"type":"number"}],"description":"API key id (0 = the dashboard session), UTC hour (ISO) or endpoint template."},"key":{"description":"gruppering=noegle only: the key, when it still exists.","anyOf":[{"type":"object","properties":{"name":{"type":"string"},"prefix":{"type":"string"}},"required":["name","prefix"]},{"type":"null"}]},"calls":{"type":"number"},"observed":{"type":"number"},"ok":{"type":"number"},"clientErrors":{"type":"number"},"rateLimited":{"type":"number"},"serverErrors":{"type":"number"},"expectedFaults":{"type":"number"},"errorRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"latencyAvgMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"latencyP50Ms":{"anyOf":[{"type":"number"},{"type":"null"}]},"latencyP95Ms":{"anyOf":[{"type":"number"},{"type":"null"}]},"latencyMaxMs":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["group","calls","observed","ok","clientErrors","rateLimited","serverErrors","expectedFaults","errorRate","latencyAvgMs","latencyP50Ms","latencyP95Ms","latencyMaxMs"]}}},"required":["range","gruppering","from","to","rows"]},"TeamOverview":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","developer","billing","read_only"]},"createdAt":{"type":"string"},"lastLoginAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","email","displayName","role","createdAt","lastLoginAt"]}},"invitations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","developer","billing","read_only"]},"expiresAt":{"type":"string"},"expired":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","email","role","expiresAt","expired","createdAt"]}},"seats":{"type":"object","properties":{"used":{"type":"number"},"limit":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["used","limit"]}},"required":["members","invitations","seats"]},"UpdateApiKeyInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"allowedOrigins":{"maxItems":20,"type":"array","items":{"type":"string"}},"scopes":{"anyOf":[{"minItems":1,"maxItems":16,"type":"array","items":{"type":"string","enum":["adresse","bbr","matrikel","dagi","dhm","stednavne","cvr","energimaerke","vurdering","plan","miljoe","luftfoto","eksport","overvaagning","usage","webhooks"]}},{"type":"null"}]}}},"TeamInviteInput":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"type":"string","enum":["developer","billing","read_only"]}},"required":["email","role"]},"TeamRoleUpdateInput":{"type":"object","properties":{"role":{"type":"string","enum":["owner","developer","billing","read_only"]}},"required":["role"]},"InvitationAcceptInput":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":512},"password":{"type":"string","minLength":12,"maxLength":200},"name":{"type":"string","minLength":1,"maxLength":200}},"required":["token","password"]},"IpBindingCreateInput":{"type":"object","properties":{"apiKeyId":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"ip":{"type":"string","minLength":2,"maxLength":64},"label":{"type":"string","minLength":1,"maxLength":120}},"required":["apiKeyId","ip"]},"DatavaskResultat":{"type":"object","properties":{"kategori":{"type":"string","enum":["A","B","C"]},"antal":{"type":"number"},"resultater":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"type":"string"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"lighed":{"type":"number"}},"required":["betegnelse","adgangsadresse_id","bfe_nummer","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat","lighed"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["kategori","antal","resultater","meta"]},"PostnummerList":{"type":"object","properties":{"antal":{"type":"number"},"total":{"type":"number"},"postnumre":{"type":"array","items":{"type":"object","properties":{"nr":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"stormodtager":{"type":"boolean"}},"required":["nr","navn","stormodtager"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["antal","total","postnumre","meta"]},"KommuneStats":{"type":"object","properties":{"opdateret":{"type":"string"},"kilde":{"type":"string","const":"live"},"national":{"type":"object","properties":{"adresser":{"type":"number"},"jordstykker":{"type":"number"},"kommuner":{"type":"number"}},"required":["adresser","jordstykker","kommuner"]},"kommuner":{"type":"array","items":{"type":"object","properties":{"kommunekode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Official DAGI name, e.g. \"København\"; 0411 is \"Christiansø\" (not a kommune). null only for a code the DAGI register does not know."},"adresser":{"type":"number"},"jordstykker":{"type":"number"}},"required":["kommunekode","navn","adresser","jordstykker"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["opdateret","kilde","national","kommuner","meta"]},"Postnummer":{"type":"object","properties":{"nr":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"stormodtager":{"type":"boolean"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["nr","navn","stormodtager","meta"]},"VejnavnList":{"type":"object","properties":{"antal":{"type":"number"},"total":{"type":"number"},"vejnavne":{"type":"array","items":{"type":"string"}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["antal","total","vejnavne","meta"]},"Autocomplete":{"type":"object","properties":{"type":{"type":"string","enum":["adresse","adgangsadresse","vejnavn","postnummer"],"description":"The requested type; each hit carries its own stage."},"antal":{"type":"number"},"resultater":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["adresse","adgangsadresse","vejnavn","postnummer"]},"tekst":{"type":"string"},"vaerdi":{"type":"string"},"adgangsadresse_id":{"description":"Unit hits only: the access address the unit belongs to.","type":"string"},"etage":{"description":"Unit hits only.","anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"description":"Unit hits only.","anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","tekst","vaerdi"]}}},"required":["type","antal","resultater"]},"DagiOmraade":{"type":"object","properties":{"tema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]},"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"regionskode":{"anyOf":[{"type":"string"},{"type":"null"}]},"geometri":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"anyOf":[{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},{"type":"null"}]},"epsg25832_rings":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}},"required":["type","coordinates","epsg25832_rings"]},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"geometri_status":{"type":"string","enum":["live","stale","unavailable","not_configured"]}},"required":["kilde","grundfast_version","geometri_status"]}},"required":["tema","kode","navn","regionskode","geometri","meta"],"description":"An administrative område: official code + navn + best-effort WGS84 geometry."},"DagiGraense":{"type":"object","properties":{"tema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]},"kode":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"geometri":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"MultiPolygon"},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]}}}}},"required":["type","coordinates"]},{"type":"null"}]},"forenklet_m":{"type":"number","description":"The Douglas–Peucker tolerance used, in metres."},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"geometri_status":{"type":"string","enum":["live","stale","unavailable","not_configured"]}},"required":["kilde","grundfast_version","geometri_status"]}},"required":["tema","kode","navn","geometri","forenklet_m","meta"],"description":"An administrative område boundary, simplified for a drawing (WGS84, 5 dp)."},"DagiList":{"type":"object","properties":{"tema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]},"antal":{"type":"number"},"omraader":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"string"},"navn":{"type":"string"}},"required":["kode","navn"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["tema","antal","omraader","meta"]},"DagiIndex":{"type":"object","properties":{"temaer":{"type":"array","items":{"type":"object","properties":{"tema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]},"antal":{"type":"number"}},"required":["tema","antal"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["temaer","meta"]},"DagiReverse":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"description":"The input reprojected to the CRS the DAGI polygons are tested in."},"antal":{"type":"number"},"omraader":{"type":"array","items":{"type":"object","properties":{"tema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]},"navn":{"type":"string"},"kode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The identifier in this område's own DAGI layer, NOT comparable across temas: a padded national code for region/kommune/sogn, a myndighedskode for retskreds and politikreds, and null for opstillingskreds (its upstream number is unique only within a storkreds, so there is no national code to give)."}},"required":["tema","navn","kode"]},"description":"Only what the register answered, in tema order. An ABSENT tema means the lookup did not resolve it — never that the point has none. An EMPTY list is the different, legitimate statement that no Danish administrative område covers this point (a coordinate at sea); an upstream that could not answer is a 502."},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","antal","omraader","meta"],"description":"The administrative områder containing a WGS84 coordinate."},"DhmPunkt":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"terraen_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"overflade_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"system":{"type":"string","const":"DVR90"},"system_epsg":{"type":"number","const":5799},"oploesning_m":{"type":"number"},"metode":{"type":"string","const":"naermeste_celle"},"usikkerhed_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","terraen_m","overflade_m","system","system_epsg","oploesning_m","metode","usikkerhed_m","meta"]},"DhmKoterInput":{"type":"object","properties":{"punkter":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"},"id":{"type":"string","minLength":1,"maxLength":64}},"required":["lon","lat"]}}},"required":["punkter"]},"DhmKoter":{"type":"object","properties":{"punkter":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"terraen_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"overflade_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"system":{"type":"string","const":"DVR90"},"system_epsg":{"type":"number","const":5799},"oploesning_m":{"type":"number"},"metode":{"type":"string","const":"naermeste_celle"},"usikkerhed_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["id","punkt","epsg25832","terraen_m","overflade_m","system","system_epsg","oploesning_m","metode","usikkerhed_m","meta"]}},"fejl":{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"error":{"type":"string"}},"required":["id","punkt","error"]}},"forespurgt":{"type":"number"},"besvaret":{"type":"number"},"fejlet":{"type":"number"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkter","fejl","forespurgt","besvaret","fejlet","meta"]},"DhmProfil":{"type":"object","properties":{"fra":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"til":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"laengde_m":{"type":"number"},"trin_m":{"type":"number"},"punkter":{"type":"array","items":{"type":"object","properties":{"afstand_m":{"type":"number"},"lon":{"type":"number"},"lat":{"type":"number"},"terraen_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["afstand_m","lon","lat","terraen_m"]}},"terraen_min_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"terraen_maks_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"fald_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"system":{"type":"string","const":"DVR90"},"system_epsg":{"type":"number","const":5799},"oploesning_m":{"type":"number"},"metode":{"type":"string","const":"naermeste_celle"},"usikkerhed_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["fra","til","laengde_m","trin_m","punkter","terraen_min_m","terraen_maks_m","fald_m","system","system_epsg","oploesning_m","metode","usikkerhed_m","meta"]},"DhmBygningshoejder":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"system":{"type":"string","const":"DVR90"},"metode":{"type":"object","properties":{"tag":{"type":"string","const":"p95"},"terraen":{"type":"string","const":"median"},"hoejde":{"type":"string","const":"tag_m - terraen_m"},"tagflade":{"type":"string","const":"ransac_planfit"}},"required":["tag","terraen","hoejde","tagflade"]},"antal":{"type":"number"},"bygninger":{"type":"array","items":{"type":"object","properties":{"bbr_uuid":{"type":"string"},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"hoejde_maalt":{"type":"boolean"},"hoejde_kilde":{"anyOf":[{"type":"string","const":"DHM"},{"type":"null"}]},"tag_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"tag_middel_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"terraen_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"terraen_min_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"terraen_max_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_celler":{"type":"number"},"celle_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"aarsag":{"anyOf":[{"type":"string","enum":["ingen_geometri","ingen_data","upstream_fejl","uden_for_budget","negativ_hoejde"]},{"type":"null"}]},"tag":{"type":"object","properties":{"tagform":{"anyOf":[{"type":"string","enum":["fladt","ensidig","saddeltag","valm"]},{"type":"null"}]},"kip_retning_grader":{"anyOf":[{"type":"number"},{"type":"null"}]},"fald_retning_grader":{"anyOf":[{"type":"number"},{"type":"null"}]},"haeldning_grader":{"anyOf":[{"type":"number"},{"type":"null"}]},"tagfod_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"konfidens":{"type":"number"},"antal_celler":{"type":"number"},"aarsag":{"anyOf":[{"type":"string","enum":["ingen_geometri","ingen_data","upstream_fejl","uden_for_budget","for_faa_celler","usikker_fit"]},{"type":"null"}]}},"required":["tagform","kip_retning_grader","fald_retning_grader","haeldning_grader","tagfod_m","konfidens","antal_celler","aarsag"],"description":"The roof fitted from the DSM cells inside the footprint. tagform is a MEASUREMENT or null — never guessed from byggeår or BBR roof material — and a null carries an aarsag: draw a flat massing and say so rather than printing \"valmtag\" over a fit that was really a tree. kip_retning_grader is the ridge bearing in degrees clockwise from north, in [0,180) because a ridge is undirected (0 = a north-south ridge); it is null for a flat roof, which has none. fald_retning_grader is the other half of that: the DOWN-slope bearing of the dominant face in [0,360), so an ensidig roof can be drawn at all (a ridge bearing leaves its two mirror images identical) and a saddeltag says which way its main slope faces. haeldning_grader is the cell-weighted mean pitch of the faces that define the form, and tagfod_m the lowest height those same faces reach over terraen_m — the same denominator hoejde_m uses — not the lowest raw cell, and not the lowest of every face fitted: an annex or lean-to inside the same BBR building is roof, but it is not the form named above it. tagfod_m stays the least robust number here — a minimum over one face, where the pitch is a mean and the height a percentile — so a plane grazing a lower annex past its own eave reads metres low. The rest catch it: a face climbs half the footprint span across kip_retning_grader (all of it under an ensidig fall), so pitch and span already bound the roof, and where hoejde_m - tagfod_m sits far above that bound, prefer the geometry. konfidens (0-1) is a heuristic score, not a probability: how much of the roof the named faces explain, damped by how well they explain it. antal_celler is the count the fit was actually made from, after outlier rejection."}},"required":["bbr_uuid","hoejde_m","hoejde_maalt","hoejde_kilde","tag_m","tag_middel_m","terraen_m","terraen_min_m","terraen_max_m","antal_celler","celle_m","aarsag","tag"]}},"ufuldstaendig":{"type":"boolean"},"attribution":{"type":"string"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","system","metode","antal","bygninger","ufuldstaendig","attribution","meta"]},"DhmTagSol":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"prisomraade":{"anyOf":[{"type":"string","enum":["DK1","DK2"]},{"type":"null"}]},"antal":{"type":"number"},"bygninger":{"type":"array","items":{"type":"object","properties":{"bbr_uuid":{"type":"string"},"bbr":{"anyOf":[{"type":"object","properties":{"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"tagdaekning":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["anvendelse","opfoerelsesaar","tagdaekning","bebygget_areal_m2"]},{"type":"null"}]},"tagform":{"anyOf":[{"type":"string","enum":["fladt","ensidig","saddeltag","valm"]},{"type":"null"}]},"konfidens":{"type":"number"},"haeldning_grader":{"anyOf":[{"type":"number"},{"type":"null"}]},"terraen_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnet":{"type":"boolean"},"aarsag":{"anyOf":[{"type":"string","enum":["tag_ikke_maalt","for_lille","uden_for_budget","horisont_utilgaengelig","instraaling_utilgaengelig"]},{"type":"null"}]},"tag_aarsag":{"anyOf":[{"type":"string","enum":["ingen_geometri","ingen_data","upstream_fejl","uden_for_budget","for_faa_celler","usikker_fit"]},{"type":"null"}]},"fodaftryk_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"uden_flade_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"tagmaal":{"anyOf":[{"type":"object","properties":{"tagfod_m":{"type":"number"},"rygning_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"spaer_m":{"type":"number"},"tagflade_m2":{"type":"number"},"tagflade_inkl_udhaeng_m2":{"type":"number"}},"required":["tagfod_m","rygning_m","spaer_m","tagflade_m2","tagflade_inkl_udhaeng_m2"]},{"type":"null"}]},"flader":{"type":"array","items":{"type":"object","properties":{"nr":{"type":"number"},"haeldning_grader":{"type":"number"},"aspekt_grader":{"type":"number","description":"The way the face looks, degrees clockwise from north."},"retning":{"type":"string","enum":["N","NØ","Ø","SØ","S","SV","V","NV"]},"areal_m2":{"type":"number"},"areal_vandret_m2":{"type":"number"},"tagfod_m":{"type":"number"},"top_m":{"type":"number"},"spaer_m":{"type":"number"},"skygge":{"type":"object","properties":{"aar_pct":{"type":"number"},"maaned_pct":{"type":"array","items":{"type":"number"}},"horisont_grader":{"type":"array","items":{"type":"number"},"description":"36 sectors of 10°, from north clockwise: elevation of the highest obstruction."}},"required":["aar_pct","maaned_pct","horisont_grader"]},"kwh_pr_kwp":{"type":"number"},"kwh_pr_kwp_uden_skygge":{"type":"number"},"maaned_kwh_pr_kwp":{"type":"array","items":{"type":"number"}},"paneler":{"type":"object","properties":{"antal":{"type":"number"},"retning":{"anyOf":[{"type":"string","enum":["staaende","liggende"]},{"type":"null"}]},"kwp":{"type":"number"},"kwh_aar":{"type":"number"},"placering":{"type":"array","items":{"type":"array","items":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}]}},"description":"Each panel: four [lon, lat, h] corners; h is metres over terraen_m."}},"required":["antal","retning","kwp","kwh_aar","placering"]}},"required":["nr","haeldning_grader","aspekt_grader","retning","areal_m2","areal_vandret_m2","tagfod_m","top_m","spaer_m","skygge","kwh_pr_kwp","kwh_pr_kwp_uden_skygge","maaned_kwh_pr_kwp","paneler"]}},"anlaeg":{"anyOf":[{"type":"object","properties":{"lille":{"type":"object","properties":{"paneler":{"type":"number"},"kwp":{"type":"number"},"kwh_aar":{"type":"number"},"maaned_kwh":{"type":"array","items":{"type":"number"},"description":"Monthly kWh, January first."},"fordeling":{"type":"array","items":{"type":"object","properties":{"flade":{"type":"number"},"paneler":{"type":"number"}},"required":["flade","paneler"]}},"oekonomi":{"anyOf":[{"type":"object","properties":{"pris_kr":{"type":"number"},"egetforbrug_andel":{"type":"number"},"egetforbrug_kwh":{"type":"number"},"salg_kwh":{"type":"number"},"vaerdi_aar1_kr":{"type":"number"},"tilbagebetaling_aar":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["pris_kr","egetforbrug_andel","egetforbrug_kwh","salg_kwh","vaerdi_aar1_kr","tilbagebetaling_aar"]},{"type":"null"}],"description":"Null when no electricity price could be read; production stands regardless."}},"required":["paneler","kwp","kwh_aar","maaned_kwh","fordeling","oekonomi"]},"foreslaaet":{"type":"object","properties":{"paneler":{"type":"number"},"kwp":{"type":"number"},"kwh_aar":{"type":"number"},"maaned_kwh":{"type":"array","items":{"type":"number"},"description":"Monthly kWh, January first."},"fordeling":{"type":"array","items":{"type":"object","properties":{"flade":{"type":"number"},"paneler":{"type":"number"}},"required":["flade","paneler"]}},"oekonomi":{"anyOf":[{"type":"object","properties":{"pris_kr":{"type":"number"},"egetforbrug_andel":{"type":"number"},"egetforbrug_kwh":{"type":"number"},"salg_kwh":{"type":"number"},"vaerdi_aar1_kr":{"type":"number"},"tilbagebetaling_aar":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["pris_kr","egetforbrug_andel","egetforbrug_kwh","salg_kwh","vaerdi_aar1_kr","tilbagebetaling_aar"]},{"type":"null"}],"description":"Null when no electricity price could be read; production stands regardless."}},"required":["paneler","kwp","kwh_aar","maaned_kwh","fordeling","oekonomi"]},"maks":{"type":"object","properties":{"paneler":{"type":"number"},"kwp":{"type":"number"},"kwh_aar":{"type":"number"},"maaned_kwh":{"type":"array","items":{"type":"number"},"description":"Monthly kWh, January first."},"fordeling":{"type":"array","items":{"type":"object","properties":{"flade":{"type":"number"},"paneler":{"type":"number"}},"required":["flade","paneler"]}},"oekonomi":{"anyOf":[{"type":"object","properties":{"pris_kr":{"type":"number"},"egetforbrug_andel":{"type":"number"},"egetforbrug_kwh":{"type":"number"},"salg_kwh":{"type":"number"},"vaerdi_aar1_kr":{"type":"number"},"tilbagebetaling_aar":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["pris_kr","egetforbrug_andel","egetforbrug_kwh","salg_kwh","vaerdi_aar1_kr","tilbagebetaling_aar"]},{"type":"null"}],"description":"Null when no electricity price could be read; production stands regardless."}},"required":["paneler","kwp","kwh_aar","maaned_kwh","fordeling","oekonomi"]}},"required":["lille","foreslaaet","maks"]},{"type":"null"}]},"anlaeg_aarsag":{"anyOf":[{"type":"string","const":"ingen_egnet_flade"},{"type":"null"}]}},"required":["bbr_uuid","bbr","tagform","konfidens","haeldning_grader","terraen_m","beregnet","aarsag","tag_aarsag","fodaftryk_m2","uden_flade_m2","tagmaal","flader","anlaeg","anlaeg_aarsag"]}},"elpris":{"anyOf":[{"type":"object","properties":{"prisomraade":{"type":"string","enum":["DK1","DK2"]},"fra":{"type":"string"},"til":{"type":"string"},"gennemsnit_kr_kwh":{"type":"number"},"solvaegtet_kr_kwh":{"type":"number"},"kilde":{"type":"string"}},"required":["prisomraade","fra","til","gennemsnit_kr_kwh","solvaegtet_kr_kwh","kilde"]},{"type":"null"}]},"forudsaetninger":{"type":"object","properties":{"panel":{"type":"object","properties":{"laengde_m":{"type":"number"},"bredde_m":{"type":"number"},"effekt_wp":{"type":"number"},"kantafstand_m":{"type":"number"},"mellemrum_m":{"type":"number"}},"required":["laengde_m","bredde_m","effekt_wp","kantafstand_m","mellemrum_m"]},"forbrug_kwh":{"type":"number"},"egetforbrug_andel":{"type":"number"},"egetforbrug_regel":{"type":"string"},"pris_fast_kr":{"type":"number"},"pris_kr_pr_kwp":{"type":"number"},"tillaeg_kr_kwh":{"type":"number"},"moms_andel":{"type":"number"},"salgsgebyr_kr_kwh":{"type":"number"},"degradering_pr_aar":{"type":"number"},"horisont_aar":{"type":"number"},"min_kwh_pr_kwp":{"type":"number"},"systemtab_pct":{"type":"number"},"udhaeng_m":{"type":"number"},"horisont_afstand_m":{"type":"number"},"observator_over_flade_m":{"type":"number"},"albedo":{"type":"number"},"noter":{"type":"array","items":{"type":"string"}}},"required":["panel","forbrug_kwh","egetforbrug_andel","egetforbrug_regel","pris_fast_kr","pris_kr_pr_kwp","tillaeg_kr_kwh","moms_andel","salgsgebyr_kr_kwh","degradering_pr_aar","horisont_aar","min_kwh_pr_kwp","systemtab_pct","udhaeng_m","horisont_afstand_m","observator_over_flade_m","albedo","noter"]},"metode":{"type":"object","properties":{"tagflader":{"type":"string"},"skygge":{"type":"string"},"instraaling":{"type":"string"},"paneler":{"type":"string"},"elpris":{"type":"string"}},"required":["tagflader","skygge","instraaling","paneler","elpris"]},"ufuldstaendig":{"type":"boolean"},"kilder":{"type":"array","items":{"type":"object","properties":{"navn":{"type":"string"},"brug":{"type":"string"},"vilkaar":{"type":"string"}},"required":["navn","brug","vilkaar"]}},"attribution":{"type":"string"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","prisomraade","antal","bygninger","elpris","forudsaetninger","metode","ufuldstaendig","kilder","attribution","meta"]},"LokalplanCitater":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"emner":{"type":"array","items":{"type":"string","enum":["solceller","tagmateriale","tagform","reflekterende","hoejde","bebyggelsesprocent","farver"]}},"antal":{"type":"number"},"planer":{"type":"array","items":{"type":"object","properties":{"plan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"dokument_url":{"type":"string"},"status_laesning":{"type":"string","enum":["ok","utilgaengelig","for_stor","ulaeselig"]},"sha256":{"anyOf":[{"type":"string"},{"type":"null"}]},"sider":{"anyOf":[{"type":"number"},{"type":"null"}]},"tekstlag":{"anyOf":[{"type":"string","enum":["ja","delvis","nej"]},{"type":"null"}]},"sider_uden_tekst":{"type":"array","items":{"type":"number"}},"citater":{"type":"array","items":{"type":"object","properties":{"emne":{"type":"string","enum":["solceller","tagmateriale","tagform","reflekterende","hoejde","bebyggelsesprocent","farver"]},"side":{"type":"number","description":"1-based page in the PDF file."},"afsnit":{"anyOf":[{"type":"string"},{"type":"null"}]},"tekst":{"type":"string"},"traeffere":{"type":"array","items":{"type":"string"}},"link":{"type":"string"}},"required":["emne","side","afsnit","tekst","traeffere","link"]}}},"required":["plan_id","plannr","navn","status","dokument_url","status_laesning","sha256","sider","tekstlag","sider_uden_tekst","citater"]}},"struktureret":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Per requested topic: the structured fields on /v1/plan/ejendom/{bfe} that also answer it. [] = the register has no field; the text is the only source."},"forbehold":{"type":"string"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","emner","antal","planer","struktureret","forbehold","meta"]},"DhmTerraen":{"type":"object","properties":{"bbox":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}]},"epsg":{"type":"number","const":25832},"celle_m":{"type":"number","description":"Spacing between neighbouring samples, in metres — what was asked for in `trin`. NOT the same as oploesning_m, which is the DHM cell each value was READ from: the model is published at 0.4 m, so a 1 m grid is 1 m apart with every value still a native cell (metode: naermeste_celle)."},"kolonner":{"type":"number"},"raekker":{"type":"number"},"oprindelse":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"description":"EPSG:25832 [x, y] of sample index 0 — the NORTH-WEST one, not a cell corner."},"koter":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]},"description":"kolonner * raekker terrain koter in metres DVR90, ROW-MAJOR: rows run north to south and columns west to east, so index r * kolonner + c sits at [oprindelse[0] + c * celle_m, oprindelse[1] - r * celle_m]. A cell the model has no data for is null and NEVER 0 — 0 m DVR90 is a plausible Danish elevation near the coast, which is what makes an error that lands as 0 invisible on a drawing."},"mangler":{"type":"number","description":"How many entries in koter are null. 0 means the grid is complete."},"system":{"type":"string","const":"DVR90"},"system_epsg":{"type":"number","const":5799},"oploesning_m":{"type":"number"},"metode":{"type":"string","const":"naermeste_celle"},"usikkerhed_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bbox","epsg","celle_m","kolonner","raekker","oprindelse","koter","mangler","system","system_epsg","oploesning_m","metode","usikkerhed_m","meta"]},"DemoDhmTerraen":{"type":"object","properties":{"bbox":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}]},"epsg":{"type":"number","const":25832},"celle_m":{"type":"number","description":"Spacing between neighbouring samples, in metres — what was asked for in `trin`. NOT the same as oploesning_m, which is the DHM cell each value was READ from: the model is published at 0.4 m, so a 1 m grid is 1 m apart with every value still a native cell (metode: naermeste_celle)."},"kolonner":{"type":"number"},"raekker":{"type":"number"},"oprindelse":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"description":"EPSG:25832 [x, y] of sample index 0 — the NORTH-WEST one, not a cell corner."},"koter":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]},"description":"kolonner * raekker terrain koter in metres DVR90, ROW-MAJOR: rows run north to south and columns west to east, so index r * kolonner + c sits at [oprindelse[0] + c * celle_m, oprindelse[1] - r * celle_m]. A cell the model has no data for is null and NEVER 0 — 0 m DVR90 is a plausible Danish elevation near the coast, which is what makes an error that lands as 0 invisible on a drawing."},"mangler":{"type":"number","description":"How many entries in koter are null. 0 means the grid is complete."},"system":{"type":"string","const":"DVR90"},"system_epsg":{"type":"number","const":5799},"oploesning_m":{"type":"number"},"metode":{"type":"string","const":"naermeste_celle"},"usikkerhed_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]},"bfe_nummer":{"type":"number"},"afgraenset":{"type":"boolean","description":"True when the property is wider than one raster (236 m) and this grid is a window of it centred near `midt`; beyond bbox the terrain is simply not in this answer."}},"required":["bbox","epsg","celle_m","kolonner","raekker","oprindelse","koter","mangler","system","system_epsg","oploesning_m","metode","usikkerhed_m","meta","bfe_nummer","afgraenset"]},"DhmOverflade":{"type":"object","properties":{"bbox":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}]},"epsg":{"type":"number","const":25832},"celle_m":{"type":"number","description":"Spacing between neighbouring samples, in metres — what was asked for in `trin`. NOT the same as oploesning_m, which is the DHM cell each value was READ from: the model is published at 0.4 m, so a 1 m grid is 1 m apart with every value still a native cell (metode: naermeste_celle)."},"kolonner":{"type":"number"},"raekker":{"type":"number"},"oprindelse":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"description":"EPSG:25832 [x, y] of sample index 0 — the NORTH-WEST one, not a cell corner."},"koter":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]},"description":"kolonner * raekker surface koter in metres DVR90, ROW-MAJOR: rows run north to south and columns west to east, so index r * kolonner + c sits at [oprindelse[0] + c * celle_m, oprindelse[1] - r * celle_m]. A cell the model has no data for is null and NEVER 0 — 0 m DVR90 is a plausible Danish elevation near the coast, which is what makes an error that lands as 0 invisible on a drawing."},"mangler":{"type":"number","description":"How many entries in koter are null. 0 means the grid is complete."},"system":{"type":"string","const":"DVR90"},"system_epsg":{"type":"number","const":5799},"oploesning_m":{"type":"number"},"metode":{"type":"string","const":"naermeste_celle"},"usikkerhed_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bbox","epsg","celle_m","kolonner","raekker","oprindelse","koter","mangler","system","system_epsg","oploesning_m","metode","usikkerhed_m","meta"]},"DemoDhmOverflade":{"type":"object","properties":{"bbox":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"},{"type":"number"}]},"epsg":{"type":"number","const":25832},"celle_m":{"type":"number","description":"Spacing between neighbouring samples, in metres — what was asked for in `trin`. NOT the same as oploesning_m, which is the DHM cell each value was READ from: the model is published at 0.4 m, so a 1 m grid is 1 m apart with every value still a native cell (metode: naermeste_celle)."},"kolonner":{"type":"number"},"raekker":{"type":"number"},"oprindelse":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}],"description":"EPSG:25832 [x, y] of sample index 0 — the NORTH-WEST one, not a cell corner."},"koter":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]},"description":"kolonner * raekker surface koter in metres DVR90, ROW-MAJOR: rows run north to south and columns west to east, so index r * kolonner + c sits at [oprindelse[0] + c * celle_m, oprindelse[1] - r * celle_m]. A cell the model has no data for is null and NEVER 0 — 0 m DVR90 is a plausible Danish elevation near the coast, which is what makes an error that lands as 0 invisible on a drawing."},"mangler":{"type":"number","description":"How many entries in koter are null. 0 means the grid is complete."},"system":{"type":"string","const":"DVR90"},"system_epsg":{"type":"number","const":5799},"oploesning_m":{"type":"number"},"metode":{"type":"string","const":"naermeste_celle"},"usikkerhed_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]},"bfe_nummer":{"type":"number"},"afgraenset":{"type":"boolean","description":"True when the property is wider than one raster (236 m) and this grid is a window of it centred near `midt`; beyond bbox the surface is simply not in this answer."}},"required":["bbox","epsg","celle_m","kolonner","raekker","oprindelse","koter","mangler","system","system_epsg","oploesning_m","metode","usikkerhed_m","meta","bfe_nummer","afgraenset"]},"JordOmraadeklassificering":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"omraadeklassificeret":{"type":"boolean"},"analysefri":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"analysekrav":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"polygon":{"anyOf":[{"type":"object","properties":{"objekt_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"analysekrav":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"status":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"zone":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"undtaget":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"tekst":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","tekst"]},"inddraget":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"tekst":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","tekst"]},"gaeldende_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"cvr_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"telefon":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["navn","cvr_kode","url","email","telefon"]}},"required":["objekt_id","analysekrav","status","zone","undtaget","inddraget","gaeldende_fra","kommune"]},{"type":"null"}]},"forslag":{"type":"boolean"},"antal_polygoner":{"type":"number"},"konflikt":{"type":"boolean"},"kilde":{"type":"object","properties":{"lag":{"type":"string"},"wfs":{"type":"string"},"opdateret":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["lag","wfs","opdateret"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","omraadeklassificeret","analysefri","analysekrav","polygon","forslag","antal_polygoner","konflikt","kilde","meta"]},"JordKortlaegning":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"kortlagt":{"type":"boolean"},"status":{"type":"string","enum":["v1","v2","v1_og_v2","ingen"]},"vidensniveau":{"type":"object","properties":{"v1":{"type":"boolean"},"v2":{"type":"boolean"}},"required":["v1","v2"]},"antal_flader":{"type":"number"},"kilde":{"type":"object","properties":{"wfs":{"type":"string"},"lag":{"type":"object","properties":{"v1":{"type":"string"},"v2":{"type":"string"}},"required":["v1","v2"]},"opdateret":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["wfs","lag","opdateret"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]},"flader":{"type":"array","items":{"type":"object","properties":{"vidensniveau":{"type":"string","enum":["V1","V2"]},"id":{"type":"number"},"guid":{"anyOf":[{"type":"string"},{"type":"null"}]},"lokalitet":{"type":"object","properties":{"nummer":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse":{"anyOf":[{"type":"string"},{"type":"null"}]},"region":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["nummer","navn","adresse","region","status"]},"ejerlavskode":{"anyOf":[{"type":"number"},{"type":"null"}]},"matrikler":{"type":"array","items":{"type":"string"}},"attester":{"type":"array","items":{"type":"object","properties":{"matrikelnr":{"type":"string"},"url":{"type":"string"}},"required":["matrikelnr","url"]}},"senest_inddateret":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["vidensniveau","id","guid","lokalitet","ejerlavskode","matrikler","attester","senest_inddateret"]}}},"required":["punkt","epsg25832","kortlagt","status","vidensniveau","antal_flader","kilde","meta","flader"]},"JordKortlaegningMatrikel":{"type":"object","properties":{"matrikel":{"type":"object","properties":{"ejerlavskode":{"type":"number"},"matrikelnr":{"type":"string"},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["ejerlavskode","matrikelnr","areal_m2","bfe_nummer"]},"kortlagt":{"type":"boolean"},"status":{"type":"string","enum":["v1","v2","v1_og_v2","ingen"]},"vidensniveau":{"type":"object","properties":{"v1":{"type":"boolean"},"v2":{"type":"boolean"}},"required":["v1","v2"]},"antal_flader":{"type":"number"},"kilde":{"type":"object","properties":{"wfs":{"type":"string"},"lag":{"type":"object","properties":{"v1":{"type":"string"},"v2":{"type":"string"}},"required":["v1","v2"]},"opdateret":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["wfs","lag","opdateret"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]},"rumlig_kontrol":{"type":"boolean"},"kortlagt_andel":{"anyOf":[{"type":"number"},{"type":"null"}]},"metode":{"type":"string","const":"punktgitter"},"attest_url":{"type":"string"},"flader":{"type":"array","items":{"type":"object","properties":{"vidensniveau":{"type":"string","enum":["V1","V2"]},"id":{"type":"number"},"guid":{"anyOf":[{"type":"string"},{"type":"null"}]},"lokalitet":{"type":"object","properties":{"nummer":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse":{"anyOf":[{"type":"string"},{"type":"null"}]},"region":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["nummer","navn","adresse","region","status"]},"ejerlavskode":{"anyOf":[{"type":"number"},{"type":"null"}]},"matrikler":{"type":"array","items":{"type":"string"}},"attester":{"type":"array","items":{"type":"object","properties":{"matrikelnr":{"type":"string"},"url":{"type":"string"}},"required":["matrikelnr","url"]}},"senest_inddateret":{"anyOf":[{"type":"string"},{"type":"null"}]},"registreret_paa_matriklen":{"type":"boolean"},"overlap":{"anyOf":[{"type":"object","properties":{"andel":{"type":"number"},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["andel","areal_m2"]},{"type":"null"}]}},"required":["vidensniveau","id","guid","lokalitet","ejerlavskode","matrikler","attester","senest_inddateret","registreret_paa_matriklen","overlap"]}}},"required":["matrikel","kortlagt","status","vidensniveau","antal_flader","kilde","meta","rumlig_kontrol","kortlagt_andel","metode","attest_url","flader"]},"NaturSkovbyggelinje":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"skovbyggelinje":{"type":"boolean"},"ophaevet":{"type":"boolean"},"polygon":{"anyOf":[{"type":"object","properties":{"objekt_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"byggelinje":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"status":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"i_kraft":{"type":"boolean"},"ophaevelse":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"skov_ejer":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"oprindelse":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"gaeldende_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"registreret":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"cvr_kode":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["navn","cvr_kode"]}},"required":["objekt_id","byggelinje","status","i_kraft","ophaevelse","skov_ejer","oprindelse","dokument_url","areal_m2","gaeldende_fra","registreret","kommune"]},{"type":"null"}]},"ophaevede":{"type":"array","items":{"type":"object","properties":{"objekt_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"byggelinje":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"status":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"i_kraft":{"type":"boolean"},"ophaevelse":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"skov_ejer":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"oprindelse":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"gaeldende_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"registreret":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"cvr_kode":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["navn","cvr_kode"]}},"required":["objekt_id","byggelinje","status","i_kraft","ophaevelse","skov_ejer","oprindelse","dokument_url","areal_m2","gaeldende_fra","registreret","kommune"]}},"forslag":{"type":"boolean"},"usikker":{"type":"boolean"},"antal_polygoner":{"type":"number"},"konflikt":{"type":"boolean"},"kilde":{"type":"object","properties":{"lag":{"type":"string"},"wfs":{"type":"string"},"opdateret":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["lag","wfs","opdateret"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","skovbyggelinje","ophaevet","polygon","ophaevede","forslag","usikker","antal_polygoner","konflikt","kilde","meta"]},"NaturByggelinjer":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"soegeradius_m":{"type":"number"},"linjer":{"type":"object","propertyNames":{"type":"string","enum":["strandbeskyttelse","klitfredning","soe","aa","fortidsminde","kirke","skov","dige","natur3","vandloeb3"]},"additionalProperties":{"type":"object","properties":{"navn":{"type":"string"},"hjemmel":{"type":"string"},"geometri":{"type":"string","enum":["flade","linje"]},"status":{"type":"string","enum":["ok","utilgaengelig"]},"inden_for":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Er en linje i kraft her? MÅLT — et false er en positiv påstand og produceres aldrig af en fejl. Null KUN når status er \"utilgaengelig\"."},"usikker":{"type":"boolean","description":"Linjen er i kraft, men ingen vedtaget registrering står bag den. Kvalificerer altid et JA, aldrig et nej."},"afstand_m":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Fortegnede meter til nærmeste kant: NEGATIV inde, POSITIV ude. Null uden for søgeradius. En bekvemmelighed — inden_for er det autoritative svar på hvilken side man er på."},"antal":{"type":"number"},"traef":{"anyOf":[{"type":"object","properties":{"objekt_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"i_kraft":{"type":"boolean"},"status":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"kategori":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"naturtype":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"beskyttelsesaarsag":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"anlaegstype":{"anyOf":[{"type":"string"},{"type":"null"}]},"datering":{"anyOf":[{"type":"string"},{"type":"null"}]},"fredningsstatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"digetype":{"anyOf":[{"type":"string"},{"type":"null"}]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"gaeldende_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"registreret":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"cvr_kode":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["navn","cvr_kode"]}},"required":["objekt_id","i_kraft","status","kategori","naturtype","beskyttelsesaarsag","anlaegstype","datering","fredningsstatus","digetype","dokument_url","areal_m2","gaeldende_fra","registreret","kommune"]},{"type":"null"}]},"ophaevede":{"type":"array","items":{"type":"object","properties":{"objekt_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"i_kraft":{"type":"boolean"},"status":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"kategori":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"naturtype":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"beskyttelsesaarsag":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"anlaegstype":{"anyOf":[{"type":"string"},{"type":"null"}]},"datering":{"anyOf":[{"type":"string"},{"type":"null"}]},"fredningsstatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"digetype":{"anyOf":[{"type":"string"},{"type":"null"}]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"gaeldende_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"registreret":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"cvr_kode":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["navn","cvr_kode"]}},"required":["objekt_id","i_kraft","status","kategori","naturtype","beskyttelsesaarsag","anlaegstype","datering","fredningsstatus","digetype","dokument_url","areal_m2","gaeldende_fra","registreret","kommune"]}},"kilde":{"type":"object","properties":{"lag":{"type":"string"},"wfs":{"type":"string"}},"required":["lag","wfs"]}},"required":["navn","hjemmel","geometri","status","inden_for","usikker","afstand_m","antal","traef","ophaevede","kilde"]},"required":["strandbeskyttelse","klitfredning","soe","aa","fortidsminde","kirke","skov","dige","natur3","vandloeb3"]},"antal_i_kraft":{"type":"number"},"utilgaengelige":{"type":"array","items":{"type":"string","enum":["strandbeskyttelse","klitfredning","soe","aa","fortidsminde","kirke","skov","dige","natur3","vandloeb3"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","soegeradius_m","linjer","antal_i_kraft","utilgaengelige","meta"]},"PlanOpslag":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"zone":{"type":"object","properties":{"status":{"anyOf":[{"type":"string","enum":["byzone","landzone","sommerhusomraade"]},{"type":"null"}]},"kilde":{"type":"string","enum":["zonekort","afledt"]},"kommune":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},{"type":"null"}]},"konflikt":{"type":"boolean"}},"required":["status","kilde","kommune","konflikt"]},"har_lokalplan":{"type":"boolean"},"lokalplaner":{"type":"array","items":{"type":"object","properties":{"plan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["vedtaget","forslag","aflyst"]},"aflysningstype":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone":{"anyOf":[{"type":"string"},{"type":"null"}]},"datoer":{"type":"object","properties":{"forslag":{"anyOf":[{"type":"string"},{"type":"null"}]},"vedtaget":{"anyOf":[{"type":"string"},{"type":"null"}]},"ikrafttraedelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"aflyst":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["forslag","vedtaget","ikrafttraedelse","aflyst"]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"bestemmelser":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."},"miljoeklasse_min":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minmiljo` (1-7)."},"miljoeklasse_max":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxmiljo` (1-7)."},"ikke_reguleret":{"type":"object","properties":{"anvendelse":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"zone":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"omfang":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"udstykning":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["anvendelse","zone","omfang","udstykning"],"description":"The kommune's flags that the plan does NOT regulate a topic (`ianvreg`, `izonereg`, `iomfangreg`, `iudstykreg`). true explains a null limit."},"tillaegsbestemmelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."}},"required":["kode","tekst"]},"description":"`abestem1..3`: the plan HAS bestemmelser of these kinds — 4150 Skilte/facade regulering, 4160 Bygningsbevarende regulerende. Not what they say: read the plan text."},"saerlige_forhold":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`sforhold` — free text."},"bevaringsbestemmelser":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`bevarbest` — free text."},"udstykningsplan":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks_beskrivelse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget","miljoeklasse_min","miljoeklasse_max","ikke_reguleret","tillaegsbestemmelser","saerlige_forhold","bevaringsbestemmelser","udstykningsplan","kompleks","kompleks_beskrivelse"],"description":"Every structured bestemmelse Plandata registers beyond `bebyggelse`. Materialer, tagform and farver are NOT registered fields — they are only in the plan text (`dokument_url`)."},"specifikke_anvendelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"omfang":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget"],"description":"Omfang and udstykning limits, raw from Plandata's structured fields. null = not registered (not \"no limit\") — the plan text governs."}},"required":["kode","tekst","bebyggelse","omfang"]},"description":"`anvspec1..9` — the specific anvendelser, each with the limits set for that use."}},"required":["plan_id","plannr","navn","status","aflysningstype","kommune","anvendelse","zone","datoer","dokument_url","bebyggelse","bestemmelser","specifikke_anvendelser"]}},"delomraader":{"type":"array","items":{"type":"object","properties":{"plan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"lokalplan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"lokalplan_nr":{"anyOf":[{"type":"string"},{"type":"null"}]},"lokalplan_navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"delnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["vedtaget","forslag","aflyst"]},"kommune":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"datoer":{"type":"object","properties":{"forslag":{"anyOf":[{"type":"string"},{"type":"null"}]},"vedtaget":{"anyOf":[{"type":"string"},{"type":"null"}]},"ikrafttraedelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"aflyst":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["forslag","vedtaget","ikrafttraedelse","aflyst"]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"bestemmelser":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."},"miljoeklasse_min":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minmiljo` (1-7)."},"miljoeklasse_max":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxmiljo` (1-7)."},"ikke_reguleret":{"type":"object","properties":{"anvendelse":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"zone":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"omfang":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"udstykning":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["anvendelse","zone","omfang","udstykning"],"description":"The kommune's flags that the plan does NOT regulate a topic (`ianvreg`, `izonereg`, `iomfangreg`, `iudstykreg`). true explains a null limit."},"tillaegsbestemmelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."}},"required":["kode","tekst"]},"description":"`abestem1..3`: the plan HAS bestemmelser of these kinds — 4150 Skilte/facade regulering, 4160 Bygningsbevarende regulerende. Not what they say: read the plan text."},"saerlige_forhold":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`sforhold` — free text."},"bevaringsbestemmelser":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`bevarbest` — free text."},"udstykningsplan":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks_beskrivelse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget","miljoeklasse_min","miljoeklasse_max","ikke_reguleret","tillaegsbestemmelser","saerlige_forhold","bevaringsbestemmelser","udstykningsplan","kompleks","kompleks_beskrivelse"],"description":"Every structured bestemmelse Plandata registers beyond `bebyggelse`. Materialer, tagform and farver are NOT registered fields — they are only in the plan text (`dokument_url`)."},"specifikke_anvendelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"omfang":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget"],"description":"Omfang and udstykning limits, raw from Plandata's structured fields. null = not registered (not \"no limit\") — the plan text governs."}},"required":["kode","tekst","bebyggelse","omfang"]},"description":"`anvspec1..9` — the specific anvendelser, each with the limits set for that use."}},"required":["plan_id","lokalplan_id","lokalplan_nr","lokalplan_navn","delnr","status","kommune","anvendelse","datoer","dokument_url","bebyggelse","bestemmelser","specifikke_anvendelser"]}},"kommuneplanrammer":{"type":"array","items":{"type":"object","properties":{"plan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"rammenr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["vedtaget","forslag","aflyst"]},"distrikt":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone":{"anyOf":[{"type":"string"},{"type":"null"}]},"fremtidig_zone":{"anyOf":[{"type":"string"},{"type":"null"}]},"datoer":{"type":"object","properties":{"forslag":{"anyOf":[{"type":"string"},{"type":"null"}]},"vedtaget":{"anyOf":[{"type":"string"},{"type":"null"}]},"ikrafttraedelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"aflyst":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["forslag","vedtaget","ikrafttraedelse","aflyst"]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"bestemmelser":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."},"miljoeklasse_min":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minmiljo` (1-7)."},"miljoeklasse_max":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxmiljo` (1-7)."},"ikke_reguleret":{"type":"object","properties":{"anvendelse":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"zone":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"omfang":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"udstykning":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["anvendelse","zone","omfang","udstykning"],"description":"The kommune's flags that the plan does NOT regulate a topic (`ianvreg`, `izonereg`, `iomfangreg`, `iudstykreg`). true explains a null limit."},"tillaegsbestemmelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."}},"required":["kode","tekst"]},"description":"`abestem1..3`: the plan HAS bestemmelser of these kinds — 4150 Skilte/facade regulering, 4160 Bygningsbevarende regulerende. Not what they say: read the plan text."},"saerlige_forhold":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`sforhold` — free text."},"bevaringsbestemmelser":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`bevarbest` — free text."},"udstykningsplan":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks_beskrivelse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget","miljoeklasse_min","miljoeklasse_max","ikke_reguleret","tillaegsbestemmelser","saerlige_forhold","bevaringsbestemmelser","udstykningsplan","kompleks","kompleks_beskrivelse"],"description":"Every structured bestemmelse Plandata registers beyond `bebyggelse`. Materialer, tagform and farver are NOT registered fields — they are only in the plan text (`dokument_url`)."},"specifikke_anvendelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"omfang":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget"],"description":"Omfang and udstykning limits, raw from Plandata's structured fields. null = not registered (not \"no limit\") — the plan text governs."}},"required":["kode","tekst","bebyggelse","omfang"]},"description":"`anvspec1..9` — the specific anvendelser, each with the limits set for that use."}},"required":["plan_id","rammenr","navn","status","distrikt","kommune","anvendelse","zone","fremtidig_zone","datoer","dokument_url","bebyggelse","bestemmelser","specifikke_anvendelser"]}},"aflyste_lokalplaner":{"type":"array","items":{"type":"object","properties":{"plan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["vedtaget","forslag","aflyst"]},"aflysningstype":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"type":"object","properties":{"kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","navn"]},"anvendelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"zone":{"anyOf":[{"type":"string"},{"type":"null"}]},"datoer":{"type":"object","properties":{"forslag":{"anyOf":[{"type":"string"},{"type":"null"}]},"vedtaget":{"anyOf":[{"type":"string"},{"type":"null"}]},"ikrafttraedelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"aflyst":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["forslag","vedtaget","ikrafttraedelse","aflyst"]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"bestemmelser":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."},"miljoeklasse_min":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minmiljo` (1-7)."},"miljoeklasse_max":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxmiljo` (1-7)."},"ikke_reguleret":{"type":"object","properties":{"anvendelse":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"zone":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"omfang":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"udstykning":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["anvendelse","zone","omfang","udstykning"],"description":"The kommune's flags that the plan does NOT regulate a topic (`ianvreg`, `izonereg`, `iomfangreg`, `iudstykreg`). true explains a null limit."},"tillaegsbestemmelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."}},"required":["kode","tekst"]},"description":"`abestem1..3`: the plan HAS bestemmelser of these kinds — 4150 Skilte/facade regulering, 4160 Bygningsbevarende regulerende. Not what they say: read the plan text."},"saerlige_forhold":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`sforhold` — free text."},"bevaringsbestemmelser":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"`bevarbest` — free text."},"udstykningsplan":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"kompleks_beskrivelse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget","miljoeklasse_min","miljoeklasse_max","ikke_reguleret","tillaegsbestemmelser","saerlige_forhold","bevaringsbestemmelser","udstykningsplan","kompleks","kompleks_beskrivelse"],"description":"Every structured bestemmelse Plandata registers beyond `bebyggelse`. Materialer, tagform and farver are NOT registered fields — they are only in the plan text (`dokument_url`)."},"specifikke_anvendelser":{"type":"array","items":{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string","description":"The specific-anvendelse code list text; \"Kode N\" for a code not on the list."},"bebyggelse":{"type":"object","properties":{"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"max_hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bebyggelsesprocent","beregnes_af","max_etager","max_hoejde_m"]},"omfang":{"type":"object","properties":{"bebygget_areal_procent":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bebygpctar` — max bebygget areal (footprint) in percent. Not the bebyggelsesprocent (etageareal)."},"bebygget_areal_procent_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`bygm2` — max bebygget areal, m². Always null per specific anvendelse."},"max_bebygget_areal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`eareal` — max etageareal, m²."},"max_etageareal_m2_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"max_rumfang_m3_pr_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`m3_m2` — max rumfang, m³ per m²."},"max_rumfang_beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]},"min_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`minuds` — minimum grundstørrelse at udstykning, m²."},"max_udstykning_m2":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`maxuds` — maximum grundstørrelse at udstykning, m²."},"max_antal_udstykninger":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`udsantal` (rammer: `udstykantal`)."},"udstykningsforbud":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`udsbefor` (rammer: `udstykforbud`)."},"max_boligenheder":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"`boligenhed` (rammer: `maxboligenhed`)."},"fuldt_udbygget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"`fuldtbyg`."}},"required":["bebygget_areal_procent","bebygget_areal_procent_beregnes_af","max_bebygget_areal_m2","max_bebygget_areal_m2_beregnes_af","max_etageareal_m2","max_etageareal_m2_beregnes_af","max_rumfang_m3_pr_m2","max_rumfang_beregnes_af","min_udstykning_m2","max_udstykning_m2","max_antal_udstykninger","udstykningsforbud","max_boligenheder","fuldt_udbygget"],"description":"Omfang and udstykning limits, raw from Plandata's structured fields. null = not registered (not \"no limit\") — the plan text governs."}},"required":["kode","tekst","bebyggelse","omfang"]},"description":"`anvspec1..9` — the specific anvendelser, each with the limits set for that use."}},"required":["plan_id","plannr","navn","status","aflysningstype","kommune","anvendelse","zone","datoer","dokument_url","bebyggelse","bestemmelser","specifikke_anvendelser"]}},"restbyggeret":{"anyOf":[{"type":"object","properties":{"vejledende":{"type":"boolean","const":true},"restbyggeret_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"tilladt_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"grundlag":{"type":"object","properties":{"kilde":{"anyOf":[{"type":"string","enum":["delomraade","lokalplan","kommuneplanramme"]},{"type":"null"}]},"plan_id":{"anyOf":[{"type":"number"},{"type":"null"}]},"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"delnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"bebyggelsesprocent":{"anyOf":[{"type":"number"},{"type":"null"}]},"beregnes_af":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kilde","plan_id","plannr","delnr","bebyggelsesprocent","beregnes_af"]},"grundareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_jordstykker":{"type":"number"},"eksisterende_etageareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"eksisterende_bebygget_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_bygninger":{"type":"number"},"bygninger_uden_etageareal":{"type":"number"},"formel":{"type":"string"},"ikke_beregnet":{"anyOf":[{"type":"string"},{"type":"null"}]},"forbehold":{"type":"string"}},"required":["vejledende","restbyggeret_m2","tilladt_etageareal_m2","grundlag","grundareal_m2","antal_jordstykker","eksisterende_etageareal_m2","eksisterende_bebygget_areal_m2","antal_bygninger","bygninger_uden_etageareal","formel","ikke_beregnet","forbehold"]},{"type":"null"}]},"kilde":{"type":"object","properties":{"wfs":{"type":"string"},"lag":{"type":"array","items":{"type":"string"}}},"required":["wfs","lag"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","bfe_nummer","zone","har_lokalplan","lokalplaner","delomraader","kommuneplanrammer","aflyste_lokalplaner","restbyggeret","kilde","meta"]},"MiljoeScreening":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"disclaimer":{"type":"string"},"regelsaet":{"type":"object","properties":{"version":{"type":"string"},"kilder":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"titel":{"type":"string"},"udgiver":{"type":"string"},"aar":{"anyOf":[{"type":"number"},{"type":"null"}]},"url":{"type":"string"}},"required":["id","titel","udgiver","aar","url"]}}},"required":["version","kilder"]},"antal_bygninger":{"type":"number"},"bygninger":{"type":"array","items":{"type":"object","properties":{"bygning_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"kategori":{"anyOf":[{"type":"string"},{"type":"null"}]},"input":{"type":"object","properties":{"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar_raa":{"anyOf":[{"type":"number"},{"type":"null"}]},"perioder":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number"},"kilde":{"type":"string","enum":["opfoerelsesaar","om_tilbygningsaar"]}},"required":["aar","kilde"]}},"materialer":{"type":"object","properties":{"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"ydervaeg_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["ydervaeg","ydervaeg_supplerende","tag","tag_supplerende"]},"asbest_registrering":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"energimaerke":{"anyOf":[{"type":"object","properties":{"klasse":{"anyOf":[{"type":"string"},{"type":"null"}]},"udstedt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rudetyper":{"type":"array","items":{"type":"string"}},"antal_forbedringsforslag":{"type":"number"}},"required":["klasse","udstedt","rudetyper","antal_forbedringsforslag"]},{"type":"null"}]}},"required":["opfoerelsesaar","om_tilbygningsaar","om_tilbygningsaar_raa","perioder","materialer","asbest_registrering","energimaerke"]},"mangler":{"type":"array","items":{"type":"string"}},"samlet":{"type":"object","propertyNames":{"type":"string","enum":["asbest","pcb","bly","pah","klorerede_paraffiner","tungmetaller"]},"additionalProperties":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"required":["asbest","pcb","bly","pah","klorerede_paraffiner","tungmetaller"]},"dele":{"type":"array","items":{"type":"object","properties":{"del":{"type":"string","enum":["tag","facade","vinduer_fuger","gulve","indervaegge","installationer","vaadrum","fundament_kaelder"]},"navn":{"type":"string"},"stoffer":{"type":"array","items":{"type":"object","properties":{"stof":{"type":"string","enum":["asbest","pcb","bly","pah","klorerede_paraffiner","tungmetaller"]},"niveau":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"begrundelse":{"type":"array","items":{"type":"string"}},"regler":{"type":"array","items":{"type":"string"},"description":"Ids of the atlas-derived rules that placed the substance."},"ikke_vurderet_aarsag":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["stof","niveau","begrundelse","regler","ikke_vurderet_aarsag"]}},"energiforbedringer":{"type":"array","items":{"type":"string"}}},"required":["del","navn","stoffer","energiforbedringer"]}},"omfang":{"type":"object","properties":{"bebygget_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_bygningsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"hoejde_kilde":{"anyOf":[{"type":"string","const":"DHM"},{"type":"null"}]},"rumfang_m3":{"anyOf":[{"type":"number"},{"type":"null"}]},"affald_ton":{"anyOf":[{"type":"number"},{"type":"null"}]},"selektiv_nedrivning":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["bebygget_m2","samlet_bygningsareal_m2","kaelder_m2","antal_etager","hoejde_m","hoejde_kilde","rumfang_m3","affald_ton","selektiv_nedrivning"]},"fredning":{"anyOf":[{"type":"object","properties":{"fredet":{"type":"boolean"},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fredet","bevaringsvaerdi"]},{"type":"null"}]}},"required":["bygning_id","bygningsnummer","anvendelse","kategori","input","mangler","samlet","dele","omfang","fredning"]}},"grund":{"type":"object","properties":{"niveau":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"begrundelse":{"type":"array","items":{"type":"string"}},"kortlaegning":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["v1","v2","v1_og_v2","ingen"]},"jordstykker":{"type":"array","items":{"type":"object","properties":{"ejerlavskode":{"type":"number"},"matrikelnr":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["v1","v2","v1_og_v2","ingen"]},{"type":"null"}]},"attest_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["ejerlavskode","matrikelnr","status","attest_url"]}}},"required":["status","jordstykker"]},{"type":"null"}]},"omraadeklassificering":{"anyOf":[{"type":"object","properties":{"omraadeklassificeret":{"type":"boolean"},"analysefri":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"analysekrav":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["omraadeklassificeret","analysefri","analysekrav"]},{"type":"null"}]},"olietanke":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"anlaeg_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"klassifikation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"indhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"placering":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"driftstatus":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"etableringsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"niveau":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"begrundelse":{"type":"string"}},"required":["anlaeg_id","klassifikation","indhold","placering","driftstatus","sloejfning","sloejfningsaar","etableringsaar","niveau","begrundelse"]}},{"type":"null"}]},"mangler":{"type":"array","items":{"type":"string"}}},"required":["niveau","begrundelse","kortlaegning","omraadeklassificering","olietanke","mangler"]},"bindinger":{"type":"object","properties":{"fredede_bygninger":{"type":"array","items":{"type":"number"}},"save_vaerdier":{"type":"array","items":{"type":"object","properties":{"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"bevaringsvaerdi":{"type":"number"}},"required":["bygningsnummer","bevaringsvaerdi"]}},"fredning_ukendt":{"type":"number"},"zone":{"anyOf":[{"type":"string","enum":["byzone","landzone","sommerhusomraade"]},{"type":"null"}]},"lokalplaner":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["vedtaget","forslag","aflyst"]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["plannr","navn","status","dokument_url"]}},{"type":"null"}]},"byggelinjer_i_kraft":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"noegle":{"type":"string"},"navn":{"type":"string"},"hjemmel":{"type":"string"}},"required":["noegle","navn","hjemmel"]}},{"type":"null"}]},"noter":{"type":"array","items":{"type":"string"}},"mangler":{"type":"array","items":{"type":"string"}}},"required":["fredede_bygninger","save_vaerdier","fredning_ukendt","zone","lokalplaner","byggelinjer_i_kraft","noter","mangler"]},"affald":{"type":"object","properties":{"vejledende":{"type":"boolean","const":true},"samlet_bygningsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"bygninger_uden_areal":{"type":"number"},"faktor":{"type":"object","properties":{"mindre_ton_pr_m2":{"type":"number"},"stoerre_ton_pr_m2":{"type":"number"},"graense_m2":{"type":"number"}},"required":["mindre_ton_pr_m2","stoerre_ton_pr_m2","graense_m2"]},"faktor_kilde":{"type":"string"},"ton":{"anyOf":[{"type":"number"},{"type":"null"}]},"screeningsgraense_ton":{"type":"number"},"over_graensen_ved_nedrivning":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hjemmel":{"type":"object","properties":{"titel":{"type":"string"},"paragraf":{"type":"string"},"url":{"type":"string"},"tekst":{"type":"string"}},"required":["titel","paragraf","url","tekst"]}},"required":["vejledende","samlet_bygningsareal_m2","bygninger_uden_areal","faktor","faktor_kilde","ton","screeningsgraense_ton","over_graensen_ved_nedrivning","hjemmel"]},"lovgrundlag":{"type":"array","items":{"type":"object","properties":{"titel":{"type":"string"},"paragraf":{"type":"string"},"url":{"type":"string"},"tekst":{"type":"string"}},"required":["titel","paragraf","url","tekst"]}},"input_kilder":{"type":"array","items":{"type":"object","properties":{"kilde":{"type":"string","enum":["bbr","energimaerke","dhm","matrikel","kortlaegning","omraadeklassificering","byggelinjer","plan"]},"status":{"type":"string","enum":["ok","ikke_daekket","fejl","ikke_konfigureret"]},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kilde","status","note"]}},"mangler":{"type":"array","items":{"type":"string"}},"genereret":{"type":"string"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","disclaimer","regelsaet","antal_bygninger","bygninger","grund","bindinger","affald","lovgrundlag","input_kilder","mangler","genereret","meta"],"description":"Skrivebordsscreening ud fra offentlige registre — ikke en lovpligtig miljø- og ressourcekortlægning."},"MiljoeScreeningBatchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"bfe":{"type":"number"},"screening":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"disclaimer":{"type":"string"},"regelsaet":{"type":"object","properties":{"version":{"type":"string"},"kilder":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"titel":{"type":"string"},"udgiver":{"type":"string"},"aar":{"anyOf":[{"type":"number"},{"type":"null"}]},"url":{"type":"string"}},"required":["id","titel","udgiver","aar","url"]}}},"required":["version","kilder"]},"antal_bygninger":{"type":"number"},"bygninger":{"type":"array","items":{"type":"object","properties":{"bygning_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"kategori":{"anyOf":[{"type":"string"},{"type":"null"}]},"input":{"type":"object","properties":{"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar_raa":{"anyOf":[{"type":"number"},{"type":"null"}]},"perioder":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number"},"kilde":{"type":"string","enum":["opfoerelsesaar","om_tilbygningsaar"]}},"required":["aar","kilde"]}},"materialer":{"type":"object","properties":{"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"ydervaeg_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tag_supplerende":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]}},"required":["ydervaeg","ydervaeg_supplerende","tag","tag_supplerende"]},"asbest_registrering":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"energimaerke":{"anyOf":[{"type":"object","properties":{"klasse":{"anyOf":[{"type":"string"},{"type":"null"}]},"udstedt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rudetyper":{"type":"array","items":{"type":"string"}},"antal_forbedringsforslag":{"type":"number"}},"required":["klasse","udstedt","rudetyper","antal_forbedringsforslag"]},{"type":"null"}]}},"required":["opfoerelsesaar","om_tilbygningsaar","om_tilbygningsaar_raa","perioder","materialer","asbest_registrering","energimaerke"]},"mangler":{"type":"array","items":{"type":"string"}},"samlet":{"type":"object","propertyNames":{"type":"string","enum":["asbest","pcb","bly","pah","klorerede_paraffiner","tungmetaller"]},"additionalProperties":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"required":["asbest","pcb","bly","pah","klorerede_paraffiner","tungmetaller"]},"dele":{"type":"array","items":{"type":"object","properties":{"del":{"type":"string","enum":["tag","facade","vinduer_fuger","gulve","indervaegge","installationer","vaadrum","fundament_kaelder"]},"navn":{"type":"string"},"stoffer":{"type":"array","items":{"type":"object","properties":{"stof":{"type":"string","enum":["asbest","pcb","bly","pah","klorerede_paraffiner","tungmetaller"]},"niveau":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"begrundelse":{"type":"array","items":{"type":"string"}},"regler":{"type":"array","items":{"type":"string"},"description":"Ids of the atlas-derived rules that placed the substance."},"ikke_vurderet_aarsag":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["stof","niveau","begrundelse","regler","ikke_vurderet_aarsag"]}},"energiforbedringer":{"type":"array","items":{"type":"string"}}},"required":["del","navn","stoffer","energiforbedringer"]}},"omfang":{"type":"object","properties":{"bebygget_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_bygningsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"kaelder_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"hoejde_kilde":{"anyOf":[{"type":"string","const":"DHM"},{"type":"null"}]},"rumfang_m3":{"anyOf":[{"type":"number"},{"type":"null"}]},"affald_ton":{"anyOf":[{"type":"number"},{"type":"null"}]},"selektiv_nedrivning":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["bebygget_m2","samlet_bygningsareal_m2","kaelder_m2","antal_etager","hoejde_m","hoejde_kilde","rumfang_m3","affald_ton","selektiv_nedrivning"]},"fredning":{"anyOf":[{"type":"object","properties":{"fredet":{"type":"boolean"},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["fredet","bevaringsvaerdi"]},{"type":"null"}]}},"required":["bygning_id","bygningsnummer","anvendelse","kategori","input","mangler","samlet","dele","omfang","fredning"]}},"grund":{"type":"object","properties":{"niveau":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"begrundelse":{"type":"array","items":{"type":"string"}},"kortlaegning":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["v1","v2","v1_og_v2","ingen"]},"jordstykker":{"type":"array","items":{"type":"object","properties":{"ejerlavskode":{"type":"number"},"matrikelnr":{"type":"string"},"status":{"anyOf":[{"type":"string","enum":["v1","v2","v1_og_v2","ingen"]},{"type":"null"}]},"attest_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["ejerlavskode","matrikelnr","status","attest_url"]}}},"required":["status","jordstykker"]},{"type":"null"}]},"omraadeklassificering":{"anyOf":[{"type":"object","properties":{"omraadeklassificeret":{"type":"boolean"},"analysefri":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"analysekrav":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["omraadeklassificeret","analysefri","analysekrav"]},{"type":"null"}]},"olietanke":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"anlaeg_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"klassifikation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"indhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"placering":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"driftstatus":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"sloejfningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"etableringsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"niveau":{"type":"string","enum":["hoej","mulig","lav","ikke_vurderet"],"description":"hoej = the building atlas rates it \"stor sandsynlighed\" (or BBR records it); mulig = \"kan forekomme\" or only the om-/tilbygningsår hits; lav = assessed, no rule applies; ikke_vurderet = an input was missing. Missing data is never lav."},"begrundelse":{"type":"string"}},"required":["anlaeg_id","klassifikation","indhold","placering","driftstatus","sloejfning","sloejfningsaar","etableringsaar","niveau","begrundelse"]}},{"type":"null"}]},"mangler":{"type":"array","items":{"type":"string"}}},"required":["niveau","begrundelse","kortlaegning","omraadeklassificering","olietanke","mangler"]},"bindinger":{"type":"object","properties":{"fredede_bygninger":{"type":"array","items":{"type":"number"}},"save_vaerdier":{"type":"array","items":{"type":"object","properties":{"bygningsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"bevaringsvaerdi":{"type":"number"}},"required":["bygningsnummer","bevaringsvaerdi"]}},"fredning_ukendt":{"type":"number"},"zone":{"anyOf":[{"type":"string","enum":["byzone","landzone","sommerhusomraade"]},{"type":"null"}]},"lokalplaner":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"plannr":{"anyOf":[{"type":"string"},{"type":"null"}]},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["vedtaget","forslag","aflyst"]},"dokument_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["plannr","navn","status","dokument_url"]}},{"type":"null"}]},"byggelinjer_i_kraft":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"noegle":{"type":"string"},"navn":{"type":"string"},"hjemmel":{"type":"string"}},"required":["noegle","navn","hjemmel"]}},{"type":"null"}]},"noter":{"type":"array","items":{"type":"string"}},"mangler":{"type":"array","items":{"type":"string"}}},"required":["fredede_bygninger","save_vaerdier","fredning_ukendt","zone","lokalplaner","byggelinjer_i_kraft","noter","mangler"]},"affald":{"type":"object","properties":{"vejledende":{"type":"boolean","const":true},"samlet_bygningsareal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"bygninger_uden_areal":{"type":"number"},"faktor":{"type":"object","properties":{"mindre_ton_pr_m2":{"type":"number"},"stoerre_ton_pr_m2":{"type":"number"},"graense_m2":{"type":"number"}},"required":["mindre_ton_pr_m2","stoerre_ton_pr_m2","graense_m2"]},"faktor_kilde":{"type":"string"},"ton":{"anyOf":[{"type":"number"},{"type":"null"}]},"screeningsgraense_ton":{"type":"number"},"over_graensen_ved_nedrivning":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hjemmel":{"type":"object","properties":{"titel":{"type":"string"},"paragraf":{"type":"string"},"url":{"type":"string"},"tekst":{"type":"string"}},"required":["titel","paragraf","url","tekst"]}},"required":["vejledende","samlet_bygningsareal_m2","bygninger_uden_areal","faktor","faktor_kilde","ton","screeningsgraense_ton","over_graensen_ved_nedrivning","hjemmel"]},"lovgrundlag":{"type":"array","items":{"type":"object","properties":{"titel":{"type":"string"},"paragraf":{"type":"string"},"url":{"type":"string"},"tekst":{"type":"string"}},"required":["titel","paragraf","url","tekst"]}},"input_kilder":{"type":"array","items":{"type":"object","properties":{"kilde":{"type":"string","enum":["bbr","energimaerke","dhm","matrikel","kortlaegning","omraadeklassificering","byggelinjer","plan"]},"status":{"type":"string","enum":["ok","ikke_daekket","fejl","ikke_konfigureret"]},"note":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kilde","status","note"]}},"mangler":{"type":"array","items":{"type":"string"}},"genereret":{"type":"string"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["bfe_nummer","disclaimer","regelsaet","antal_bygninger","bygninger","grund","bindinger","affald","lovgrundlag","input_kilder","mangler","genereret","meta"],"description":"Skrivebordsscreening ud fra offentlige registre — ikke en lovpligtig miljø- og ressourcekortlægning."}},"required":["bfe","screening"]}},"errors":{"type":"array","items":{"type":"object","properties":{"bfe":{"type":"number"},"error":{"type":"string"},"status":{"type":"number"}},"required":["bfe","error","status"]}},"requested":{"type":"number"},"succeeded":{"type":"number"},"failed":{"type":"number"}},"required":["results","errors","requested","succeeded","failed"]},"MiljoeStoej":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"kortlaegning":{"type":"object","properties":{"aar":{"type":"number","description":"The newest mapping round in the answer (2022 or 2017)."},"runder":{"type":"object","properties":{"vej":{"type":"number"},"jernbane":{"type":"number"},"lufthavn":{"type":"number"},"industri":{"type":"number"}},"required":["vej","jernbane","lufthavn","industri"],"description":"The mapping round each source is from: by default vej/jernbane from the Danish 2022 calculation (Nord2000) once loaded, lufthavn/industri from 2017."},"note":{"type":"string"}},"required":["aar","runder","note"]},"kilder":{"type":"object","properties":{"vej":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"jernbane":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"lufthavn":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"industri":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]}},"required":["vej","jernbane","lufthavn","industri"]},"hoejeste":{"type":"object","properties":{"lden":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 55 dB Lden here — never a failed lookup."},"lnight":{"anyOf":[{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},{"type":"null"}],"description":"null = not mapped at or above 50 dB Lnight here — never a failed lookup."}},"required":["lden","lnight"]},"maalinger":{"type":"array","items":{"type":"object","properties":{"kilde":{"type":"string","enum":["vej","jernbane","lufthavn","industri"]},"delkilde":{"type":"string"},"indikator":{"type":"string","enum":["Lden","Lnight"]},"hoejde_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"interval":{"type":"object","properties":{"fra_db":{"type":"number"},"til_db":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"null for the open-ended top class (≥ 75 Lden, ≥ 70 Lnight)."},"tekst":{"type":"string"}},"required":["fra_db","til_db","tekst"],"description":"One 5 dB band."},"lag":{"type":"string","description":"The WFS layer (2017) or the shapefile (2022, e.g. dk_2022_vej_1_5m)."},"runde":{"type":"number","description":"The mapping round of the layer (2017 or 2022)."}},"required":["kilde","delkilde","indikator","hoejde_m","interval","lag","runde"]}},"kilde":{"type":"object","properties":{"wfs":{"type":"string"},"lag":{"type":"array","items":{"type":"string"}},"kort":{"type":"string"},"om":{"type":"string"},"download":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Miljøstyrelsen's 2022 download the 2022 bands were built from; null = none used."}},"required":["wfs","lag","kort","om","download"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","kortlaegning","kilder","hoejeste","maalinger","kilde","meta"]},"MiljoeOversvoemmelse":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"epsg25832":{"type":"array","prefixItems":[{"type":"number"},{"type":"number"}]},"opslag":{"type":"object","properties":{"type":{"type":"string","enum":["punkt","adgangsadresse","ejendom"]},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["type","adgangsadresse_id","bfe_nummer"]},"havvand":{"type":"object","properties":{"status":{"type":"string","enum":["besvaret","utilgaengelig"],"description":"utilgaengelig = the source could not be read; its values are null and say nothing."},"oversvoemmet_i_et_scenarie":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hyppigste_i_dag":{"anyOf":[{"type":"object","properties":{"aar":{"type":"number","description":"2020, 2070 or 2120 (RCP8.5)."},"gentagelsesperiode_aar":{"type":"number","description":"50, 100, 1000 or 10000."},"dybde_m":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Mean depth (m) in the 100 m cell; null = not modelled as flooded from the sea."}},"required":["aar","gentagelsesperiode_aar","dybde_m"]},{"type":"null"}]},"hyppigste_2120":{"anyOf":[{"type":"object","properties":{"aar":{"type":"number","description":"2020, 2070 or 2120 (RCP8.5)."},"gentagelsesperiode_aar":{"type":"number","description":"50, 100, 1000 or 10000."},"dybde_m":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Mean depth (m) in the 100 m cell; null = not modelled as flooded from the sea."}},"required":["aar","gentagelsesperiode_aar","dybde_m"]},{"type":"null"}]},"scenarier":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number","description":"2020, 2070 or 2120 (RCP8.5)."},"gentagelsesperiode_aar":{"type":"number","description":"50, 100, 1000 or 10000."},"dybde_m":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Mean depth (m) in the 100 m cell; null = not modelled as flooded from the sea."}},"required":["aar","gentagelsesperiode_aar","dybde_m"]}},"note":{"type":"string"}},"required":["status","oversvoemmet_i_et_scenarie","hyppigste_i_dag","hyppigste_2120","scenarier","note"]},"skybrud":{"type":"object","properties":{"status":{"type":"string","enum":["besvaret","utilgaengelig"],"description":"utilgaengelig = the source could not be read; its values are null and say nothing."},"i_lavning":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"lavning":{"anyOf":[{"type":"object","properties":{"id":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxdybde_m":{"type":"number"},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"volumen_m3":{"anyOf":[{"type":"number"},{"type":"null"}]},"fyldes_ved_mm":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Rain (mm) over the catchment that fills it."},"opland_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"befaestet_pct":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","maxdybde_m","areal_m2","volumen_m3","fyldes_ved_mm","opland_m2","befaestet_pct"]},{"type":"null"}]},"naer":{"type":"object","properties":{"radius_m":{"type":"number"},"antal":{"anyOf":[{"type":"number"},{"type":"null"}]},"dybeste_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"fyldes_foerst_ved_mm":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["radius_m","antal","dybeste_m","fyldes_foerst_ved_mm"]},"paa_grunden":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxdybde_m":{"type":"number"},"areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"volumen_m3":{"anyOf":[{"type":"number"},{"type":"null"}]},"fyldes_ved_mm":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Rain (mm) over the catchment that fills it."},"opland_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"befaestet_pct":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["id","maxdybde_m","areal_m2","volumen_m3","fyldes_ved_mm","opland_m2","befaestet_pct"]}},{"type":"null"}]},"antal_paa_grunden":{"anyOf":[{"type":"number"},{"type":"null"}]},"note":{"type":"string"}},"required":["status","i_lavning","lavning","naer","paa_grunden","antal_paa_grunden","note"]},"risikoomraade":{"type":"object","properties":{"status":{"type":"string","enum":["besvaret","utilgaengelig"],"description":"utilgaengelig = the source could not be read; its values are null and say nothing."},"inden_for":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"omraader":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}},"required":["status","inden_for","omraader","note"]},"ikke_med":{"type":"string"},"kilde":{"type":"object","properties":{"havvand":{"type":"string"},"skybrud":{"type":"string"},"risikoomraade":{"type":"string"},"kreditering":{"type":"string"}},"required":["havvand","skybrud","risikoomraade","kreditering"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","epsg25832","opslag","havvand","skybrud","risikoomraade","ikke_med","kilde","meta"],"description":"Stormflod (Kystdirektoratet), lavninger/skybrud and designated flood risk areas (Miljøstyrelsen), each with its own status."},"VurEjendomsvurdering":{"type":"object","properties":{"bfe_nummer":{"type":"number"},"seneste":{"anyOf":[{"type":"object","properties":{"aar":{"type":"number"},"vurderingsmarkering":{"type":"number","description":"Vurderingsstyrelsens VURMark — 'kilde-system og type for vurderingen'. Reported raw because the value list is not published. Load-bearing: one year can carry more than one row with different markings and different amounts."},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Whole kroner, not øre."},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Whole kroner, not øre."},"vurderet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"aendringsdato":{"anyOf":[{"type":"string"},{"type":"null"}]},"aendringskode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw code; upstream writes \"\" for none, we write null."},"benyttelseskode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw benyttelseskode as assessed. Not translated: the VUR schema publishes no value list, and a hand-authored one would be indistinguishable from a verified one."},"juridisk_kategori":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string"}},"required":["kode","tekst"]},{"type":"null"}]},"juridisk_underkategori":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string"}},"required":["kode","tekst"]},{"type":"null"}]},"daekningsafgift":{"anyOf":[{"type":"object","properties":{"forskelsvaerdi_kr":{"type":"number"},"pligtkode":{"anyOf":[{"type":"string"},{"type":"null"}]},"pligt_type_kode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["forskelsvaerdi_kr","pligtkode","pligt_type_kode"]},{"type":"null"}],"description":"Null when the row records none — 0 kr with no codes is an absence, not a zero rate."},"antal_medvurderede_lejligheder":{"anyOf":[{"type":"number"},{"type":"null"}]},"vurderingskreds_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ajourfoert":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["aar","vurderingsmarkering","ejendomsvaerdi_kr","grundvaerdi_kr","vurderet_areal_m2","aendringsdato","aendringskode","benyttelseskode","juridisk_kategori","juridisk_underkategori","daekningsafgift","antal_medvurderede_lejligheder","vurderingskreds_kode","ajourfoert"]},{"type":"null"}],"description":"The single newest assessment, ONLY when the BFE resolves to exactly one vurderingsejendom. With several it is null and the caller must read the series — null here means \"ask a sharper question\", never \"not assessed\". Check antal_vurderingsejendomme to tell the two apart."},"antal_vurderingsejendomme":{"type":"number"},"vurderingsejendomme":{"type":"array","items":{"type":"object","properties":{"vurderingsejendom_id":{"type":"number"},"esr_kommunenummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"esr_ejendomsnummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"seneste":{"anyOf":[{"type":"object","properties":{"aar":{"type":"number"},"vurderingsmarkering":{"type":"number","description":"Vurderingsstyrelsens VURMark — 'kilde-system og type for vurderingen'. Reported raw because the value list is not published. Load-bearing: one year can carry more than one row with different markings and different amounts."},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Whole kroner, not øre."},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Whole kroner, not øre."},"vurderet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"aendringsdato":{"anyOf":[{"type":"string"},{"type":"null"}]},"aendringskode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw code; upstream writes \"\" for none, we write null."},"benyttelseskode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw benyttelseskode as assessed. Not translated: the VUR schema publishes no value list, and a hand-authored one would be indistinguishable from a verified one."},"juridisk_kategori":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string"}},"required":["kode","tekst"]},{"type":"null"}]},"juridisk_underkategori":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string"}},"required":["kode","tekst"]},{"type":"null"}]},"daekningsafgift":{"anyOf":[{"type":"object","properties":{"forskelsvaerdi_kr":{"type":"number"},"pligtkode":{"anyOf":[{"type":"string"},{"type":"null"}]},"pligt_type_kode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["forskelsvaerdi_kr","pligtkode","pligt_type_kode"]},{"type":"null"}],"description":"Null when the row records none — 0 kr with no codes is an absence, not a zero rate."},"antal_medvurderede_lejligheder":{"anyOf":[{"type":"number"},{"type":"null"}]},"vurderingskreds_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ajourfoert":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["aar","vurderingsmarkering","ejendomsvaerdi_kr","grundvaerdi_kr","vurderet_areal_m2","aendringsdato","aendringskode","benyttelseskode","juridisk_kategori","juridisk_underkategori","daekningsafgift","antal_medvurderede_lejligheder","vurderingskreds_kode","ajourfoert"]},{"type":"null"}],"description":"Newest in THIS series: highest year, ties broken by the newest ajourfoert."},"vurderinger":{"type":"array","items":{"type":"object","properties":{"aar":{"type":"number"},"vurderingsmarkering":{"type":"number","description":"Vurderingsstyrelsens VURMark — 'kilde-system og type for vurderingen'. Reported raw because the value list is not published. Load-bearing: one year can carry more than one row with different markings and different amounts."},"ejendomsvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Whole kroner, not øre."},"grundvaerdi_kr":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Whole kroner, not øre."},"vurderet_areal_m2":{"anyOf":[{"type":"number"},{"type":"null"}]},"aendringsdato":{"anyOf":[{"type":"string"},{"type":"null"}]},"aendringskode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw code; upstream writes \"\" for none, we write null."},"benyttelseskode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Raw benyttelseskode as assessed. Not translated: the VUR schema publishes no value list, and a hand-authored one would be indistinguishable from a verified one."},"juridisk_kategori":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string"}},"required":["kode","tekst"]},{"type":"null"}]},"juridisk_underkategori":{"anyOf":[{"type":"object","properties":{"kode":{"type":"number"},"tekst":{"type":"string"}},"required":["kode","tekst"]},{"type":"null"}]},"daekningsafgift":{"anyOf":[{"type":"object","properties":{"forskelsvaerdi_kr":{"type":"number"},"pligtkode":{"anyOf":[{"type":"string"},{"type":"null"}]},"pligt_type_kode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["forskelsvaerdi_kr","pligtkode","pligt_type_kode"]},{"type":"null"}],"description":"Null when the row records none — 0 kr with no codes is an absence, not a zero rate."},"antal_medvurderede_lejligheder":{"anyOf":[{"type":"number"},{"type":"null"}]},"vurderingskreds_kode":{"anyOf":[{"type":"number"},{"type":"null"}]},"ajourfoert":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["aar","vurderingsmarkering","ejendomsvaerdi_kr","grundvaerdi_kr","vurderet_areal_m2","aendringsdato","aendringskode","benyttelseskode","juridisk_kategori","juridisk_underkategori","daekningsafgift","antal_medvurderede_lejligheder","vurderingskreds_kode","ajourfoert"]},"description":"The whole series, newest first."}},"required":["vurderingsejendom_id","esr_kommunenummer","esr_ejendomsnummer","seneste","vurderinger"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"hentet":{"type":"string"}},"required":["kilde","hentet"]}},"required":["bfe_nummer","seneste","antal_vurderingsejendomme","vurderingsejendomme","meta"]},"StednavnePunkt":{"type":"object","properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},"radius_m":{"type":"number"},"antal":{"type":"number"},"truncated":{"type":"boolean"},"stednavne":{"type":"array","items":{"type":"object","properties":{"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string"},"afstand_m":{"anyOf":[{"type":"number"},{"type":"null"}]},"geometri":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["navn","type","afstand_m","geometri"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["punkt","radius_m","antal","truncated","stednavne","meta"]},"AdresseResponse":{"type":"object","properties":{"adresse":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"etage":{"anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"_note":{"type":"string"},"_error":{"type":"string"}},"required":["id","betegnelse"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"as_of":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["adresse","meta"],"description":"A DAR address resolved by UUID — structured + formatted (DAWA replacement)."},"AdresseHistorik":{"type":"object","properties":{"type":{"type":"string","const":"adresse_historik"},"id":{"type":"string"},"niveau":{"type":"string","enum":["adresse","husnummer"]},"versioner":{"type":"array","items":{"type":"object","properties":{"registrering_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"registrering_til":{"anyOf":[{"type":"string"},{"type":"null"}]},"virkning_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"virkning_til":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"etage":{"anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["registrering_fra","registrering_til","virkning_fra","virkning_til","status","husnr","etage","doer"]}},"afkortet":{"type":"boolean"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["type","id","niveau","versioner","afkortet","meta"],"description":"Bitemporal version history of one DAR address (Adresse or Husnummer grain)."},"AdresseSearch":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"betegnelse":{"type":"string"},"adgangsadresse_id":{"type":"string"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["betegnelse","adgangsadresse_id","bfe_nummer","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat"]}}},"required":["results"],"description":"DAR-native address autocomplete — pg_trgm-ranked adgangsadresser for a query."},"CvrResponse":{"type":"object","properties":{"virksomhed":{"type":"object","properties":{"cvr":{"type":"string"},"navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}]},"virksomhedsform":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse":{"type":"object","properties":{"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"etage":{"anyOf":[{"type":"string"},{"type":"null"}]},"doer":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune_navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"regionskode":{"anyOf":[{"type":"string"},{"type":"null"}]},"region_navn":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["vejnavn","husnr","etage","doer","postnr","postnrnavn","kommunekode","kommune_navn","regionskode","region_navn","betegnelse"]},"branche":{"anyOf":[{"type":"object","properties":{"kode":{"anyOf":[{"type":"string"},{"type":"null"}]},"tekst":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["kode","tekst"]},{"type":"null"}]},"startdato":{"anyOf":[{"type":"string"},{"type":"null"}]},"ophoersdato":{"anyOf":[{"type":"string"},{"type":"null"}]},"reklamebeskyttet":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"telefon":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"hjemmeside":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["cvr","navn","status","virksomhedsform","adresse","branche","startdato","ophoersdato","reklamebeskyttet","telefon","email","hjemmeside"]},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["virksomhed","meta"],"description":"A CVR company resolved by CVR number — navn, status, beliggenhedsadresse, branche."},"CvrSearch":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"cvr_nummer":{"type":"number"},"navn":{"type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"null"}]},"virksomhedsform":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommune":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["cvr_nummer","navn","status","virksomhedsform","kommune"]}},"count":{"type":"number"},"query":{"type":"string"}},"required":["results","count","query"],"description":"A page of CVR company summaries matched by name over the local index — each hit carries a cvr_nummer to fetch full detail via GET /v1/cvr/{cvr}."},"Bygningssoegning":{"type":"object","properties":{"type":{"type":"string","const":"bygningssoegning"},"omfang":{"type":"string","enum":["kommune","postnummer","kortudsnit","hele_landet"],"description":"The area the search covered."},"antal":{"type":"number","description":"Exact number of buildings matching the filter."},"side":{"type":"number"},"per_side":{"type":"number"},"sider":{"type":"number"},"begraenset":{"type":"boolean","description":"True when the plan limited this answer to the first page (antal stays exact)."},"bygninger":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"BBR Bygning id"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"type":"string"},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_areal":{"anyOf":[{"type":"number"},{"type":"null"}]},"boligareal":{"anyOf":[{"type":"number"},{"type":"null"}]},"erhvervsareal":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"varmeinstallation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"supplerende_varme":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tagdaekning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"asbest":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"olietank":{"type":"boolean","description":"An oil tank in use (not sløjfet) is registered on the plot."},"grundareal":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Matriklen's registreret areal of the property (all its jordstykker), m²."},"jordforurening":{"anyOf":[{"type":"string","enum":["V1","V2","V1 og V2"]},{"type":"null"}],"description":"Kortlagt jordforurening on the property’s parcels (DKJord), null = not kortlagt."},"fredet":{"type":"boolean","description":"FBB: the building is fredet."},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"FBB SAVE bevaringsværdi 1 (highest) – 9; null = not assessed."},"afloebsforhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"spildevandspaabud":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"BBR rensningspåbud (byg124, else the grund’s gru023)."},"solceller":{"type":"boolean","description":"Solcelleanlæg in use (BBR teknisk anlæg 1230)."},"jordvarme":{"type":"boolean","description":"Jordvarmeslanger in use (BBR teknisk anlæg 1220)."},"energimaerke":{"anyOf":[{"type":"string","enum":["A","B","C","D","E","F","G"]},{"type":"null"}],"description":"Energimærke class letter when the property’s label is in Grundfast’s corpus (partial coverage)."}},"required":["id","bfe_nummer","adgangsadresse_id","adresse","kommunekode","postnr","koordinat","anvendelse","opfoerelsesaar","om_tilbygningsaar","samlet_areal","boligareal","erhvervsareal","antal_etager","varmeinstallation","opvarmningsmiddel","supplerende_varme","tagdaekning","ydervaeg","asbest","olietank","grundareal","jordforurening","fredet","bevaringsvaerdi","afloebsforhold","spildevandspaabud","solceller","jordvarme","energimaerke"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["type","omfang","antal","side","per_side","sider","begraenset","bygninger","meta"],"description":"Standing BBR buildings in Denmark, a kommune, a postnummer or a map window that match the filter."},"Aendringer":{"type":"object","properties":{"antal":{"type":"number"},"aendringer":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Stable id of the change: adresse:<sekvens> or bygning:<sekvens>."},"registreret":{"type":"string","description":"When Grundfast registered the change (ISO 8601)."},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string","const":"adresse"},"haendelse":{"type":"string","enum":["adresse.oprettet","adresse.aendret","adresse.nedlagt"]},"status":{"anyOf":[{"type":"string","enum":["foreloebig","gaeldende","nedlagt","henlagt"]},{"type":"null"}]},"aendrede_felter":{"type":"array","items":{"type":"string"}},"foer":{"anyOf":[{"type":"object","properties":{"betegnelse":{"type":"string"},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["betegnelse","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat"]},{"type":"null"}]},"efter":{"anyOf":[{"type":"object","properties":{"betegnelse":{"type":"string"},"vejnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"husnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnrnavn":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]}},"required":["betegnelse","vejnavn","husnr","postnr","postnrnavn","kommunekode","koordinat"]},{"type":"null"}]},"kilde":{"type":"string","description":"The DAR extract the change was read from (DAR_<yyyymmddhhmmss>)."}},"required":["id","registreret","kommunekode","postnr","adgangsadresse_id","betegnelse","type","haendelse","status","aendrede_felter","foer","efter","kilde"]},{"type":"object","properties":{"id":{"type":"string","description":"Stable id of the change: adresse:<sekvens> or bygning:<sekvens>."},"registreret":{"type":"string","description":"When Grundfast registered the change (ISO 8601)."},"kommunekode":{"anyOf":[{"type":"string"},{"type":"null"}]},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"betegnelse":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":{"type":"string","const":"bygning"},"haendelse":{"type":"string","enum":["bygning.tilkommet","bygning.aendret","bygning.udgaaet"]},"bygning_id":{"type":"string"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"aendrede_felter":{"type":"array","items":{"type":"string"}},"foer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"BBR Bygning id"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"type":"string"},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_areal":{"anyOf":[{"type":"number"},{"type":"null"}]},"boligareal":{"anyOf":[{"type":"number"},{"type":"null"}]},"erhvervsareal":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"varmeinstallation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"supplerende_varme":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tagdaekning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"asbest":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"olietank":{"type":"boolean","description":"An oil tank in use (not sløjfet) is registered on the plot."},"grundareal":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Matriklen's registreret areal of the property (all its jordstykker), m²."},"jordforurening":{"anyOf":[{"type":"string","enum":["V1","V2","V1 og V2"]},{"type":"null"}],"description":"Kortlagt jordforurening on the property’s parcels (DKJord), null = not kortlagt."},"fredet":{"type":"boolean","description":"FBB: the building is fredet."},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"FBB SAVE bevaringsværdi 1 (highest) – 9; null = not assessed."},"afloebsforhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"spildevandspaabud":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"BBR rensningspåbud (byg124, else the grund’s gru023)."},"solceller":{"type":"boolean","description":"Solcelleanlæg in use (BBR teknisk anlæg 1230)."},"jordvarme":{"type":"boolean","description":"Jordvarmeslanger in use (BBR teknisk anlæg 1220)."},"energimaerke":{"anyOf":[{"type":"string","enum":["A","B","C","D","E","F","G"]},{"type":"null"}],"description":"Energimærke class letter when the property’s label is in Grundfast’s corpus (partial coverage)."}},"required":["id","bfe_nummer","adgangsadresse_id","adresse","kommunekode","postnr","koordinat","anvendelse","opfoerelsesaar","om_tilbygningsaar","samlet_areal","boligareal","erhvervsareal","antal_etager","varmeinstallation","opvarmningsmiddel","supplerende_varme","tagdaekning","ydervaeg","asbest","olietank","grundareal","jordforurening","fredet","bevaringsvaerdi","afloebsforhold","spildevandspaabud","solceller","jordvarme","energimaerke"]},{"type":"null"}]},"efter":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"BBR Bygning id"},"bfe_nummer":{"anyOf":[{"type":"number"},{"type":"null"}]},"adgangsadresse_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"adresse":{"anyOf":[{"type":"string"},{"type":"null"}]},"kommunekode":{"type":"string"},"postnr":{"anyOf":[{"type":"string"},{"type":"null"}]},"koordinat":{"anyOf":[{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}},"required":["lon","lat"]},{"type":"null"}]},"anvendelse":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opfoerelsesaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"om_tilbygningsaar":{"anyOf":[{"type":"number"},{"type":"null"}]},"samlet_areal":{"anyOf":[{"type":"number"},{"type":"null"}]},"boligareal":{"anyOf":[{"type":"number"},{"type":"null"}]},"erhvervsareal":{"anyOf":[{"type":"number"},{"type":"null"}]},"antal_etager":{"anyOf":[{"type":"number"},{"type":"null"}]},"varmeinstallation":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"opvarmningsmiddel":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"supplerende_varme":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"tagdaekning":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"ydervaeg":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"asbest":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"olietank":{"type":"boolean","description":"An oil tank in use (not sløjfet) is registered on the plot."},"grundareal":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Matriklen's registreret areal of the property (all its jordstykker), m²."},"jordforurening":{"anyOf":[{"type":"string","enum":["V1","V2","V1 og V2"]},{"type":"null"}],"description":"Kortlagt jordforurening on the property’s parcels (DKJord), null = not kortlagt."},"fredet":{"type":"boolean","description":"FBB: the building is fredet."},"bevaringsvaerdi":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"FBB SAVE bevaringsværdi 1 (highest) – 9; null = not assessed."},"afloebsforhold":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}]},"spildevandspaabud":{"anyOf":[{"type":"object","properties":{"kode":{"type":"string"},"tekst":{"type":"string"}},"required":["kode","tekst"],"description":"A translated code field: raw code + human-readable Danish label."},{"type":"null"}],"description":"BBR rensningspåbud (byg124, else the grund’s gru023)."},"solceller":{"type":"boolean","description":"Solcelleanlæg in use (BBR teknisk anlæg 1230)."},"jordvarme":{"type":"boolean","description":"Jordvarmeslanger in use (BBR teknisk anlæg 1220)."},"energimaerke":{"anyOf":[{"type":"string","enum":["A","B","C","D","E","F","G"]},{"type":"null"}],"description":"Energimærke class letter when the property’s label is in Grundfast’s corpus (partial coverage)."}},"required":["id","bfe_nummer","adgangsadresse_id","adresse","kommunekode","postnr","koordinat","anvendelse","opfoerelsesaar","om_tilbygningsaar","samlet_areal","boligareal","erhvervsareal","antal_etager","varmeinstallation","opvarmningsmiddel","supplerende_varme","tagdaekning","ydervaeg","asbest","olietank","grundareal","jordforurening","fredet","bevaringsvaerdi","afloebsforhold","spildevandspaabud","solceller","jordvarme","energimaerke"]},{"type":"null"}]},"kilde":{"type":"string","description":"The BBR snapshot (ISO 8601) the change was found in."}},"required":["id","registreret","kommunekode","postnr","adgangsadresse_id","betegnelse","type","haendelse","bygning_id","bfe_nummer","aendrede_felter","foer","efter","kilde"]}]}},"naeste_cursor":{"type":"string","description":"Pass as ?cursor= on the next call."},"flere":{"type":"boolean"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"daekning":{"type":"object","properties":{"adresse":{"type":"object","properties":{"daekket_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"senest_opdateret":{"anyOf":[{"type":"string"},{"type":"null"}]},"seneste_udtraek":{"anyOf":[{"type":"string"},{"type":"null"}]},"opbevaring_dage":{"type":"number"},"forsinket":{"type":"boolean"},"huller":{"type":"array","items":{"type":"object","properties":{"udtraek":{"type":"string"},"anvendt":{"type":"string"}},"required":["udtraek","anvendt"]},"description":"DAR deltas applied to the address index but whose changes were NOT logged — those address changes are missing from this feed."}},"required":["daekket_fra","senest_opdateret","seneste_udtraek","opbevaring_dage","forsinket","huller"]},"bygning":{"type":"object","properties":{"daekket_fra":{"anyOf":[{"type":"string"},{"type":"null"}]},"seneste_snapshot":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BBR snapshot instant of the newest compared build — how old the building half is."},"opbevaring_dage":{"type":"number"}},"required":["daekket_fra","seneste_snapshot","opbevaring_dage"]}},"required":["adresse","bygning"]}},"required":["kilde","grundfast_version","daekning"]}},"required":["antal","aendringer","naeste_cursor","flere","meta"],"description":"Address and building changes in a kommune or postnummer, oldest first, interleaved by registration time."},"Bygningsgruppering":{"type":"object","properties":{"type":{"type":"string","const":"bygningsgruppering"},"group_by":{"type":"string","enum":["aarti","tag","anvendelse","kommune","varme","energimaerke"]},"antal":{"type":"number","description":"Exact number of buildings matching the filter (the sum of the groups' antal)."},"grupper":{"type":"array","items":{"type":"object","properties":{"noegle":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Decade start (\"1960\"), BBR code (\"3\"), kommunekode (\"0751\") or energimærke letter (\"C\"); null = not registered (aarti: unknown year; energimaerke: no label in the corpus)."},"tekst":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"\"1960–1969\", the kodeliste text, or the kommune name."},"antal":{"type":"number"},"andel":{"type":"number","description":"Share of the total antal, 0–1 (4 decimals)."}},"required":["noegle","tekst","antal","andel"]}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}},"required":["kilde","grundfast_version"]}},"required":["type","group_by","antal","grupper","meta"],"description":"The building search filter as a distribution: aarti in decade order (unknown last), the others by antal descending."},"RegisterInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":12,"maxLength":200},"name":{"type":"string","minLength":1,"maxLength":200}},"required":["email","password"]},"LoginInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"password":{"type":"string","minLength":1}},"required":["email","password"]},"PasswordResetRequestInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["email"]},"PasswordResetConfirmInput":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":512},"password":{"type":"string","minLength":12,"maxLength":200}},"required":["token","password"]},"EmailVerifyConfirmInput":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":512}},"required":["token"]},"CreateApiKeyInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"permission":{"default":"read_only","type":"string","enum":["full_access","read_only","admin"]},"mode":{"default":"live","type":"string","enum":["live","test"]},"kind":{"default":"secret","type":"string","enum":["secret","public"]},"allowedOrigins":{"maxItems":20,"type":"array","items":{"type":"string"}},"expiresAt":{"type":"string","format":"date-time"},"scopes":{"minItems":1,"maxItems":16,"type":"array","items":{"type":"string","enum":["adresse","bbr","matrikel","dagi","dhm","stednavne","cvr","energimaerke","vurdering","plan","miljoe","luftfoto","eksport","overvaagning","usage","webhooks"]}}},"required":["name"]},"CreateCustomerInput":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"type":"string","minLength":1,"maxLength":200},"tier":{"default":"free","type":"string","enum":["free","starter","pro","scale","enterprise"]}},"required":["email"]}},"responses":{"Error":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/v1/bbr/ejendom:batch":{"post":{"operationId":"postBbrEjendomBatch","summary":"Resolve a list of BFEs in one call (one billable unit per deduped BFE)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjendomBatchInput"}}}},"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjendomBatchResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"description":"Property-keyed batch. Body is `{ bfe: number[] }` only (deduped). Always returns 200 with per-BFE results + partial-failure entries; only an invalid body is a 400. Consumes ONE billable unit per deduped BFE. Ids per call follow the plan: 50 on Pro, 100 on Scale, 150 on Enterprise — a longer list is a 402 (or a 400 past 150) that names the limit; send it as a job (POST /v1/jobs) instead."}},"/v1/bbr/ejendom/{bfe}":{"get":{"operationId":"getBbrEjendomByBfe","summary":"Resolve the full BBR rollup for one BFE","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjendomRollup"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"asOf","in":"query","required":false,"description":"Bitemporal point-in-time: resolve the record as registered/valid at this ISO-8601 date/datetime instead of now; echoed in meta.as_of.","schema":{"type":"string","format":"date-time"}}]}},"/v1/bbr/ejendom/{bfe}/historik":{"get":{"operationId":"getBbrEjendomByBfeHistorik","summary":"BBR version history for one BFE","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BbrHistorik"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/bbr/ejendom/{bfe}/geojson":{"get":{"operationId":"getBbrEjendomByBfeGeojson","summary":"Resolve a BFE as a WFS-compat GeoJSON FeatureCollection","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BbrFeatureCollection"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/bbr/bygning":{"get":{"operationId":"getBbrBygning","summary":"Building(s) for a BFE (query param)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjendomRollup"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"bfe","in":"query","required":true,"schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/bbr/bygninger/soeg":{"get":{"operationId":"getBbrBygningerSoeg","summary":"Search standing buildings in Denmark, a kommune, a postnummer or a map window","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK (json shown; with group_by a Bygningsgruppering; format=csv returns text/csv, jsonl application/x-ndjson, geojson application/geo+json)","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Bygningssoegning"},{"$ref":"#/components/schemas/Bygningsgruppering"}]}},"text/csv":{"schema":{"type":"string"}},"application/x-ndjson":{"schema":{"type":"string"}},"application/geo+json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"The building index has not been loaded on this deployment yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Bygningssøgning: every standing BBR building (status opført) that matches the filter — use, construction year, heating installation and fuel, roof and wall material, registered asbestos, floor areas, storeys, an oil tank, solar cells or ground source heat in use, afløb and spildevandspåbud — plus facts joined on from other registers: the property’s grundareal (Matriklen), kortlagt jordforurening (DKJord V1/V2), fredning and SAVE value (FBB) and the energimærke class (Grundfast’s energimærke corpus — partial coverage, so a class filter only finds labels the corpus holds). Served from a local national building index. The area is ONE of `kommunekode`, `postnr` or `bbox` (a WGS84 window of at most 1° each way); with none the search covers the whole country. Area searches are ordered by address, window and national searches by building id. `antal` is the exact count. Every plan gets the count and the first page (up to 100 buildings, JSON); later pages and the csv/jsonl/geojson formats need the plan named in the 402. Metered as one unit per started 1,000 rows of `per_side`. Filters combine with AND; list filters match ANY of their codes. With `group_by` (aarti, tag, anvendelse, kommune, varme, energimaerke) the same filter is answered as a distribution — one exact count per group from a single GROUP BY, JSON only, every plan, one unit, for any area including the whole country. A 503 with Retry-After means the index is not loaded, a filter needs the extended index that is not loaded yet, or the national search is momentarily busy.","parameters":[{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode, e.g. 0751. At most one of kommunekode, postnr and bbox.","schema":{"type":"string","pattern":"^\\d{3,4}$"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer, e.g. 8000. At most one of kommunekode, postnr and bbox.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"bbox","in":"query","required":false,"description":"Map window `minLon,minLat,maxLon,maxLat` (WGS84), at most 1° each way, overlapping Denmark.","schema":{"type":"string"}},{"name":"anvendelse","in":"query","required":false,"description":"Comma-separated byg021 codes and/or groups: bolig, enfamiliehus, raekkehus, etagebolig, landbrug, industri, energi, handel_kontor, institution, sommerhus, fritid, udhus_garage.","schema":{"type":"string"}},{"name":"opfoert_fra","in":"query","required":false,"description":"Built in or after this year.","schema":{"type":"integer","minimum":1000,"maximum":2100}},{"name":"opfoert_til","in":"query","required":false,"description":"Built in or before this year.","schema":{"type":"integer","minimum":1000,"maximum":2100}},{"name":"varme","in":"query","required":false,"description":"byg056 varmeinstallation codes, comma-separated (e.g. 2,7).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"opvarmning","in":"query","required":false,"description":"byg057 opvarmningsmiddel codes (e.g. 3 = flydende brændsel).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"tag","in":"query","required":false,"description":"byg033 tagdækningsmateriale codes (e.g. 3 = fibercement herunder asbest).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"ydervaeg","in":"query","required":false,"description":"byg032 ydervæggens materiale codes.","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"asbest","in":"query","required":false,"description":"ja = byg036 registers asbestos (codes 1-4); nej = registered free of it (5).","schema":{"type":"string","enum":["ja","nej"]}},{"name":"areal_min","in":"query","required":false,"description":"Min samlet bygningsareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"areal_max","in":"query","required":false,"description":"Max samlet bygningsareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"boligareal_min","in":"query","required":false,"description":"Min boligareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"boligareal_max","in":"query","required":false,"description":"Max boligareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"olietank","in":"query","required":false,"description":"ja/nej: an oil tank in use (not sløjfet) is registered on the plot.","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"etager_min","in":"query","required":false,"description":"Min antal etager (byg054).","schema":{"type":"integer","minimum":0,"maximum":99}},{"name":"etager_max","in":"query","required":false,"description":"Max antal etager (byg054).","schema":{"type":"integer","minimum":0,"maximum":99}},{"name":"grundareal_min","in":"query","required":false,"description":"Min grundareal of the property (Matriklen, m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"grundareal_max","in":"query","required":false,"description":"Max grundareal of the property (Matriklen, m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"energimaerke","in":"query","required":false,"description":"Energimærke class letters A-G, comma-separated. Only labels in Grundfast’s corpus.","schema":{"type":"string","pattern":"^[A-Ga-g](,[A-Ga-g])*$"}},{"name":"afloeb","in":"query","required":false,"description":"byg031/gru010 afløbsforhold codes (e.g. 20 = afløb til samletank).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"spildevandspaabud","in":"query","required":false,"description":"ja = a påbud om forbedret rensning or tilslutning (rensningspåbud 2-7); nej = \"rensning ok\" (1).","schema":{"type":"string","enum":["ja","nej"]}},{"name":"solceller","in":"query","required":false,"description":"ja/nej: a solcelleanlæg in use on the grund or the building.","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"jordvarme","in":"query","required":false,"description":"ja/nej: jordvarmeslanger in use on the grund or the building.","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"jordforurening","in":"query","required":false,"description":"v1 / v2 / kortlagt (either) / nej: kortlagt jordforurening on any of the property’s parcels.","schema":{"type":"string","enum":["v1","v2","kortlagt","nej"]}},{"name":"fredet","in":"query","required":false,"description":"ja/nej: the building is fredet (FBB).","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"bevaringsvaerdi_max","in":"query","required":false,"description":"SAVE value at most this (1 = highest), e.g. 4.","schema":{"type":"integer","minimum":1,"maximum":9}},{"name":"side","in":"query","required":false,"description":"Page number (default 1).","schema":{"type":"integer","minimum":1,"maximum":100000}},{"name":"per_side","in":"query","required":false,"description":"Page size (default 100; max 1000 for json, 10000 for csv/jsonl/geojson).","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"format","in":"query","required":false,"description":"json (default), jsonl (one building per line), csv, or geojson (a FeatureCollection of Points).","schema":{"type":"string","enum":["json","jsonl","csv","geojson"]}},{"name":"group_by","in":"query","required":false,"description":"Answer as a distribution (Bygningsgruppering) instead of a page: aarti = decade of opførelsesår (1960 = 1960–1969; unknown and the placeholder year 1000 are null), tag = byg033 tagdækningsmateriale, anvendelse = byg021, kommune = kommunekode, varme = byg056 varmeinstallation, energimaerke = class letter (null = no label in the corpus). JSON only; side/per_side are ignored.","schema":{"type":"string","enum":["aarti","tag","anvendelse","kommune","varme","energimaerke"]}}]}},"/v1/matrikel/ejendom/{bfe}":{"get":{"operationId":"getMatrikelEjendomByBfe","summary":"Cadastre (Matriklen) rollup for one BFE","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatrikelEjendom"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"Matriklen WFS source not configured for this deployment; /v1/demo/matrikel works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"asOf","in":"query","required":false,"description":"Bitemporal point-in-time: the parcels registered AND in effect at this ISO-8601 date/datetime instead of now; echoed in meta.as_of. 404 (\"no cadastre for that BFE at that date\") when the BFE had no parcels at that instant — e.g. before it was created (see /v1/matrikel/ejendom/{bfe}/historik for its version windows). Registration history starts with the Matriklen2 load on 2018-06-03, so an earlier date is a 404 for every BFE. 503 only when the Historik source is not configured for the deployment.","schema":{"type":"string","format":"date-time"}}]}},"/v1/matrikel/ejendom/{bfe}/historik":{"get":{"operationId":"getMatrikelEjendomByBfeHistorik","summary":"Cadastre version history for one BFE","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatrikelHistorik"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/geodanmark/bygninger/{bfe}":{"get":{"operationId":"getGeodanmarkBygningerByBfe","summary":"GeoDanmark building footprints for one BFE","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeodanmarkBygninger"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"GeoDanmark WFS source not configured; /v1/demo/geodanmark/bygninger works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/energimaerke/{bfe}":{"get":{"operationId":"getEnergimaerkeByBfe","summary":"Energy label (Energimærke) for one BFE","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Energimaerke"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"Energimærke (EMOData) source not configured for this deployment; /v1/demo/energimaerke works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/jordstykker/reverse":{"get":{"operationId":"getJordstykkerReverse","summary":"Cadastral parcel (incl. BFE) covering a WGS84 point — the address→BFE bridge","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Jordstykke"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"No gældende jordstykke covers the point / matches the cadastral key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"Matriklen WFS source not configured for this deployment; /v1/demo/jordstykke works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/jordstykker":{"get":{"operationId":"getJordstykker","summary":"Cadastral parcel (incl. BFE) by ejerlavskode + matrikelnummer","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Jordstykke"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"No gældende jordstykke covers the point / matches the cadastral key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"Matriklen WFS source not configured for this deployment; /v1/demo/jordstykke works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"ejerlavkode","in":"query","required":true,"description":"Ejerlavskode (the cadastral district code).","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"matrikelnr","in":"query","required":true,"description":"Matrikelnummer within the ejerlav, e.g. \"4a\", \"7000bs\".","schema":{"type":"string"}}]}},"/v1/ejerlav":{"get":{"operationId":"getEjerlav","summary":"Ejerlav register (cadastral districts), paged","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjerlavList"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"per_side","in":"query","required":false,"description":"Page size.","schema":{"type":"integer"}},{"name":"side","in":"query","required":false,"description":"Page number (1-based).","schema":{"type":"integer"}}]}},"/v1/ejerlav/autocomplete":{"get":{"operationId":"getEjerlavAutocomplete","summary":"Ejerlav type-ahead (kode prefix or navn)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjerlavList"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"q","in":"query","required":true,"description":"Kode prefix or ejerlavsnavn substring.","schema":{"type":"string"}}]}},"/v1/ejerlav/{kode}":{"get":{"operationId":"getEjerlavByKode","summary":"One ejerlav by kode","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjerlavOpslag"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"kode","in":"path","required":true,"description":"Ejerlavskode.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/postnumre":{"get":{"operationId":"getPostnumre","summary":"All Danish postnumre (nr → district navn)","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostnummerList"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"stormodtagere","in":"query","required":false,"description":"Include the bundled historical stormodtager (large-recipient) codes PostNord retired in Jan 2025. Default false, matching DAWA — every corpus code is stormodtager:false.","schema":{"type":"boolean"}}]}},"/v1/postnumre/autocomplete":{"get":{"operationId":"getPostnumreAutocomplete","summary":"Postnummer type-ahead (nr prefix or district navn)","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostnummerList"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"q","in":"query","required":true,"description":"Postnr prefix or district navn substring.","schema":{"type":"string"}},{"name":"stormodtagere","in":"query","required":false,"description":"Include the bundled historical stormodtager (large-recipient) codes PostNord retired in Jan 2025. Default false, matching DAWA — every corpus code is stormodtager:false.","schema":{"type":"boolean"}}]}},"/v1/postnumre/{nr}":{"get":{"operationId":"getPostnumreByNr","summary":"One postnummer","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Postnummer"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"nr","in":"path","required":true,"description":"4-digit postal code.","schema":{"type":"string"}}]}},"/v1/vejnavne":{"get":{"operationId":"getVejnavne","summary":"Distinct Danish street names, paged","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VejnavnList"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"per_side","in":"query","required":false,"description":"Page size.","schema":{"type":"integer"}},{"name":"side","in":"query","required":false,"description":"Page number (1-based).","schema":{"type":"integer"}},{"name":"kommunekode","in":"query","required":false,"description":"Scope the street names to one kommune (4-digit kommunekode, e.g. 0101).","schema":{"type":"string"}}]}},"/v1/vejnavne/autocomplete":{"get":{"operationId":"getVejnavneAutocomplete","summary":"Vejnavn type-ahead","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VejnavnList"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"q","in":"query","required":true,"description":"Street-name prefix/substring.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Scope the street names to one kommune (4-digit kommunekode, e.g. 0101).","schema":{"type":"string"}}]}},"/v1/autocomplete":{"get":{"operationId":"getAutocomplete","summary":"Unified type-ahead (vejnavn / adgangsadresse / postnummer) — the DAWA /autocomplete drop-in","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Autocomplete"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Address index not configured (only affects type=adgangsadresse).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text query (min 2 chars).","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Resource to search (default adgangsadresse). `adresse` is the staged DAWA flow: adgangsadresse hits while the text matches several, then the units (etage/dør, `type: adresse`) of the one it names. Each hit carries its own `type`.","schema":{"type":"string","enum":["adresse","adgangsadresse","vejnavn","postnummer"]}},{"name":"kommunekode","in":"query","required":false,"description":"Scope the street names to one kommune (4-digit kommunekode, e.g. 0101).","schema":{"type":"string"}},{"name":"adgangsadresseid","in":"query","required":false,"description":"type=adresse only: a picked access-address UUID — answer with its units directly.","schema":{"type":"string","format":"uuid"}}]}},"/v1/dagi":{"get":{"operationId":"getDagi","summary":"Discovery index: available DAGI temaer + område counts","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiIndex"}}}}}}},"/v1/dagi/reverse":{"get":{"operationId":"getDagiReverse","summary":"Administrative områder containing a WGS84 point — region, kommune, sogn, retskreds, politikreds, opstillingskreds","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiReverse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DAGI WFS not configured for this deployment; the other /v1/dagi routes still answer offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"The inverse of /v1/dagi/{tema}/{kode}: which områder cover a coordinate. An empty `omraader` is a 200, not a 404 — it means the register answered and no Danish administrative område covers this point (a coordinate at sea). An upstream that could not answer is a 502, and a deployment with no DAGI WFS configured is a 503; neither is ever reported as an empty list. This is the one /v1/dagi route with no offline fallback — names resolve from the bundled register, but which område contains a given point is a question only the polygons can answer.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/dagi/{tema}":{"get":{"operationId":"getDagiByTema","summary":"List a DAGI division (code → navn)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiList"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"tema","in":"path","required":true,"description":"Administrative division: region, kommune, sogn, retskreds, politikreds, or opstillingskreds.","schema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]}}]}},"/v1/dagi/{tema}/{kode}":{"get":{"operationId":"getDagiByTemaByKode","summary":"Resolve one administrative område (navn + best-effort geometry)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiOmraade"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"tema","in":"path","required":true,"description":"Administrative division: region, kommune, sogn, retskreds, politikreds, or opstillingskreds.","schema":{"type":"string","enum":["region","kommune","sogn","retskreds","politikreds","opstillingskreds"]}},{"name":"kode","in":"path","required":true,"description":"Official DAGI code, e.g. 0751 (Aarhus kommune), 1084 (Region Hovedstaden).","schema":{"type":"string"}}]}},"/v1/dhm/punkt":{"get":{"operationId":"getDhmPunkt","summary":"Terrain + surface elevation at a WGS84 point","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmPunkt"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DHM source not configured for this deployment; /v1/demo/dhm works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}],"description":"Terrain (`terraen_m`) and surface (`overflade_m`) elevation in metres DVR90, with the height system, grid resolution, sampling method and the model's specified accuracy stated in the response — a kote without its datum cannot be checked by the municipality that receives the drawing. A point the model has no data for is `null`, NEVER 0 (0 m DVR90 is a plausible coastal kote, so a fault landing as 0 would be invisible); an unreachable coverage is a 502. `null` (with `usikkerhed_m: null`) means the point is outside the model's coverage — abroad but inside the coordinate check (e.g. Flensburg, Lund), or open sea — or a cell the model left empty; `overflade_m` alone can also be null over water."}},"/v1/dhm/kote":{"get":{"operationId":"getDhmKote","summary":"Terrain kote (DVR90) at a WGS84 point — the same answer as /v1/dhm/punkt","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmPunkt"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DHM source not configured for this deployment; /v1/demo/dhm works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Terrain (`terraen_m`) and surface (`overflade_m`) elevation in metres DVR90, with the height system, grid resolution, sampling method and the model's specified accuracy stated in the response — a kote without its datum cannot be checked by the municipality that receives the drawing. A point the model has no data for is `null`, NEVER 0 (0 m DVR90 is a plausible coastal kote, so a fault landing as 0 would be invisible); an unreachable coverage is a 502. `null` (with `usikkerhed_m: null`) means the point is outside the model's coverage — abroad but inside the coordinate check (e.g. Flensburg, Lund), or open sea — or a cell the model left empty; `overflade_m` alone can also be null over water.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/dhm/kote:batch":{"post":{"operationId":"postDhmKoteBatch","summary":"Terrain koter for up to 50 points in one call (one billable unit per deduped point)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmKoterInput"}}}},"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmKoter"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}},"description":"Body is `{ punkter: [{ lon, lat, id? }] }` (max 50, deduped on the coordinate). The optional `id` is echoed back so a drawing tool can label its corners without depending on array order. A point that could not be answered appears in `fejl`, never in `punkter` with a null kote — inside one response those look identical and only one of them means the model has no terrain there. Only a TOTAL upstream failure is a 502. 50 points spread across the country are all answered: each separate location is one small raster, fetched a few at a time. A `fejl` entry's `error` is `upstream DHM error` (that point's raster fetch failed) or says the call ran out of time before the point was fetched; both are safe to retry. A null kote in `punkter` means the same as on `/v1/dhm/kote`: outside the model's coverage."}},"/v1/dhm/profil":{"get":{"operationId":"getDhmProfil","summary":"Terrain profile along a straight line (at most 2000 m)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmProfil"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DHM source not configured for this deployment; /v1/demo/dhm works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Samples `dhm_terraen` every `trin` metres from `fra` to `til`, ALWAYS including both endpoints, and reports `fald_m` (the fall across the line). One upstream raster, not one per station. Consumes ONE billable unit per returned station. The answer carries the fall and nothing more — whether a project clears the højdegrænseplan is not this API's call. The line may be at most 2000 m long (measured in EPSG:25832) and yield at most 500 stations; a longer line or a finer `trin` is REFUSED with a 400 naming the limit. Lines over ~240 m are read from a coarser raster than the native 0.4 m — `oploesning_m` states which. A station outside the model's coverage (abroad, open sea) is `terraen_m: null`, never 0.","parameters":[{"name":"fra","in":"query","required":true,"description":"Start of the line as `lon,lat` in WGS84 decimal degrees.","schema":{"type":"string","example":"9.9147,56.031834"}},{"name":"til","in":"query","required":true,"description":"End of the line as `lon,lat` in WGS84 decimal degrees.","schema":{"type":"string","example":"9.91534,56.031834"}},{"name":"trin","in":"query","required":false,"description":"Station spacing in metres (default 1). Must be at least 0.4 — the DHM cell size — and coarse enough to keep the profile under 500 stations.","schema":{"type":"number","minimum":0.4}}]}},"/v1/dhm/terraen":{"get":{"operationId":"getDhmTerraen","summary":"Terrain grid (heightfield) over a bbox","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmTerraen"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DHM source not configured for this deployment; /v1/demo/dhm works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Samples `dhm_terraen` on a regular grid over `bbox`, every `trin` metres. The raster is always fetched at the model's native 0.4 m and each sample read as the cell it falls in, so a kote here is the same number `/v1/dhm/kote` gives for the same coordinate. Consumes ONE billable unit however many koter the grid carries. A bbox larger than 240 m on a side, or a `trin` that would return more than 100000 koter, is REFUSED with a 400 naming the limit — never silently coarsened, because a resolution you did not ask for is one you would have to read a field to notice. A cell outside the model's coverage (abroad, open sea) is `null`, never 0, and is counted in `mangler`.","parameters":[{"name":"bbox","in":"query","required":true,"description":"`minx,miny,maxx,maxy` in EPSG:25832 metres (the DHM grid's own CRS — not WGS84 degrees). At most 240 m on each side.","schema":{"type":"string","example":"574700,6224250,574800,6224350"}},{"name":"trin","in":"query","required":false,"description":"Grid spacing in metres (default 1). At least 0.4 — the DHM cell size — and coarse enough to keep the grid under 100000 koter.","schema":{"type":"number","minimum":0.4}}]}},"/v1/dhm/overflade":{"get":{"operationId":"getDhmOverflade","summary":"Surface grid (DSM: buildings + tree crowns) over a bbox","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmOverflade"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DHM source not configured for this deployment; /v1/demo/dhm works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Samples `dhm_overflade` — the surface model: the top of roofs, tree crowns and anything else standing on the ground — on a regular grid over `bbox`, every `trin` metres. The input to a shadow map, a tree-crown height or the neighbour buildings around a plot, without one call per point. Identical to `/v1/dhm/terraen` in every other respect: same bbox (EPSG:25832, at most 240 m on a side), same `trin` (>= 0.4, at most 100000 koter), the model's native 0.4 m read as the cell each sample falls in (so a kote equals `overflade_m` from `/v1/dhm/kote`), ONE billable unit, and a 400 naming the limit rather than a coarser grid. The same bbox and `trin` give the same sample positions in both, so `overflade - terraen` index by index is the height above ground. A cell outside the model's coverage (abroad, open sea) is `null`, never 0, and is counted in `mangler`.","parameters":[{"name":"bbox","in":"query","required":true,"description":"`minx,miny,maxx,maxy` in EPSG:25832 metres (the DHM grid's own CRS — not WGS84 degrees). At most 240 m on each side.","schema":{"type":"string","example":"574700,6224250,574800,6224350"}},{"name":"trin","in":"query","required":false,"description":"Grid spacing in metres (default 1). At least 0.4 — the DHM cell size — and coarse enough to keep the grid under 100000 koter.","schema":{"type":"number","minimum":0.4}}]}},"/v1/dhm/bygninger/{bfe}":{"get":{"operationId":"getDhmBygningerByBfe","summary":"Measured height of every building on a property (BFE)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmBygningshoejder"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"The elevation coverage could not be reached for ANY of the property's buildings. A partial fault is reported inside a 200 instead: those buildings carry hoejde_m:null with aarsag:\"upstream_fejl\" and ufuldstaendig:true.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"DHM or the GeoDanmark footprint source is not configured for this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/dhm/tag/{bfe}/sol":{"get":{"operationId":"getDhmTagByBfeSol","summary":"Tag og sol: measured roof faces, shade, panels, production and economics for a property (BFE)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmTagSol"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"Unknown BFE, or `bygning` names no building on the property.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"The elevation coverage could not be reached for ANY building. A partial fault is reported inside a 200: the building carries beregnet:false with an aarsag, and ufuldstaendig:true.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"DHM, GeoDanmark or PVGIS is not configured for this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Hver bygnings tag, flade for flade, målt i Danmarks Højdemodel (samme tagfit som /v1/dhm/bygninger): sandt areal ud fra omrids og målt hældning, retning, tagfod-, rygnings- og spærlængde. Skygge pr. måned, målt ved ray-marching i overflademodellen ud til 100 m (huse, træer, terræn). Ydelse pr. kWp fra PVGIS (EU JRC) ganget med skyggen; et panel-layout med fast panel og kantafstand; tre anlæg (mindre, foreslået, største) med pris, egetforbrug, værdi år 1 og tilbagebetaling på day-ahead-priser fra Energi Data Service, vægtet med adressens solindstråling. En bygning, hvis tagform højdemodellen ikke kan navngive, får beregnet:false og en aarsag — aldrig en gættet tagform. Alle antagelser står i forudsaetninger; de økonomiske kan overskrives på forespørgslen. Måles som ét opslag.","parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"bygning","in":"query","required":false,"description":"Only this building (its BBR UUID, as /v1/dhm/bygninger returns it).","schema":{"type":"string","format":"uuid"}},{"name":"forbrug_kwh","in":"query","required":false,"description":"Household consumption per year that the suggested system is sized against (500–200000). Default 4500.","schema":{"type":"integer","minimum":500,"maximum":200000}},{"name":"egetforbrug_andel","in":"query","required":false,"description":"Share of production used in the house when the system produces exactly forbrug_kwh (0,05–0,9). Default 0,35.","schema":{"type":"number","minimum":0.05,"maximum":0.9}},{"name":"pris_kr_pr_kwp","in":"query","required":false,"description":"Installed price per kWp, DKK incl. moms (1000–50000). Default 8500.","schema":{"type":"integer","minimum":1000,"maximum":50000}},{"name":"pris_fast_kr","in":"query","required":false,"description":"Fixed part of the installed price, DKK incl. moms. Default 12000.","schema":{"type":"integer","minimum":0,"maximum":500000}},{"name":"tillaeg_kr_kwh","in":"query","required":false,"description":"What a bought kWh costs on top of the spot price, DKK ex moms (tariffs, elafgift, supplier margin). Default 0,60.","schema":{"type":"number","minimum":0,"maximum":5}}]}},"/v1/dhm/tag/{bfe}/sol/rapport.pdf":{"get":{"operationId":"getDhmTagByBfeSolRapportPdf","summary":"Tag og sol som PDF-rapport","description":"Samme svar som /v1/dhm/tag/{bfe}/sol sat op som PDF (A4): tagets mål, hver flade, skygge, tre anlæg, månedsproduktion, lokalplanens egne ord om tag og solceller (med sidetal, når planen har tekst), og alle antagelser. ?sagsnummer= trykkes på hver side. Pro plan eller højere; måles som ét opslag.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"bygning","in":"query","required":false,"description":"Only this building (its BBR UUID, as /v1/dhm/bygninger returns it).","schema":{"type":"string","format":"uuid"}},{"name":"forbrug_kwh","in":"query","required":false,"description":"Household consumption per year that the suggested system is sized against (500–200000). Default 4500.","schema":{"type":"integer","minimum":500,"maximum":200000}},{"name":"egetforbrug_andel","in":"query","required":false,"description":"Share of production used in the house when the system produces exactly forbrug_kwh (0,05–0,9). Default 0,35.","schema":{"type":"number","minimum":0.05,"maximum":0.9}},{"name":"pris_kr_pr_kwp","in":"query","required":false,"description":"Installed price per kWp, DKK incl. moms (1000–50000). Default 8500.","schema":{"type":"integer","minimum":1000,"maximum":50000}},{"name":"pris_fast_kr","in":"query","required":false,"description":"Fixed part of the installed price, DKK incl. moms. Default 12000.","schema":{"type":"integer","minimum":0,"maximum":500000}},{"name":"tillaeg_kr_kwh","in":"query","required":false,"description":"What a bought kWh costs on top of the spot price, DKK ex moms (tariffs, elafgift, supplier margin). Default 0,60.","schema":{"type":"number","minimum":0,"maximum":5}},{"name":"sagsnummer","in":"query","required":false,"description":"Your own case number or reference, printed on every page. Up to 64 letters, digits, spaces and . , : / # ( ) _ -","schema":{"type":"string","maxLength":64}}],"responses":{"200":{"description":"The report","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/jord/omraadeklassificering":{"get":{"operationId":"getJordOmraadeklassificering","summary":"Områdeklassificering (§ 50 a) at a WGS84 point","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JordOmraadeklassificering"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"The områdeklassificering layer could not be reached or answered unusably. Deliberately NOT reported as omraadeklassificeret:false — an empty answer is a positive legal claim and is only ever served from a successful lookup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Områdeklassificering source not configured for this deployment; /v1/demo/jord works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/jord/kortlaegning":{"get":{"operationId":"getJordKortlaegning","summary":"Kortlagt jordforurening (V1/V2) at a WGS84 point","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JordKortlaegning"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"A kortlægning layer (V1 or V2) could not be reached or answered unusably. Deliberately NOT reported as kortlagt:false — \"not kortlagt\" is a positive claim and is only ever served from a successful lookup of both layers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Kortlægning source not configured for this deployment; /v1/demo/jord/kortlaegning works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/jord/kortlaegning/matrikel/{ejerlavskode}/{matrikelnr}":{"get":{"operationId":"getJordKortlaegningMatrikelByEjerlavskodeByMatrikelnr","summary":"Kortlagt jordforurening (V1/V2) on one jordstykke","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JordKortlaegningMatrikel"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"Matriklen has no gældende jordstykke with this key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"A kortlægning layer could not be read, OR the register lists nothing on the matrikel and the parcel outline could not be resolved to check it spatially. A \"not kortlagt\" answer is never served unchecked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Kortlægning source (or, for a \"not kortlagt\" answer, the Matriklen outline source) not configured for this deployment; /v1/demo/jord/kortlaegning/matrikel works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Two independent tests, both reported per flade: `registreret_paa_matriklen` (the region listed this matrikel on the flade) and `overlap` (the share of the parcel outline the flade covers, measured on a point grid). A flade is included when either holds. `rumlig_kontrol: false` means the outline could not be resolved and only the lists were read — such an answer is only ever a yes. `attest_url` is the official jordforureningsattest for the jordstykke, which exists whether or not it is kortlagt.","parameters":[{"name":"ejerlavskode","in":"path","required":true,"description":"Ejerlavskode (the cadastral district), e.g. 2000176.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"matrikelnr","in":"path","required":true,"description":"Matrikelnummer, e.g. \"2333b\". Digits and letters only; case-insensitive.","schema":{"type":"string","pattern":"^[0-9a-zA-ZæøåÆØÅ]{1,12}$"}}]}},"/v1/vurdering/{bfe}":{"get":{"operationId":"getVurderingByBfe","summary":"Ejendomsvurderinger for a property (BFE)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VurEjendomsvurdering"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"Vurderingsstyrelsen holds no assessment for this BFE — usually a property created after the last assessment round.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"The VUR GraphQL host could not be reached or answered unusably. Never softened into an empty series: seneste:null on a 200 means \"more than one vurderingsejendom\", and an outage must not be able to produce that shape.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Ejendomsvurdering source not configured for this deployment; /v1/demo/vurdering works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/natur/skovbyggelinje":{"get":{"operationId":"getNaturSkovbyggelinje","summary":"Skovbyggelinje (naturbeskyttelseslovens § 17) at a WGS84 point","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturSkovbyggelinje"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"The skovbyggelinje layer could not be reached or answered unusably. Deliberately NOT reported as skovbyggelinje:false — an empty answer is a positive claim about where building is allowed, and is only ever served from a successful lookup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Skovbyggelinje source not configured for this deployment; /v1/demo/natur works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Reports the LINE and its attributes, never a verdict on a project. § 17 stk. 1 bans building within 300 m of forest (every public forest; private forests of at least 20 ha in one piece), and the line applies in byzone too. But stk. 2 exempts a list of concrete projects — among them nr. 7 (garages, carports, sheds, greenhouses and the like of at most 50 m² in byzone, built next to an existing dwelling and creating no new dwelling) and nr. 8 (rebuilding a dwelling in byzone or a sommerhusområde without increasing its living area) — and stk. 3 limits the ban to the stretch BETWEEN the building and the forest where substantial lawful development already stands closer to the forest than 300 m. Which of those applies turns on project type, m² and whether living area grows, so the caller decides; skovbyggelinje:true means a line is registered at the point, not that the project is prohibited. The layer records the line (Skovs_kode) and its registration (Statuskode) in two columns that disagree on 1532 of 11293 polygons, so the line decides; a line whose registration is only \"Ukendt\", \"Forslag\" or \"Kladde\" is still reported — the kommune maps the line, it does not enact it — and usikker:true marks a yes no adopted registration stands behind, worth confirming with the kommune.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/natur/byggelinjer":{"get":{"operationId":"getNaturByggelinjer","summary":"Alle øvrige byggelinjer og § 3-beskyttet natur på ét WGS84-punkt","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturByggelinjer"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Byggelinje sources not configured for this deployment; /v1/demo/byggelinjer works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Ti linjer på ét opslag: strandbeskyttelse (§ 15) og klitfredning (§ 8), sø- og åbeskyttelseslinjer (§ 16), skovbyggelinje (§ 17), fortidsmindebeskyttelseslinje (§ 18), kirkebyggelinje (§ 19), § 3-beskyttet naturtype og § 3-beskyttet vandløb, samt beskyttede sten- og jorddiger (museumslovens § 29 a). Kilderne er tre forskellige værter — Danmarks Miljøportal, Slots- og Kulturstyrelsens Fund og Fortidsminder, og Matriklen på Datafordeleren, hvor § 15 og § 8 er registreret pr. jordstykke af Geodatastyrelsen. RAPPORTERER LINJEN, ALDRIG EN DOM. Der er ingen kraever_dispensation og intet forbudt-felt: § 16 stk. 2 og § 18 stk. 2 har hver deres undtagelseslister, de ligner ikke § 17 stk. 2’s, og § 3-beskyttelsen er DEKLARATORISK — et areal kan være beskyttet uden at stå i registret, og et registreret areal kan vise sig ikke at være beskyttet, fordi beskyttelsen følger naturen på stedet og ikke kortet. Hvilken regel der rammer et KONKRET projekt afhænger af oplysninger kun kalderen har. inden_for:false er MÅLT og produceres aldrig af en fejl — svigter en kilde, får netop den linje status:\"utilgaengelig\" og inden_for:null, mens de øvrige svarer. usikker:true kvalificerer altid et ja (ingen vedtaget registrering bag linjen), aldrig et nej. afstand_m er fortegnet: NEGATIV inde, POSITIV ude, i meter til nærmeste kant inden for soegeradius_m — beregnet i EPSG:25832 og tænkt til et tegneværktøj, hvor bygningen kan trækkes. For § 17 i dybden (ophævede polygoner, forslag, konflikt) brug /v1/natur/skovbyggelinje; skov-nøglen her besvares af nøjagtig samme opslag, så de to kan ikke være uenige.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/plan":{"get":{"operationId":"getPlan","summary":"Zone, lokalplaner og kommuneplanrammer på ét WGS84-punkt (Plandata)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanOpslag"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"No kommune covers the point (at sea or outside Denmark) — there is no zone or plan to report. On the BFE variant: the property is unknown to Matriklen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"Plandata could not be reached or answered unusably. Deliberately NOT reported as landzone or as an empty plan list — both are claims a caller acts on, and are only ever served from a successful lookup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Plandata source not configured for this deployment; /v1/demo/plan works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Planloven på punktet: zonen (byzone, landzone, sommerhusområde), vedtagne og foreslåede lokalplaner og lokalplan-delområder, og kommuneplanrammen (inkl. rammer fra kommuneplantillæg) — hver med plannummer, navn, status, datoer, anvendelse, bebyggelsesprocent og hvad den beregnes af, max etager, max højde og planens PDF (dokument_url), som altid er det afgørende. Aflyste lokalplaner står for sig i aflyste_lokalplaner. status er registrets eget felt (\"vedtaget\", \"forslag\", \"aflyst\"), ikke udledt af plannavn eller datoer. zone.kilde:\"afledt\" betyder, at intet byzone- eller sommerhuspolygon dækker punktet; zonekortet rummer kun de to, og efter planlovens § 34 er resten landzone. Et punkt uden for alle kommuner er 404, ikke landzone. Kommuneplanrammen binder kommunens planlægning, ikke grundejeren direkte. Kan også kaldes DAWA-stil med ?x=&y=&srid=25832. restbyggeret er altid null her — brug /v1/plan/ejendom/{bfe}.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/miljoe/stoej":{"get":{"operationId":"getMiljoeStoej","summary":"Trafik- og industristøj på ét WGS84-punkt (støjkortlægning)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiljoeStoej"}}}},"400":{"description":"runde er ikke nyeste, 2022 eller 2017 (eller punktet er ugyldigt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"Miljøstyrelsens støjkortlægning kunne ikke nås eller svarede ubrugeligt. Rapporteres bevidst IKKE som \"intet kortlagt\" — et null-interval er en påstand og kommer kun fra et vellykket opslag.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Støjkortlægningen er ikke konfigureret i dette deployment (/v1/demo/stoej virker offline), eller runde=2022 blev bedt om, før 2022-runden er indlæst.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Miljøstyrelsens strategiske støjkortlægning (EU's støjdirektiv) på punktet: det højeste Lden- og Lnight-interval pr. kilde — vej, jernbane, lufthavn, industri — og samlet, plus hvert kortlagt lag punktet ligger i med beregningshøjde, delkilde og runde. RUNDEN STÅR PR. KILDE i kortlaegning.runder. Som standard (runde=nyeste) er vej og jernbane fra 2022-runden i den danske beregning (Nord2000, 1,5 m over terræn, danske 5 dB-klasser: vej fra 53 dB Lden, jernbane fra 54 dB Lden, Lnight fra 45 dB), som Miljøstyrelsen kun udgiver som download, og som Grundfast slår op i sin egen kopi. Lufthavn og industri er fra 2017-runden (EU-klasser fra 55 dB Lden / 50 dB Lnight, også 4 m), den nyeste danske beregning for dem — 2022 kortlagde dem kun med EU-metoden CNOSSOS-EU, som ikke kan sammenlignes med de danske grænseværdier og ikke indgår. Er 2022-runden ikke indlæst, er alle kilder fra 2017. runde=2017 giver hele svaret fra 2017; runde=2022 giver 503 i stedet for 2017, hvis 2022 ikke er indlæst. null er IKKE \"stille\": kortlægningen dækker de største veje og baner, Københavns Lufthavn og byområderne København, Aarhus, Odense og Aalborg, ned til den nederste klasse — null betyder \"ikke kortlagt på eller over grænsen her\". Intervallet er det højeste, et lag lægger punktet i. Strategisk og beregnet — ikke en måling på adressen. Kan også kaldes DAWA-stil med ?x=&y=&srid=25832.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}},{"name":"runde","in":"query","required":false,"description":"Kortlægningsrunde: nyeste (standard; hver kilde fra sin nyeste danske beregning), 2022 (som nyeste, men 503 hvis 2022 ikke er indlæst) eller 2017 (alt fra 2017-runden).","schema":{"type":"string","enum":["nyeste","2022","2017"],"default":"nyeste"}}]}},"/v1/miljoe/oversvoemmelse":{"get":{"operationId":"getMiljoeOversvoemmelse","summary":"Oversvømmelse: stormflod, lavninger og risikoområder (punkt, adresse eller BFE)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiljoeOversvoemmelse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"adgangsadresse_id or bfe is unknown (or has no position) — there is no point to ask.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"None of the three sources could be read. A single unreadable source is NOT a 502: that part answers status \"utilgaengelig\" with null values inside a 200 — never \"not flooded\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"No oversvømmelse source is configured in this deployment; /v1/demo/oversvoemmelse works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Tre åbne kilder på ét punkt — et koordinat (lon/lat eller DAWA-stil x/y/srid), en adgangsadresses adgangspunkt (adgangsadresse_id) eller et punkt inde i en ejendom (bfe). havvand: Kystdirektoratets beregnede vanddybde ved stormflod (50-, 100-, 1.000- og 10.000-års vandstande i 2020, 2070 og 2120, RCP8.5) i den 100 × 100 m celle punktet ligger i; null = ikke beregnet oversvømmet fra havet i scenariet, kun fra havet, og land bag diger står som tørt. skybrud: Miljøstyrelsens lavninger (bluespots) — om punktet ligger i en, dem inden for 50 m, og pr. BFE dem der rører grunden. risikoomraade: om punktet ligger i et af statens udpegede risikoområder efter oversvømmelsesdirektivet; uden for = ikke udpeget, ikke \"ingen risiko\". Hver del har sin egen status: \"utilgaengelig\" betyder at kilden ikke kunne læses, og må aldrig vises som \"ikke oversvømmet\". Vandløb uden for risikoområderne, grundvand og kloak er ikke med (se ikke_med). Måles som ét opslag.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}},{"name":"adgangsadresse_id","in":"query","required":false,"description":"DAR adgangsadresse UUID — asked at its adgangspunkt.","schema":{"type":"string","format":"uuid"}},{"name":"bfe","in":"query","required":false,"description":"BFE number — asked at a point inside the main jordstykke; lavninger are also read over the whole parcel.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/plan/ejendom/{bfe}":{"get":{"operationId":"getPlanEjendomByBfe","summary":"Planer og vejledende restbyggeret for en ejendom (BFE)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanOpslag"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"description":"No kommune covers the point (at sea or outside Denmark) — there is no zone or plan to report. On the BFE variant: the property is unknown to Matriklen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"Plandata could not be reached or answered unusably. Deliberately NOT reported as landzone or as an empty plan list — both are claims a caller acts on, and are only ever served from a successful lookup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Plandata source not configured for this deployment; /v1/demo/plan works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Samme svar som /v1/plan, slået op i et punkt INDE i ejendommens største jordstykke (Matriklen), plus en VEJLEDENDE restbyggeret: bebyggelsesprocent/100 × grundareal − eksisterende etageareal (BBR samlet bygningsareal), med alle input gentaget. Procenten tages fra den mest specifikke vedtagne plan (delområde, lokalplan, kommuneplanramme). Tallet er null med en begrundelse i ikke_beregnet, når det ikke kan beregnes ærligt: procenten gælder \"Området som helhed\", den er 0, to vedtagne planer er uenige, den gælder \"Det enkelte jordstykke\" på en ejendom med flere jordstykker, eller BBR kunne ikke læses. Bygningsreglementet afgør hvad der tæller som etageareal, og planteksten er afgørende — tallet er aldrig en byggeret. Måles som ét opslag.","parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/plan/ejendom/{bfe}/citater":{"get":{"operationId":"getPlanEjendomByBfeCitater","summary":"Lokalplanens egne ord: citater med sidetal om tag, solceller, højde og farver (BFE)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LokalplanCitater"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"description":"For hver lokalplan (og delområde med egen PDF), der dækker ejendommen, hentes planens PDF fra Plandata.dk, teksten læses side for side, og de afsnit, der handler om de valgte emner, gengives ordret med sidetal (side i PDF-filen) og et link, der åbner PDF'en på siden. Emner: solceller, tagmateriale, tagform, reflekterende, hoejde, bebyggelsesprocent, farver (?emner=, kommasepareret; standard alle). En scannet plan uden tekstlag får tekstlag:\"nej\" og ingen citater — det betyder IKKE, at planen intet siger. Citaterne er fundet ved ordsøgning og er en læsevejledning, ikke en juridisk gennemgang. Svaret caches pr. PDF (sha256). Måles som ét opslag.","parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"emner","in":"query","required":false,"description":"Comma-separated topics: solceller, tagmateriale, tagform, reflekterende, hoejde, bebyggelsesprocent, farver. Default: all.","schema":{"type":"string"}}]}},"/v1/miljoe/screening/{bfe}":{"get":{"operationId":"getMiljoeScreeningByBfe","summary":"Skrivebordsscreening for miljøfarlige stoffer før renovering og nedrivning for en ejendom (BFE)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiljoeScreening"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"description":"BBR could not be read. Every OTHER register is fail-soft: its fault is reported in input_kilder and mangler, and what it would have decided is ikke_vurderet / null — never \"lav\", \"not kortlagt\" or \"no byggelinje\".","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"$ref":"#/components/responses/Error"}},"description":"For hver bygning og hver bygningsdel (tag, facade, vinduer/fuger, gulve, indervægge/lofter, installationer, vådrum, fundament/kælder) et bånd — hoej, mulig, lav eller ikke_vurderet — for asbest, PCB, bly, PAH/tjære, klorerede paraffiner og tungmetaller. Båndene udledes af Miljøstyrelsens Bygningsatlas (Miljøprojekt nr. 2269, 2024), transskriberet til en versioneret regeltabel med kildehenvisning pr. regel (regelsaet.version). Input: opførelsesår, om-/tilbygningsår (en ombygning TILFØJER perioder, fjerner aldrig nogen; BBR-pladsholdere 0 og 1000 frasorteres), ydervægs- og tagmaterialer inkl. \"Fibercement herunder asbest\", BBR's asbestregistrering (byg036), energimærkets ruder og forbedringsforslag pr. bygningsdel. grund samler V1/V2-kortlægning pr. jordstykke, områdeklassificering og olietanke; bindinger samler fredning/SAVE, byggelinjer, zone og lokalplaner; affald giver et VEJLEDENDE affaldsestimat (1 / 1,5 t pr. m² efter Miljøprojekt nr. 2185) mod 1-tonsgrænsen i bekendtgørelse nr. 496/2024 § 2, nr. 7. ikke_vurderet betyder at et input manglede (årsagen står i ikke_vurderet_aarsag) og er ALDRIG det samme som lav. Gengiv disclaimer: skrivebordsscreening ud fra offentlige registre — ikke en lovpligtig miljø- og ressourcekortlægning. Måles som ét opslag.","parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/miljoe/screening/{bfe}/rapport.pdf":{"get":{"operationId":"getMiljoeScreeningByBfeRapportPdf","summary":"Miljøscreeningen som PDF-rapport","description":"Samme screening som /v1/miljoe/screening/{bfe}, sat op som en PDF (A4) med pr.-bygning-tabel, grund, bindinger, affald, kilder og disclaimer. Genereres på serveren uden browser. ?sagsnummer= (eller ?reference=) trykkes på hver side. Pro plan eller højere; måles som ét opslag.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"sagsnummer","in":"query","required":false,"description":"Your own case number or reference, printed on every page. Up to 64 letters, digits, spaces and . , : / # ( ) _ -","schema":{"type":"string","maxLength":64}}],"responses":{"200":{"description":"The report","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}}}},"/v1/miljoe/screening:batch":{"post":{"operationId":"postMiljoeScreeningBatch","summary":"Miljøscreening for op til 50 BFE i ét kald (én enhed pr. BFE)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjendomBatchInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiljoeScreeningBatchResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"description":"Body `{ bfe: number[] }` (max 50 on every plan — each BFE reads eight registers — deduped). Always 200 with per-BFE results and errors; only an invalid body is a 400. Pro plan or higher. One billable unit per screening that succeeded. Longer lists: POST /v1/jobs with kind `miljoe`."}},"/v1/orto/tile/{z}/{x}/{y}":{"get":{"operationId":"getOrtoTileByZByXByY","summary":"Aerial ortofoto tile (256×256 web-mercator JPEG)","security":[{"bearerAuth":[]}],"parameters":[{"name":"z","in":"path","required":true,"description":"Zoom level (0–21), web-mercator XYZ scheme.","schema":{"type":"integer","minimum":0,"maximum":21}},{"name":"x","in":"path","required":true,"description":"Tile column, 0 ≤ x < 2^z.","schema":{"type":"integer","minimum":0}},{"name":"y","in":"path","required":true,"description":"Tile row, 0 ≤ y < 2^z (0 at the north edge).","schema":{"type":"integer","minimum":0}},{"name":"aar","in":"query","required":false,"description":"Capture year of a past årgang (see /v1/orto/aargange). Omit for the current mosaic. Every layer published for that year is tried, finest resolution first (since 2017 a year has both a 10 cm and a 12,5 cm layer, and they cover different ground); the response headers name the one that answered. A year the service does not publish is a 400; a year none of whose layers COVER this tile is a 404. Never a silent fallback to the current imagery.","schema":{"type":"integer","minimum":1900,"maximum":2200}},{"name":"dpr","in":"query","required":false,"description":"Pixel density to render the tile at: 1 (default) returns 256×256, 2 returns the SAME geographic tile at 512×512 for a retina screen. It is not a zoom — the tile covers the same ground either way, so a client may mix the two and place them identically. Still one metered call. Any other value is a 400.","schema":{"type":"integer","enum":[1,2],"default":1}}],"responses":{"200":{"description":"JPEG tile","headers":{"X-Grundfast-Kilde":{"description":"Licence credit for the photo (Klimadatastyrelsen ortofoto via Dataforsyningen).","schema":{"type":"string"}},"X-Grundfast-Orto-Lag":{"description":"The WMS layer that answered, e.g. `geodanmark_2019_12_5cm` or `orto_foraar`.","schema":{"type":"string"}},"X-Grundfast-Orto-Aargang":{"description":"Capture year of the photo. Only set when `aar` was given.","schema":{"type":"integer"}},"X-Grundfast-Orto-Oploesning-Cm":{"description":"Ground resolution of the answering layer in cm. Only set when `aar` was given.","schema":{"type":"number"}}},"content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"Ortofoto source not configured for this deployment; /v1/demo/orto/tile/... works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/orto/aargange":{"get":{"operationId":"getOrtoAargange","summary":"Available ortofoto årgange (national series)","description":"Ortofoto årgange the upstream publishes, newest first, derived from its GetCapabilities. NOTE: coverage is REGIONAL per year — Denmark is flown in a rotation, so most points are covered by only a few of these years, and this list is what the SERVICE publishes rather than what covers any given point. A tile request for a year that does not cover the requested tile answers 404 rather than the upstream blank image.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Årgange","content":{"application/json":{"schema":{"type":"object","required":["aargange"],"properties":{"aargange":{"type":"array","items":{"type":"object","required":["aar","layer","oploesningCm","candidates"],"properties":{"aar":{"type":"integer","description":"Capture year."},"layer":{"type":"string","description":"Default upstream layer for the year. The layer actually used for a tile is chosen per point from `candidates`."},"oploesningCm":{"type":"number","description":"Ground sample distance in cm (10 or 12.5)."},"candidates":{"type":"array","description":"Every layer that could serve this year. A year is often flown as several part-country collections; which (if any) reaches a given point decides coverage.","items":{"type":"object","required":["layer","oploesningCm","national","bbox"],"properties":{"layer":{"type":"string"},"oploesningCm":{"type":"number"},"national":{"type":"boolean","description":"A geodanmark_* layer. It declares the whole country regardless of where that year was flown, so its extent is NOT a coverage claim and `bbox` is null."},"bbox":{"nullable":true,"type":"object","description":"Advertised WGS84 extent. Present (and meaningful) only for the part-country collections.","properties":{"w":{"type":"number"},"e":{"type":"number"},"s":{"type":"number"},"n":{"type":"number"}}}}}}}}}}}}}},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/orto/daekning":{"get":{"operationId":"getOrtoDaekning","summary":"Which ortofoto årgange cover a point","description":"Which of the published årgange were actually flown over a point — the list a \"through the years\" view can offer without half its buttons producing a blank. Coverage cannot be read off the capabilities (the national layers declare the whole country regardless of where the year was flown), so this probes one tile per published year and caches the verdict per z15 tile. Metered as ONE call regardless of how many years were probed. Takes the same lon/lat (or DAWA x/y/srid) vocabulary as the other coordinate endpoints.","security":[{"bearerAuth":[]}],"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}],"responses":{"200":{"description":"Coverage per årgang","content":{"application/json":{"schema":{"type":"object","required":["punkt","tile","antal","antal_daekkede","aargange","meta"],"properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}}},"tile":{"type":"object","description":"The web-mercator tile the verdicts were measured on (z15). Coverage is a REGIONAL fact — a flight block, not a pixel — so the answer holds for every point inside this tile, and it is named so a caller can cache alongside us.","properties":{"z":{"type":"integer"},"x":{"type":"integer"},"y":{"type":"integer"}}},"antal":{"type":"integer","description":"Published årgange."},"antal_daekkede":{"type":"integer","description":"How many of them were measured to cover the point (daekker === true)."},"aargange":{"type":"array","items":{"type":"object","required":["aar","oploesning_cm","daekker"],"properties":{"aar":{"type":"integer"},"oploesning_cm":{"type":"number"},"daekker":{"nullable":true,"type":"boolean","description":"true and false are both MEASUREMENTS — the year's tile came back as a photograph, or as the upstream out-of-extent blank. null means the lookup did not settle it (an upstream fault, or the request running out of its own time budget) and must NOT be rendered as \"not flown here\": in a through-the-years view a missing photo reads as a missing building."}}}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}}}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"Ortofoto source not configured for this deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/stednavne/punkt":{"get":{"operationId":"getStednavnePunkt","summary":"Named places near a WGS84 point","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StednavnePunkt"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"Stednavne source not configured for this deployment; /v1/demo/stednavne works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}},{"name":"radius","in":"query","required":false,"description":"Search radius in metres (default 1000, max 5000).","schema":{"type":"integer"}}]}},"/v1/adresse/search":{"get":{"operationId":"getAdresseSearch","summary":"DAR-native address autocomplete","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdresseSearch"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Address search not enabled / index not yet populated; /v1/demo/adresse-search works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Fuzzy + prefix address autocomplete served from a local DAR index (the live DAR GraphQL host is point-query only). Each hit carries the adgangsadresse UUID, the covering BFE (when stamped), the structured fields and a WGS84 point — the DAWA-replacement search surface.","parameters":[{"name":"q","in":"query","required":true,"description":"Free-text query (min 2 characters).","schema":{"type":"string","minLength":2}},{"name":"per_side","in":"query","required":false,"description":"Max hits to return (default 8, clamped to 1–20).","schema":{"type":"integer","minimum":1,"maximum":20}}]}},"/v1/adresse/{uuid}":{"get":{"operationId":"getAdresseByUuid","summary":"Resolve a DAR address by its UUID","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdresseResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DAR address source not configured for this deployment; /v1/demo/adresse works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"The DAWA-replacement address surface: resolve ONE DAR id_lokalId (UUID) to the clean, structured address (vejnavn, husnr, etage/dør, postnr/postnrnavn, WGS84 point). Resolution by UUID only — there is no address search/autocomplete.","parameters":[{"name":"uuid","in":"path","required":true,"description":"DAR id_lokalId (UUID) — e.g. a unit’s adresseIdentificerer from BBR.","schema":{"type":"string","format":"uuid"}},{"name":"asOf","in":"query","required":false,"description":"Bitemporal point-in-time: resolve the record as registered/valid at this ISO-8601 date/datetime instead of now; echoed in meta.as_of.","schema":{"type":"string","format":"date-time"}}]}},"/v1/adresse/{uuid}/historik":{"get":{"operationId":"getAdresseByUuidHistorik","summary":"DAR address version history","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdresseHistorik"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"uuid","in":"path","required":true,"description":"DAR id_lokalId (UUID) — e.g. a unit’s adresseIdentificerer from BBR.","schema":{"type":"string","format":"uuid"}}]}},"/v1/adgangsadresser":{"get":{"operationId":"getAdgangsadresser","summary":"Filtered, paged access addresses incl. cirkel/polygon (DAWA /adgangsadresser)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK — JSON, or a GeoJSON FeatureCollection with format=geojson.","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AdgangsadresseList"},{"$ref":"#/components/schemas/AdresseGeoJson"}]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Address index not enabled/populated, or a spatial filter on a deployment without PostGIS.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"Free text (min 2 chars), prefix-first then typo-tolerant.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"4-digit postnummer.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode (1–4 digits; 101 reads as 0101).","schema":{"type":"string"}},{"name":"vejnavn","in":"query","required":false,"description":"Exact street name (case-insensitive).","schema":{"type":"string"}},{"name":"husnr","in":"query","required":false,"description":"Exact house number, e.g. 12B (narrows; not enough on its own).","schema":{"type":"string"}},{"name":"cirkel","in":"query","required":false,"description":"DAWA `x,y,radius` — within radius metres (max 10 000) of x,y in srid.","schema":{"type":"string"}},{"name":"polygon","in":"query","required":false,"description":"DAWA polygon: a JSON array of rings in srid, e.g. [[[x1,y1],[x2,y2],[x3,y3],[x1,y1]]]. Max 1000 vertices; bounding box at most 0.3° × 0.5°.","schema":{"type":"string"}},{"name":"srid","in":"query","required":false,"description":"Reference system of cirkel/polygon AND of the output: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `geojson` — a FeatureCollection, one Point per address.","schema":{"type":"string","enum":["json","geojson"]}},{"name":"per_side","in":"query","required":false,"description":"Page size (default 100, max 1000).","schema":{"type":"integer"}},{"name":"side","in":"query","required":false,"description":"Page number, 1-based (side × per_side at most 50 000).","schema":{"type":"integer"}}]}},"/v1/adgangsadresser/autocomplete":{"get":{"operationId":"getAdgangsadresserAutocomplete","summary":"Access-address type-ahead on the DAWA path (/adgangsadresser/autocomplete)","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Autocomplete"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Address search not enabled / index not yet populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"q","in":"query","required":true,"description":"Free-text query (min 2 chars).","schema":{"type":"string"}}]}},"/v1/adresser":{"get":{"operationId":"getAdresser","summary":"Filtered, paged unit addresses with etage/dør (DAWA /adresser)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK — JSON, or a GeoJSON FeatureCollection with format=geojson.","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/AdresseList"},{"$ref":"#/components/schemas/AdresseGeoJson"}]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Unit index not populated yet, or a spatial filter on a deployment without PostGIS.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"Free text (min 2 chars), prefix-first then typo-tolerant.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"4-digit postnummer.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode (1–4 digits; 101 reads as 0101).","schema":{"type":"string"}},{"name":"vejnavn","in":"query","required":false,"description":"Exact street name (case-insensitive).","schema":{"type":"string"}},{"name":"husnr","in":"query","required":false,"description":"Exact house number, e.g. 12B (narrows; not enough on its own).","schema":{"type":"string"}},{"name":"adgangsadresseid","in":"query","required":false,"description":"Every unit of one access address (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"etage","in":"query","required":false,"description":"Floor, e.g. st, 1, kl (narrows; not enough on its own).","schema":{"type":"string"}},{"name":"doer","in":"query","required":false,"description":"Door, e.g. th, tv, mf (narrows; not enough on its own).","schema":{"type":"string"}},{"name":"cirkel","in":"query","required":false,"description":"DAWA `x,y,radius` — within radius metres (max 10 000) of x,y in srid.","schema":{"type":"string"}},{"name":"polygon","in":"query","required":false,"description":"DAWA polygon: a JSON array of rings in srid, e.g. [[[x1,y1],[x2,y2],[x3,y3],[x1,y1]]]. Max 1000 vertices; bounding box at most 0.3° × 0.5°.","schema":{"type":"string"}},{"name":"srid","in":"query","required":false,"description":"Reference system of cirkel/polygon AND of the output: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `geojson` — a FeatureCollection, one Point per address.","schema":{"type":"string","enum":["json","geojson"]}},{"name":"per_side","in":"query","required":false,"description":"Page size (default 100, max 1000).","schema":{"type":"integer"}},{"name":"side","in":"query","required":false,"description":"Page number, 1-based (side × per_side at most 50 000).","schema":{"type":"integer"}}]}},"/v1/adresser/autocomplete":{"get":{"operationId":"getAdresserAutocomplete","summary":"Unit (etage/dør) type-ahead — the last step of street → house number → unit","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Autocomplete"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Unit index not populated on this deployment yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"Free text (min 2 chars); optional when adgangsadresseid is given.","schema":{"type":"string"}},{"name":"adgangsadresseid","in":"query","required":false,"description":"List the units of this access address (narrowed by q when it narrows).","schema":{"type":"string","format":"uuid"}}]}},"/v1/adgangsadresser/reverse":{"get":{"operationId":"getAdgangsadresserReverse","summary":"Nearest access addresses to a WGS84 point (DAWA /adgangsadresser/reverse)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdgangsadresseReverse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Address search not enabled / index not yet populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (or x/y/srid).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (or x/y/srid).","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style x (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style y (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"Reference system of x/y AND of the output: when given, each hit gains `koordinater` in it. 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"radius","in":"query","required":false,"description":"Search radius in metres (default 200, max 1000).","schema":{"type":"integer"}},{"name":"per_side","in":"query","required":false,"description":"Max hits, nearest first (default 1, max 20).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `geojson` — a FeatureCollection, one Point per address.","schema":{"type":"string","enum":["json","geojson"]}}]}},"/v1/adgangsadresser/bfe/{bfe}":{"get":{"operationId":"getAdgangsadresserBfeByBfe","summary":"All access addresses on a BFE (inverse of /adgangsadresser/reverse)","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdgangsadresserByBfe"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Address search not enabled / index not yet populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"bfe","in":"path","required":true,"description":"BFE (Bestemt Fast Ejendom) number — the cadastral property key.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"srid","in":"query","required":false,"description":"Output reference system: adds `koordinater` ([lon,lat] for 4326, [x,y] metres for 25832) to each hit, and sets the GeoJSON geometry system.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `geojson` — a FeatureCollection, one Point per address.","schema":{"type":"string","enum":["json","geojson"]}}]}},"/v1/datavask/adgangsadresser":{"get":{"operationId":"getDatavaskAdgangsadresser","summary":"Fuzzy-clean a dirty address string → DAR candidates + A/B/C band (DAWA /datavask/adgangsadresser)","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatavaskResultat"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"Address search not enabled / index not yet populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"betegnelse","in":"query","required":true,"description":"The dirty/legacy address string to wash (min 2 characters).","schema":{"type":"string","minLength":2}}]}},"/v1/cvr/search":{"get":{"operationId":"getCvrSearch","summary":"Search CVR companies by name","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CvrSearch"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"description":"CVR name search not enabled, or the local company index has not been seeded yet; use /v1/cvr/{cvr} for by-number lookup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Fritekst / navnesøgning: find companies whose name matches the query, ranked by trigram similarity over a LOCAL company index (the live CVR host is eq-only and cannot fuzzy-search, so search is served from a bulk-ingested corpus — like address autocomplete). Each hit is a compact summary (cvr_nummer, navn, status, virksomhedsform, kommune); fetch full detail with GET /v1/cvr/{cvr}. Gated behind CVR_SEARCH_ENABLED + a seeded index — 503 until both. Note that for personally-owned forms (e.g. Enkeltmandsvirksomhed) a match may constitute the owner’s personal data — see docs/DPIA-CVR-SOLE-PROPRIETOR.md.","parameters":[{"name":"q","in":"query","required":true,"description":"Company-name query (min 2 characters).","schema":{"type":"string","minLength":2}},{"name":"limit","in":"query","required":false,"description":"Max companies to return (default 10, clamped to 1–20).","schema":{"type":"integer","minimum":1,"maximum":20}}]}},"/v1/cvr/{cvr}":{"get":{"operationId":"getCvrByCvr","summary":"Resolve a CVR company by CVR number","security":[{"bearerAuth":[]},{"queryToken":[]}],"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CvrResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"CVR source not configured for this deployment; /v1/demo/cvr works offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"Resolve ONE CVR number (Det Centrale Virksomhedsregister) to the clean, re-joined company record: navn, lifecycle status, beliggenhedsadresse (with translated kommune/region names), virksomhedsform and hovedbranche. This is CVR register data; note that for personally-owned forms (e.g. Enkeltmandsvirksomhed) navn/beliggenhedsadresse may constitute the owner’s personal data — see docs/DPIA-CVR-SOLE-PROPRIETOR.md. Contact fields telefon/email are gated behind a source flag and suppressed for reklamebeskyttet companies (hjemmeside is not in the CVR model, so it is always null). Lookup by CVR number; company name search is a separate surface.","parameters":[{"name":"cvr","in":"path","required":true,"description":"CVR-nummer — an 8-digit Danish company registration number.","schema":{"type":"string","pattern":"^\\d{8}$"}}]}},"/v1/kodeliste/{navn}":{"get":{"operationId":"getKodelisteByNavn","summary":"Translated code list (kode -> tekst)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KodelisteResponse"}}}},"404":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"navn","in":"path","required":true,"schema":{"type":"string","enum":["bygningsanvendelse","enhedsanvendelse","varmeinstallation","opvarmningsmiddel","supplerendevarme","ydervaeg","tagdaekning","branchekode"]}}]}},"/v1/errors":{"get":{"operationId":"getErrors","summary":"The public error catalogue: every status the API can return, by failure class (keyless)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorCatalogue"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/stats/kommuner":{"get":{"operationId":"getStatsKommuner","summary":"Per-kommune adresse/jordstykke counts for the national map (public, keyless)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KommuneStats"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/stats/totals":{"get":{"operationId":"getStatsTotals","summary":"National totals: adresser, enheder, jordstykker, bygninger, kommuner, postnumre (keyless)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsTotals"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/stats/postnumre":{"get":{"operationId":"getStatsPostnumre","summary":"Adgangsadresser and standing buildings per postnummer (keyless)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostnummerStats"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/stats/top":{"get":{"operationId":"getStatsTop","summary":"The largest kommuner or postnumre by adresser, bygninger or jordstykker (keyless)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsTop"}}}},"400":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"maal","in":"query","required":false,"schema":{"type":"string","enum":["adresser","bygninger","jordstykker"],"default":"adresser"}},{"name":"niveau","in":"query","required":false,"description":"jordstykker are counted per kommune only.","schema":{"type":"string","enum":["kommune","postnummer"],"default":"kommune"}},{"name":"antal","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10}}]}},"/v1/demo/ejendom":{"get":{"operationId":"getDemoEjendom","summary":"Offline BBR sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjendomRollup"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/bygninger/soeg":{"get":{"operationId":"getDemoBygningerSoeg","summary":"Building search demo (no key): exact count + first page, or a group_by distribution","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Bygningssoegning"},{"$ref":"#/components/schemas/Bygningsgruppering"}]}}}},"400":{"$ref":"#/components/responses/Error"},"429":{"description":"Per-IP demo rate limit (60/min) exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"$ref":"#/components/responses/Error"}},"description":"Bygningssøgning: every standing BBR building (status opført) that matches the filter — use, construction year, heating installation and fuel, roof and wall material, registered asbestos, floor areas, storeys, an oil tank, solar cells or ground source heat in use, afløb and spildevandspåbud — plus facts joined on from other registers: the property’s grundareal (Matriklen), kortlagt jordforurening (DKJord V1/V2), fredning and SAVE value (FBB) and the energimærke class (Grundfast’s energimærke corpus — partial coverage, so a class filter only finds labels the corpus holds). Served from a local national building index. The area is ONE of `kommunekode`, `postnr` or `bbox` (a WGS84 window of at most 1° each way); with none the search covers the whole country. Area searches are ordered by address, window and national searches by building id. `antal` is the exact count. Every plan gets the count and the first page (up to 100 buildings, JSON); later pages and the csv/jsonl/geojson formats need the plan named in the 402. Metered as one unit per started 1,000 rows of `per_side`. Filters combine with AND; list filters match ANY of their codes. With `group_by` (aarti, tag, anvendelse, kommune, varme, energimaerke) the same filter is answered as a distribution — one exact count per group from a single GROUP BY, JSON only, every plan, one unit, for any area including the whole country. A 503 with Retry-After means the index is not loaded, a filter needs the extended index that is not loaded yet, or the national search is momentarily busy.","parameters":[{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode, e.g. 0751. At most one of kommunekode, postnr and bbox.","schema":{"type":"string","pattern":"^\\d{3,4}$"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer, e.g. 8000. At most one of kommunekode, postnr and bbox.","schema":{"type":"string","pattern":"^\\d{4}$"}},{"name":"bbox","in":"query","required":false,"description":"Map window `minLon,minLat,maxLon,maxLat` (WGS84), at most 1° each way, overlapping Denmark.","schema":{"type":"string"}},{"name":"anvendelse","in":"query","required":false,"description":"Comma-separated byg021 codes and/or groups: bolig, enfamiliehus, raekkehus, etagebolig, landbrug, industri, energi, handel_kontor, institution, sommerhus, fritid, udhus_garage.","schema":{"type":"string"}},{"name":"opfoert_fra","in":"query","required":false,"description":"Built in or after this year.","schema":{"type":"integer","minimum":1000,"maximum":2100}},{"name":"opfoert_til","in":"query","required":false,"description":"Built in or before this year.","schema":{"type":"integer","minimum":1000,"maximum":2100}},{"name":"varme","in":"query","required":false,"description":"byg056 varmeinstallation codes, comma-separated (e.g. 2,7).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"opvarmning","in":"query","required":false,"description":"byg057 opvarmningsmiddel codes (e.g. 3 = flydende brændsel).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"tag","in":"query","required":false,"description":"byg033 tagdækningsmateriale codes (e.g. 3 = fibercement herunder asbest).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"ydervaeg","in":"query","required":false,"description":"byg032 ydervæggens materiale codes.","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"asbest","in":"query","required":false,"description":"ja = byg036 registers asbestos (codes 1-4); nej = registered free of it (5).","schema":{"type":"string","enum":["ja","nej"]}},{"name":"areal_min","in":"query","required":false,"description":"Min samlet bygningsareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"areal_max","in":"query","required":false,"description":"Max samlet bygningsareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"boligareal_min","in":"query","required":false,"description":"Min boligareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"boligareal_max","in":"query","required":false,"description":"Max boligareal (m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"olietank","in":"query","required":false,"description":"ja/nej: an oil tank in use (not sløjfet) is registered on the plot.","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"etager_min","in":"query","required":false,"description":"Min antal etager (byg054).","schema":{"type":"integer","minimum":0,"maximum":99}},{"name":"etager_max","in":"query","required":false,"description":"Max antal etager (byg054).","schema":{"type":"integer","minimum":0,"maximum":99}},{"name":"grundareal_min","in":"query","required":false,"description":"Min grundareal of the property (Matriklen, m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"grundareal_max","in":"query","required":false,"description":"Max grundareal of the property (Matriklen, m²).","schema":{"type":"integer","minimum":0,"maximum":10000000}},{"name":"energimaerke","in":"query","required":false,"description":"Energimærke class letters A-G, comma-separated. Only labels in Grundfast’s corpus.","schema":{"type":"string","pattern":"^[A-Ga-g](,[A-Ga-g])*$"}},{"name":"afloeb","in":"query","required":false,"description":"byg031/gru010 afløbsforhold codes (e.g. 20 = afløb til samletank).","schema":{"type":"string","pattern":"^\\d{1,4}(,\\d{1,4})*$"}},{"name":"spildevandspaabud","in":"query","required":false,"description":"ja = a påbud om forbedret rensning or tilslutning (rensningspåbud 2-7); nej = \"rensning ok\" (1).","schema":{"type":"string","enum":["ja","nej"]}},{"name":"solceller","in":"query","required":false,"description":"ja/nej: a solcelleanlæg in use on the grund or the building.","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"jordvarme","in":"query","required":false,"description":"ja/nej: jordvarmeslanger in use on the grund or the building.","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"jordforurening","in":"query","required":false,"description":"v1 / v2 / kortlagt (either) / nej: kortlagt jordforurening on any of the property’s parcels.","schema":{"type":"string","enum":["v1","v2","kortlagt","nej"]}},{"name":"fredet","in":"query","required":false,"description":"ja/nej: the building is fredet (FBB).","schema":{"type":"string","enum":["ja","nej","true","false"]}},{"name":"bevaringsvaerdi_max","in":"query","required":false,"description":"SAVE value at most this (1 = highest), e.g. 4.","schema":{"type":"integer","minimum":1,"maximum":9}},{"name":"per_side","in":"query","required":false,"description":"Page size (default 100; max 1000 for json, 10000 for csv/jsonl/geojson).","schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"group_by","in":"query","required":false,"description":"Answer as a distribution (Bygningsgruppering) instead of a page: aarti = decade of opførelsesår (1960 = 1960–1969; unknown and the placeholder year 1000 are null), tag = byg033 tagdækningsmateriale, anvendelse = byg021, kommune = kommunekode, varme = byg056 varmeinstallation, energimaerke = class letter (null = no label in the corpus). JSON only; side/per_side are ignored.","schema":{"type":"string","enum":["aarti","tag","anvendelse","kommune","varme","energimaerke"]}}]}},"/v1/demo/ejendom.geojson":{"get":{"operationId":"getDemoEjendomGeojson","summary":"Offline GeoJSON sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BbrFeatureCollection"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/matrikel":{"get":{"operationId":"getDemoMatrikel","summary":"Offline cadastre sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatrikelEjendom"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/geodanmark/bygninger":{"get":{"operationId":"getDemoGeodanmarkBygninger","summary":"Offline GeoDanmark footprint sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeodanmarkBygninger"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/property":{"get":{"operationId":"getDemoProperty","summary":"Keyless property map — covering parcel + building footprints + point (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoProperty"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}},"description":"Supply either a coordinate (lon+lat, or DAWA-style x/y with srid) OR a bfe. A call with neither returns 400. Every part of the payload is best-effort: an uncovered point yields parcel:null and an unconfigured GeoDanmark yields buildings:[], never a 5xx.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}},{"name":"bfe","in":"query","required":false,"description":"BFE number; the parcel centroid is used as the point. Required unless lon+lat / x+y are given.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/demo/property/lag":{"get":{"operationId":"getDemoPropertyLag","summary":"Keyless binding-register geometry for the property drawing (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoPropertyLag"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}},"description":"The byggelinjer, plan and jord geometry around the same property /v1/demo/property draws, clipped to its scene box. Fail-soft per group: `status` says which groups answered in full. Same parameters as /v1/demo/property.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}},{"name":"bfe","in":"query","required":false,"description":"BFE number; the parcel centroid is used as the point. Required unless lon+lat / x+y are given.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/demo/ejendom-sitemap":{"get":{"operationId":"getDemoEjendomSitemap","summary":"Keyless property-sitemap feed — sample of (bfe, betegnelse)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjendomSitemap"}}}},"404":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"limit","in":"query","required":false,"description":"Number of properties to sample (default 5000; larger values are clamped to the server sample cap).","schema":{"type":"integer","minimum":1}}]}},"/v1/demo/energimaerke":{"get":{"operationId":"getDemoEnergimaerke","summary":"Offline energy-label sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Energimaerke"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/jordstykke":{"get":{"operationId":"getDemoJordstykke","summary":"Offline parcel/BFE sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Jordstykke"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/ejerlav":{"get":{"operationId":"getDemoEjerlav","summary":"Offline ejerlav sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EjerlavList"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/dagi":{"get":{"operationId":"getDemoDagi","summary":"Offline DAGI område sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiOmraade"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/dagi/reverse":{"get":{"operationId":"getDemoDagiReverse","summary":"Keyless demo of /v1/dagi/reverse — the områder containing a point (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiReverse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"description":"Per-IP demo rate limit (60/min) exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"$ref":"#/components/responses/Error"},"503":{"description":"DAGI WFS not configured for this deployment; the other /v1/dagi routes still answer offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"description":"The inverse of /v1/dagi/{tema}/{kode}: which områder cover a coordinate. An empty `omraader` is a 200, not a 404 — it means the register answered and no Danish administrative område covers this point (a coordinate at sea). An upstream that could not answer is a 502, and a deployment with no DAGI WFS configured is a 503; neither is ever reported as an empty list. This is the one /v1/dagi route with no offline fallback — names resolve from the bundled register, but which område contains a given point is a question only the polygons can answer.","parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}]}},"/v1/demo/adresser/bfe/{bfe}":{"get":{"operationId":"getDemoAdresserBfeByBfe","summary":"Keyless: every unit address (etage/dør) on a BFE (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdresseEnhederByBfe"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}},"description":"The units of every access address stamped with this BFE, in reading order, from the local DAR corpus. An unindexed BFE is an empty list. Feeds the address page demo.","parameters":[{"name":"bfe","in":"path","required":true,"schema":{"type":"integer","minimum":1}}]}},"/v1/demo/dagi/graense/{tema}/{kode}":{"get":{"operationId":"getDemoDagiGraenseByTemaByKode","summary":"Keyless: one DAGI område boundary, simplified for drawing (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiGraense"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}},"description":"The cached geometry /v1/dagi/{tema}/{kode} serves, simplified (Douglas–Peucker, `forenklet_m`) for a drawing. Temas: kommune, sogn, retskreds, politikreds.","parameters":[{"name":"tema","in":"path","required":true,"schema":{"type":"string","enum":["kommune","sogn","retskreds","politikreds"]}},{"name":"kode","in":"path","required":true,"schema":{"type":"string"}}]}},"/v1/demo/adgangsadresser/reverse":{"get":{"operationId":"getDemoAdgangsadresserReverse","summary":"Keyless demo of /v1/adgangsadresser/reverse — nearest addresses (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdgangsadresseReverse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"description":"Per-IP demo rate limit (60/min) exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Address search not enabled / index not yet populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (or x/y/srid).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (or x/y/srid).","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style x (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style y (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"Reference system of x/y AND of the output: when given, each hit gains `koordinater` in it. 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"radius","in":"query","required":false,"description":"Search radius in metres (default 200, max 1000).","schema":{"type":"integer"}},{"name":"per_side","in":"query","required":false,"description":"Max hits, nearest first (default 1, max 20).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"`json` (default) or `geojson` — a FeatureCollection, one Point per address.","schema":{"type":"string","enum":["json","geojson"]}}]}},"/v1/demo/datavask/adgangsadresser":{"get":{"operationId":"getDemoDatavaskAdgangsadresser","summary":"Keyless demo of /v1/datavask/adgangsadresser — wash one address (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatavaskResultat"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"description":"Per-IP demo rate limit (60/min) exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Address search not enabled / index not yet populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"betegnelse","in":"query","required":true,"description":"The dirty/legacy address string to wash (min 2 characters).","schema":{"type":"string","minLength":2}}]}},"/v1/demo/dhm":{"get":{"operationId":"getDemoDhm","summary":"Offline DHM elevation sample (no token)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmPunkt"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/dhm/terraen":{"get":{"operationId":"getDemoDhmTerraen","summary":"Keyless terrain grid over one property, for the section demo (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoDhmTerraen"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}},"description":"The /v1/dhm/terraen grid over the property's own envelope (its jordstykker padded by a street; on a property wider than one 236 m raster, a window of it centred near `midt`), about 100 samples a side, koter to the centimetre. One upstream raster per grid, cached; a 504 means the raster is still being read.","parameters":[{"name":"bfe","in":"query","required":true,"description":"The property (BFE number).","schema":{"type":"integer","minimum":1}},{"name":"midt","in":"query","required":false,"description":"\"lon,lat\" (WGS84): where to centre the window on a property wider than one raster — the section being drawn. Ignored when the whole property fits.","schema":{"type":"string"}}]}},"/v1/demo/dhm/overflade":{"get":{"operationId":"getDemoDhmOverflade","summary":"Keyless surface grid over one property, for the section demo (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoDhmOverflade"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}},"description":"The /v1/dhm/overflade grid (surface model: roofs and tree crowns) over exactly the envelope and spacing /v1/demo/dhm/terraen uses for the same property and `midt`, so the two line up index by index. Koter to the centimetre; one upstream raster per grid, cached; a 504 means the raster is still being read.","parameters":[{"name":"bfe","in":"query","required":true,"description":"The property (BFE number).","schema":{"type":"integer","minimum":1}},{"name":"midt","in":"query","required":false,"description":"\"lon,lat\" (WGS84): where to centre the window on a property wider than one raster — the section being drawn. Ignored when the whole property fits.","schema":{"type":"string"}}]}},"/v1/demo/dhm/tag/sol":{"get":{"operationId":"getDemoDhmTagSol","summary":"Keyless live tag og sol — only for the featured demo properties","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DhmTagSol"}}}},"404":{"$ref":"#/components/responses/Error"}},"description":"The same answer as /v1/dhm/tag/{bfe}/sol with default assumptions, keyless and per-IP rate limited, but ONLY for the BFEs the site features. Any other BFE is a 404 that names the keyed endpoint.","parameters":[{"name":"bfe","in":"query","required":false,"description":"A featured demo BFE; defaults to the first one.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/demo/plan/citater":{"get":{"operationId":"getDemoPlanCitater","summary":"Keyless live lokalplan-citater — only for the featured demo properties","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LokalplanCitater"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"}},"description":"The same answer as /v1/plan/ejendom/{bfe}/citater, keyless and per-IP rate limited, but ONLY for the BFEs the site features (the /plandata-api picker). Any other BFE is a 404 that names the keyed endpoint.","parameters":[{"name":"bfe","in":"query","required":false,"description":"A featured demo BFE; defaults to the first one.","schema":{"type":"integer","exclusiveMinimum":0}},{"name":"emner","in":"query","required":false,"description":"Comma-separated topics: solceller, tagmateriale, tagform, reflekterende, hoejde, bebyggelsesprocent, farver. Default: all.","schema":{"type":"string"}}]}},"/v1/demo/vurdering":{"get":{"operationId":"getDemoVurdering","summary":"Offline ejendomsvurdering sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VurEjendomsvurdering"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/miljoe/screening":{"get":{"operationId":"getDemoMiljoeScreening","summary":"Keyless live miljøscreening — only for the featured demo properties","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiljoeScreening"}}}},"404":{"$ref":"#/components/responses/Error"}},"description":"The same answer as /v1/miljoe/screening/{bfe}, keyless and per-IP rate limited, but ONLY for the BFEs the site features (FEATURED_PROPERTY_BFES). Any other BFE is a 404 that names the keyed endpoint.","parameters":[{"name":"bfe","in":"query","required":false,"description":"A featured demo BFE; defaults to the first one.","schema":{"type":"integer","exclusiveMinimum":0}}]}},"/v1/demo/stoej":{"get":{"operationId":"getDemoStoej","summary":"Offline støjkortlægning sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiljoeStoej"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/oversvoemmelse":{"get":{"operationId":"getDemoOversvoemmelse","summary":"Oversvømmelse sample: a real captured answer for Østre Kajgade 1, Køge (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiljoeOversvoemmelse"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/stoej/kort/info":{"get":{"operationId":"getDemoStoejKortInfo","summary":"Støjkort round (no key): which mapping round the noise-map tiles are drawn from right now, and its bands per source","description":"`runde` is 2022 (the Danish calculation, Nord2000, drawn from Grundfast’s own copy of Miljøstyrelsen’s download) once that round is loaded, else 2017 (Miljøstyrelsen’s own tiles). The two rounds have different classes — 2017: 55–59 … 75+ dB Lden for both sources; 2022: 53–57 … 73+ for roads, 54–58 … 74+ and 79+ for rail — so `skala` gives, per source, the lower bound, label and pixel alpha of every band. Pin tile URLs to this round with `?runde=`.","security":[],"responses":{"200":{"description":"The round and its band table.","content":{"application/json":{"schema":{"type":"object","required":["runde","indikator","hoejde_m","skala"],"properties":{"runde":{"type":"integer","enum":[2017,2022]},"indikator":{"type":"string","enum":["Lden"]},"hoejde_m":{"type":"number","enum":[1.5]},"skala":{"type":"object","additionalProperties":{"type":"object","properties":{"fra_db":{"type":"array","items":{"type":"number"}},"baand":{"type":"array","items":{"type":"string"}},"alpha":{"type":"array","items":{"type":"integer"}}}}}}}}}},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/stoej/kort/{kilde}/{z}/{row}/{col}":{"get":{"operationId":"getDemoStoejKortByKildeByZByRowByCol","summary":"Støjkort tile (no key): the Lden 1,5 m noise map for one source — the Danish 2022 round when loaded, else Miljøstyrelsen’s 2017 tiles — each band an alpha step on black","description":"The round drawn is the one the point answer (`/v1/miljoe/stoej`) uses for roads and rail, and is named in the `X-Stoej-Runde` response header; its bands and alphas are in `GET /v1/demo/stoej/kort/info`. Without `runde` the tile is the current round (cached one hour); with `runde` it is pinned to that round (cached 30 days) — 2017 is always drawable, 2022 only once loaded (else 503).","security":[],"parameters":[{"name":"kilde","in":"path","required":true,"schema":{"type":"string","enum":["vej","jernbane"]}},{"name":"z","in":"path","required":true,"description":"WMTS level in the EPSG:25832 matrix set, 8–12.","schema":{"type":"integer","minimum":8,"maximum":12}},{"name":"row","in":"path","required":true,"schema":{"type":"integer"}},{"name":"col","in":"path","required":true,"schema":{"type":"integer"}},{"name":"runde","in":"query","required":false,"description":"Pin the tile to one mapping round.","schema":{"type":"integer","enum":[2017,2022]}}],"responses":{"200":{"description":"256×256 PNG; alpha per band as in `/v1/demo/stoej/kort/info` (2017: 64/106/148/190/232 = 55–59 … 75+ dB Lden; 2022 roads 47/89/131/173/215 = 53–57 … 73+). Transparent = not mapped at or above the round’s lowest band (not \"quiet\").","headers":{"X-Stoej-Runde":{"description":"The mapping round drawn (2017 or 2022).","schema":{"type":"integer"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/plan":{"get":{"operationId":"getDemoPlan","summary":"Offline Plandata sample with restbyggeret (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanOpslag"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/jord":{"get":{"operationId":"getDemoJord","summary":"Offline områdeklassificering sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JordOmraadeklassificering"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/jord/kortlaegning":{"get":{"operationId":"getDemoJordKortlaegning","summary":"Offline V1/V2 kortlægning sample at a point (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JordKortlaegning"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/jord/kortlaegning/matrikel":{"get":{"operationId":"getDemoJordKortlaegningMatrikel","summary":"Offline V1/V2 kortlægning sample on a jordstykke (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JordKortlaegningMatrikel"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/natur":{"get":{"operationId":"getDemoNatur","summary":"Offline skovbyggelinje sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturSkovbyggelinje"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/byggelinjer":{"get":{"operationId":"getDemoByggelinjer","summary":"Offline byggelinje sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturByggelinjer"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/orto/tile/{z}/{x}/{y}":{"get":{"operationId":"getDemoOrtoTileByZByXByY","summary":"Offline ortofoto sample tile (no token)","security":[],"parameters":[{"name":"z","in":"path","required":true,"description":"Zoom level (0–21), web-mercator XYZ scheme.","schema":{"type":"integer","minimum":0,"maximum":21}},{"name":"x","in":"path","required":true,"description":"Tile column, 0 ≤ x < 2^z.","schema":{"type":"integer","minimum":0}},{"name":"y","in":"path","required":true,"description":"Tile row, 0 ≤ y < 2^z (0 at the north edge).","schema":{"type":"integer","minimum":0}},{"name":"aar","in":"query","required":false,"description":"Capture year of a past årgang (see /v1/orto/aargange). Omit for the current mosaic. Every layer published for that year is tried, finest resolution first (since 2017 a year has both a 10 cm and a 12,5 cm layer, and they cover different ground); the response headers name the one that answered. A year the service does not publish is a 400; a year none of whose layers COVER this tile is a 404. Never a silent fallback to the current imagery.","schema":{"type":"integer","minimum":1900,"maximum":2200}},{"name":"dpr","in":"query","required":false,"description":"Pixel density to render the tile at: 1 (default) returns 256×256, 2 returns the SAME geographic tile at 512×512 for a retina screen. It is not a zoom — the tile covers the same ground either way, so a client may mix the two and place them identically. Still one metered call. Any other value is a 400.","schema":{"type":"integer","enum":[1,2],"default":1}}],"responses":{"200":{"description":"JPEG tile","headers":{"X-Grundfast-Kilde":{"description":"Licence credit for the photo (Klimadatastyrelsen ortofoto via Dataforsyningen).","schema":{"type":"string"}},"X-Grundfast-Orto-Lag":{"description":"The WMS layer that answered, e.g. `geodanmark_2019_12_5cm` or `orto_foraar`.","schema":{"type":"string"}},"X-Grundfast-Orto-Aargang":{"description":"Capture year of the photo. Only set when `aar` was given.","schema":{"type":"integer"}},"X-Grundfast-Orto-Oploesning-Cm":{"description":"Ground resolution of the answering layer in cm. Only set when `aar` was given.","schema":{"type":"number"}}},"content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/orto/aargange":{"get":{"operationId":"getDemoOrtoAargange","summary":"Available ortofoto årgange (no key)","description":"Ortofoto årgange the upstream publishes, newest first, derived from its GetCapabilities. NOTE: coverage is REGIONAL per year — Denmark is flown in a rotation, so most points are covered by only a few of these years, and this list is what the SERVICE publishes rather than what covers any given point. A tile request for a year that does not cover the requested tile answers 404 rather than the upstream blank image.","security":[],"responses":{"200":{"description":"Årgange","content":{"application/json":{"schema":{"type":"object","required":["aargange"],"properties":{"aargange":{"type":"array","items":{"type":"object","required":["aar","layer","oploesningCm","candidates"],"properties":{"aar":{"type":"integer","description":"Capture year."},"layer":{"type":"string","description":"Default upstream layer for the year. The layer actually used for a tile is chosen per point from `candidates`."},"oploesningCm":{"type":"number","description":"Ground sample distance in cm (10 or 12.5)."},"candidates":{"type":"array","description":"Every layer that could serve this year. A year is often flown as several part-country collections; which (if any) reaches a given point decides coverage.","items":{"type":"object","required":["layer","oploesningCm","national","bbox"],"properties":{"layer":{"type":"string"},"oploesningCm":{"type":"number"},"national":{"type":"boolean","description":"A geodanmark_* layer. It declares the whole country regardless of where that year was flown, so its extent is NOT a coverage claim and `bbox` is null."},"bbox":{"nullable":true,"type":"object","description":"Advertised WGS84 extent. Present (and meaningful) only for the part-country collections.","properties":{"w":{"type":"number"},"e":{"type":"number"},"s":{"type":"number"},"n":{"type":"number"}}}}}}}}}}}}}},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/orto/daekning":{"get":{"operationId":"getDemoOrtoDaekning","summary":"Which ortofoto årgange cover a point (no key)","description":"Which of the published årgange were actually flown over a point — the list a \"through the years\" view can offer without half its buttons producing a blank. Coverage cannot be read off the capabilities (the national layers declare the whole country regardless of where the year was flown), so this probes one tile per published year and caches the verdict per z15 tile. Metered as ONE call regardless of how many years were probed. Takes the same lon/lat (or DAWA x/y/srid) vocabulary as the other coordinate endpoints.","security":[],"parameters":[{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (decimal degrees). Required unless x/y are given.","schema":{"type":"number"}},{"name":"x","in":"query","required":false,"description":"DAWA-style easting/longitude (paired with y + srid).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"DAWA-style northing/latitude (paired with x + srid).","schema":{"type":"number"}},{"name":"srid","in":"query","required":false,"description":"CRS of x/y: 4326 (WGS84 lon/lat, default) or 25832 (ETRS89/UTM32N metres).","schema":{"type":"string","enum":["4326","25832"]}}],"responses":{"200":{"description":"Coverage per årgang","content":{"application/json":{"schema":{"type":"object","required":["punkt","tile","antal","antal_daekkede","aargange","meta"],"properties":{"punkt":{"type":"object","properties":{"lon":{"type":"number"},"lat":{"type":"number"}}},"tile":{"type":"object","description":"The web-mercator tile the verdicts were measured on (z15). Coverage is a REGIONAL fact — a flight block, not a pixel — so the answer holds for every point inside this tile, and it is named so a caller can cache alongside us.","properties":{"z":{"type":"integer"},"x":{"type":"integer"},"y":{"type":"integer"}}},"antal":{"type":"integer","description":"Published årgange."},"antal_daekkede":{"type":"integer","description":"How many of them were measured to cover the point (daekker === true)."},"aargange":{"type":"array","items":{"type":"object","required":["aar","oploesning_cm","daekker"],"properties":{"aar":{"type":"integer"},"oploesning_cm":{"type":"number"},"daekker":{"nullable":true,"type":"boolean","description":"true and false are both MEASUREMENTS — the year's tile came back as a photograph, or as the upstream out-of-extent blank. null means the lookup did not settle it (an upstream fault, or the request running out of its own time budget) and must NOT be rendered as \"not flown here\": in a through-the-years view a missing photo reads as a missing building."}}}},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"}}}}}}}},"400":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/stednavne":{"get":{"operationId":"getDemoStednavne","summary":"Offline placenames sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StednavnePunkt"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/adresse":{"get":{"operationId":"getDemoAdresse","summary":"Offline DAR address sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdresseResponse"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/demo/adresse-search":{"get":{"operationId":"getDemoAdresseSearch","summary":"Offline address autocomplete sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdresseSearch"}}}},"404":{"$ref":"#/components/responses/Error"}},"parameters":[{"name":"q","in":"query","required":false,"description":"Free-text query (min 2 chars) — serves a live, capped taste of the real index. Omitted/too short, or with search off, the bundled offline sample is returned.","schema":{"type":"string"}}]}},"/v1/demo/cvr":{"get":{"operationId":"getDemoCvr","summary":"Offline CVR company sample (no key)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CvrResponse"}}}},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/register":{"post":{"operationId":"postAuthRegister","summary":"Self-serve registration (creates a free-tier customer + owner)","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterInput"}}}},"responses":{"201":{"description":"Created"},"400":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/login":{"post":{"operationId":"postAuthLogin","summary":"Log in (sets the session cookie)","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginInput"}}}},"responses":{"200":{"description":"OK"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/password/forgot":{"post":{"operationId":"postAuthPasswordForgot","summary":"Request a password-reset email (generic 200; 503 when email is unconfigured)","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequestInput"}}}},"responses":{"200":{"description":"Accepted (no account enumeration)"},"403":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/password/reset":{"post":{"operationId":"postAuthPasswordReset","summary":"Complete a password reset with the emailed token","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetConfirmInput"}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/email/verify":{"post":{"operationId":"postAuthEmailVerify","summary":"Confirm an email address with the emailed token (503 when the flow is off)","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailVerifyConfirmInput"}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/logout":{"post":{"operationId":"postAuthLogout","summary":"Log out (revokes the session)","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/auth/me":{"get":{"operationId":"getAuthMe","summary":"Current identity (session or API key)","responses":{"200":{"description":"OK"}}}},"/v1/auth/session":{"get":{"operationId":"getAuthSession","summary":"Whether the caller is signed in — always 200 with { authed }","responses":{"200":{"description":"OK"}}}},"/v1/keys":{"post":{"operationId":"postKeys","summary":"Mint an API key (session-only; plaintext returned once)","description":"Body: { name, mode: live|test, kind: secret|public, allowedOrigins?, permission?, expiresAt? }. kind=public mints a publishable gf_pub_ key (read_only, needs ≥ 1 allowed origin; see the publicKey security scheme). When the email-verification flow is enabled, minting a live key requires a verified email (403 otherwise). Test keys are never gated. `scopes` (secret keys only) narrows the key to named areas (adresse, bbr, matrikel, dagi, dhm, stednavne, cvr, energimaerke, vurdering, plan, miljoe, luftfoto, eksport, overvaagning) and/or grants the account scopes `usage` and `webhooks`, which no key holds unless it names them. Omitted = every data area. Out-of-scope calls answer 403 `key_scope`.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyInput"}}}},"responses":{"201":{"description":"Created"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"}}},"get":{"operationId":"getKeys","summary":"List API keys","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"}}},"delete":{"operationId":"deleteKeys","summary":"Revoke ALL API keys (leaked-key panic button; session-only)","description":"Revokes every key for the caller’s customer at once. A password reset does not touch keys (they are independent machine credentials), so this is the explicit lever to cut a leaked key off. Returns { revoked: n }.","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"},"401":{"$ref":"#/components/responses/Error"}}}},"/v1/keys/{keyId}":{"patch":{"operationId":"patchKeysByKeyId","summary":"Rename an API key, change a secret key’s scopes, or a public key’s origins","description":"Body: { name?, scopes?, allowedOrigins? }. `scopes: null` removes a secret key’s narrowing; a list replaces it. allowedOrigins only applies to a public (gf_pub_) key and must keep at least one entry. Changes take effect on the key’s next call. The key itself, its kind, mode and permission never change — mint a new key for that.","security":[{"cookieAuth":[]}],"parameters":[{"name":"keyId","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyInput"}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteKeysByKeyId","summary":"Revoke an API key","security":[{"cookieAuth":[]}],"parameters":[{"name":"keyId","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/me/keys":{"get":{"operationId":"getMeKeys","summary":"List own API keys","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/me/email/verify/request":{"post":{"operationId":"postMeEmailVerifyRequest","summary":"(Re)send a verification email to the caller (503 when the flow is off)","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"Accepted (no-op if already verified)"},"403":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/me/usage":{"get":{"operationId":"getMeUsage","summary":"Month-to-date usage + overage estimate","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/me/usage/timeseries":{"get":{"operationId":"getMeUsageTimeseries","summary":"Per-day billable-call counts for the current month","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/me/usage/endpoints":{"get":{"operationId":"getMeUsageEndpoints","summary":"Top endpoint families by call count this month","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/me/usage/history":{"get":{"operationId":"getMeUsageHistory","summary":"Traffic history for a window (today, 24h, 7d, 30d, month, 12m)","description":"Dense bucket series (hour/day/month), totals, the same-length previous window, endpoint + key breakdowns and hour-of-day / weekday profiles — every outcome including errors, with latency. Read off the hourly rollup, not the billing ledger.","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"parameters":[{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["today","24h","7d","30d","month","12m"],"default":"7d"}}],"responses":{"200":{"description":"OK"}}}},"/v1/me/usage/breakdown":{"get":{"operationId":"getMeUsageBreakdown","summary":"Usage grouped by key, hour or endpoint — errors and p50/p95 latency","description":"From the hourly rollup (every outcome, not only billed calls). `errorRate` is (clientErrors + rateLimited + serverErrors) / observed, null when nothing was observed. Latency percentiles are read off a fixed histogram (edges 25, 50, 100, 200, 400, 800, 1600 ms). Reachable with the dashboard session or an API key that names the `usage` scope.","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"parameters":[{"name":"gruppering","in":"query","required":false,"schema":{"type":"string","enum":["noegle","time","endpoint"],"default":"endpoint"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["today","24h","7d","30d","month","12m"],"default":"7d"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageBreakdown"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"}}}},"/v1/me/usage/recent":{"get":{"operationId":"getMeUsageRecent","summary":"Live feed of recent API calls (dashboard \"Forespørgsler\" view)","description":"Ephemeral, in-memory ring buffer of the caller’s recent metered calls, for the dashboard live view. Poll with `?after=<cursor>` to receive only calls newer than the previous response’s `cursor`. Not the billing ledger.","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/me/billing":{"get":{"operationId":"getMeBilling","summary":"Tier + Stripe linkage","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"}}}},"/v1/me/checkout":{"post":{"operationId":"postMeCheckout","summary":"Start a Stripe Checkout session to upgrade the caller’s own tier","description":"Session-scoped self-serve upgrade. Body is `{ tier }`; returns the Stripe Checkout URL to redirect the user to. Rate-limited (mintRateLimit).","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tier":{"type":"string"}},"required":["tier"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/me/billing-portal":{"post":{"operationId":"postMeBillingPortal","summary":"Open a Stripe Billing Portal session for the caller’s own subscription","description":"Session-scoped self-serve management (cancel at period end, update the payment method, view invoices). Returns the Stripe Billing Portal URL to redirect the user to. 409 when the customer has no Stripe subscription yet.","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"},"401":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/me/erase":{"post":{"operationId":"postMeErase","summary":"Erase the caller’s account (GDPR right-to-erasure)","description":"Session-scoped, OWNER-only, irreversible. Anonymizes all personal data (user + customer email/name) and deletes every credential (API keys, sessions, tokens, webhooks); Stripe subscriptions are canceled. Accounting records (usage/billing) are RETAINED under the legal-obligation exemption. Requires a typed confirmation: the body must echo the caller’s own account email. Clears the session on success.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["confirm"],"properties":{"confirm":{"type":"string","description":"The caller’s own account email, to confirm intent."}}}}}},"responses":{"200":{"description":"Erased (or already erased — idempotent)"},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/matrikel/ejendom:batch":{"post":{"operationId":"postMatrikelEjendomBatch","summary":"Resolve a list of BFEs’ cadastre rollups in one call","description":"Ids per call follow the plan: 50 on Pro, 100 on Scale, 150 on Enterprise — a longer list is a 402 (or a 400 past 150) that names the limit; send it as a job (POST /v1/jobs) instead.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bfe":{"type":"array","items":{"type":"integer"}}},"required":["bfe"]}}}},"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/adresse:batch":{"post":{"operationId":"postAdresseBatch","summary":"Resolve a list of DAR address UUIDs in one call","description":"Ids per call follow the plan: 50 on Pro, 100 on Scale, 150 on Enterprise — a longer list is a 402 (or a 400 past 150) that names the limit; send it as a job (POST /v1/jobs) instead.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"uuid":{"type":"array","items":{"type":"string"}}},"required":["uuid"]}}}},"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/dagi:batch":{"post":{"operationId":"postDagiBatch","summary":"Resolve a list of områder within one tema in a single call","description":"Ids per call follow the plan: 50 on Pro, 100 on Scale, 150 on Enterprise — a longer list is a 402 (or a 400 past 150) that names the limit; send it as a job (POST /v1/jobs) instead.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tema":{"type":"string"},"kode":{"type":"array","items":{"type":"string"}}},"required":["tema","kode"]}}}},"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/datavask/adgangsadresser:batch":{"post":{"operationId":"postDatavaskAdgangsadresserBatch","summary":"Vask (fuzzy-clean) a list of dirty address strings in one call","description":"Ids per call follow the plan: 50 on Pro, 100 on Scale, 150 on Enterprise — a longer list is a 402 (or a 400 past 150) that names the limit; send it as a job (POST /v1/jobs) instead.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"betegnelser":{"type":"array","items":{"type":"string"}}},"required":["betegnelser"]}}}},"responses":{"200":{"description":"OK","headers":{"X-Took-Ms":{"description":"Server-side handling time in whole milliseconds (set on every response, errors included).","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Per-minute burst ceiling for the key's tier (requests/minute).","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current 60-second burst window.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Unix-seconds timestamp when the burst window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Monthly included-call allowance (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Remaining included calls this month (or \"unlimited\").","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix-seconds timestamp of the monthly quota reset.","schema":{"type":"integer"}},"X-Grundfast-Stale":{"description":"Present (\"true\") when a cached copy was served because the upstream was down.","schema":{"type":"string"}},"X-Grundfast-Cache-Age":{"description":"Seconds since the served (stale) copy was fetched from upstream.","schema":{"type":"string"}},"X-Grundfast-Environment":{"description":"\"live\" or \"test\". A \"test\" (gf_test_) key is a sandbox: never billed, capped at a separate monthly allowance, and not counted against the tier quota.","schema":{"type":"string","enum":["live","test"]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/export":{"post":{"operationId":"postExport","summary":"Create an async bulk-export job (CSV/NDJSON/GeoJSON over a bounded id list)","description":"Resolves the supplied ids (bfe[] for bbr/matrikel, uuid[] for adresse) cache-first and serializes to the chosen format. Metered per requested id. Poll the job, then GET …/download once status is `completed`.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"register":{"type":"string","enum":["bbr","matrikel","adresse"]},"format":{"type":"string","enum":["csv","ndjson","geojson"]},"bfe":{"type":"array","items":{"type":"integer"}},"uuid":{"type":"array","items":{"type":"string"}}},"required":["register","format"]}}}},"responses":{"201":{"description":"Job queued"},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}},"get":{"operationId":"getExport","summary":"List the caller’s export jobs","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"OK"},"402":{"$ref":"#/components/responses/Error"}}}},"/v1/export/{id}":{"get":{"operationId":"getExportById","summary":"Export job status","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/export/{id}/download":{"get":{"operationId":"getExportByIdDownload","summary":"Download the generated export file (409 while still processing)","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The export file"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/me/team":{"get":{"operationId":"getMeTeam","summary":"Members, pending invitations and seats (used / plan limit)","description":"Every role may read the team. Seats count people plus pending, unexpired invitations; `seats.limit` is null on a plan with unlimited seats.","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamOverview"}}}},"401":{"$ref":"#/components/responses/Error"}}}},"/v1/me/team/invitations":{"post":{"operationId":"postMeTeamInvitations","summary":"Invite a person by email with a role (owner only)","description":"Roles: developer, billing, read_only (ownership is given by promoting a member). The invitation holds a seat until it is accepted, withdrawn or expires (7 days); 402 `seat_limit` when the plan has none left. When no email can be sent, the response carries the accept `link` for the owner to share.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamInviteInput"}}}},"responses":{"201":{"description":"Created"},"400":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/me/team/invitations/{id}":{"delete":{"operationId":"deleteMeTeamInvitationsById","summary":"Withdraw a pending invitation (owner only)","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/me/team/members/{id}":{"patch":{"operationId":"patchMeTeamMembersById","summary":"Change a member’s role (owner only; `owner` promotes)","description":"The account always keeps at least one owner (409 otherwise).","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRoleUpdateInput"}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteMeTeamMembersById","summary":"Remove a person from the account (owner only; their login is deleted)","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/invitations/inspect":{"post":{"operationId":"postAuthInvitationsInspect","summary":"What an invitation link is for: email, role, account (public, by token)","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"}}}},"/v1/auth/invitations/accept":{"post":{"operationId":"postAuthInvitationsAccept","summary":"Accept an invitation: choose a password, join the account, sign in (public)","description":"Single use. A login belongs to one account, so an address that already has a Grundfast login cannot accept (409).","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvitationAcceptInput"}}}},"responses":{"201":{"description":"Joined; the session cookie is set"},"400":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"}}}},"/v1/me/ip-bindings":{"get":{"operationId":"getMeIpBindings","summary":"IP bindings, the plan cap and the caller’s own IP","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"},"401":{"$ref":"#/components/responses/Error"}}},"post":{"operationId":"postMeIpBindings","summary":"Bind a fixed server IP to one of the account’s keys (starts pending)","description":"The binding activates the first time that KEY calls the API from that IP — proof you control the address. From then on calls from the IP need no key and are authenticated, metered, scoped and billed as that key (`X-Grundfast-Auth: ip-binding` on the response). A presented key always wins; a wrong key is still a 401. Active bindings are immutable: delete and recreate to change one. Starter and up; the count is capped per plan.","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IpBindingCreateInput"}}}},"responses":{"201":{"description":"Created (pending)"},"400":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/me/ip-bindings/{id}":{"delete":{"operationId":"deleteMeIpBindingsById","summary":"Delete an IP binding","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/adgangsadresser/reverse:batch":{"post":{"operationId":"postAdgangsadresserReverseBatch","summary":"Nearest access address for each of a list of points (one unit per point answered)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdgangsadresseReverseBatchInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdgangsadresseReverseBatchResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"description":"Body `{ punkter: [{ lon, lat, id? }], radius? }` (WGS84; radius in metres, 1–1000, default 200). Deduped on the coordinate; every point is validated before any lookup. Each answered point carries the ONE nearest adgangsadresse; a point with none inside `radius` is a 404 in `errors` and is not billed. `id` is echoed on both. Served from the local DAR index. Ids per call follow the plan: 50 on Pro, 100 on Scale, 150 on Enterprise — a longer list is a 402 (or a 400 past 150) that names the limit; send it as a job (POST /v1/jobs) instead."}},"/v1/dagi/reverse:batch":{"post":{"operationId":"postDagiReverseBatch","summary":"Administrative områder at each of up to 50 points (one unit per point answered)","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiReverseBatchInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DagiReverseBatchResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"description":"Body `{ punkter: [{ lon, lat, id? }] }` — at most 50 points on every plan, because each point is its own question to the DAGI WFS. Each answer is exactly what GET /v1/dagi/reverse answers for that point (a point at sea is an answer with no områder). A point the register did not answer is in `errors` with its 502/503 and is not billed; if NO point was answered the call itself answers with that status."}},"/v1/jobs":{"post":{"operationId":"postJobs","summary":"Create an asynchronous job over a list (datavask, reverse, bbr, dagi, miljoe)","description":"The list arrives as JSON `{ kind, rows, columns?, srid?, label?, start? }`, a multipart `file` (CSV, NDJSON or a JSON array) with the same fields as form fields, or a raw `text/csv` / `application/x-ndjson` body with them as query parameters. `columns` maps roles (adresse, vej, husnr, postnr, by, x, y, bfe, adgangsadresse_id) to your column names; left out, they are detected from the names. Rows are worked in the background in modest chunks. Every uploaded row is counted against the quota at upload and handed back if it does not succeed: ONLY successful rows are billed. `start: false` makes a draft to fill with POST /v1/jobs/{id}/rows and start with POST /v1/jobs/{id}/start. A `job.completed` webhook fires when the last row is done. Rows per job follow the plan: 250 on Free, 10000 on Starter, 100000 on Pro, 500000 on Scale, 1000000 on Enterprise (402 over). One upload is at most 10 MB; upload a longer list in parts.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobInput"}},"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"CSV, NDJSON or a JSON array"},"kind":{"type":"string","enum":["datavask","reverse","bbr","dagi","miljoe"]},"columns":{"type":"string","description":"JSON object: role → column name"},"srid":{"type":"integer","enum":[4326,25832]},"label":{"type":"string"},"start":{"type":"boolean"}},"required":["file","kind"]}},"text/csv":{"schema":{"type":"string"}},"application/x-ndjson":{"schema":{"type":"string"}}}},"responses":{"201":{"description":"Job created (queued, or a draft)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}},"get":{"operationId":"getJobs","summary":"List the caller’s jobs (newest first, last 100)","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobList"}}}},"401":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}":{"get":{"operationId":"getJobsById","summary":"Job status and progress","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/rows":{"post":{"operationId":"postJobsByIdRows","summary":"Append rows to a draft job (a list uploaded in parts)","description":"Same bodies as POST /v1/jobs, rows only (`{ rows }`, a file, or a CSV/NDJSON body). Only a draft (`start: false`) takes rows; 409 otherwise. Rows per job follow the plan: 250 on Free, 10000 on Starter, 100000 on Pro, 500000 on Scale, 1000000 on Enterprise (402 over). One upload is at most 10 MB; upload a longer list in parts.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppendJobRowsInput"}},"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"CSV, NDJSON or a JSON array"},"kind":{"type":"string","enum":["datavask","reverse","bbr","dagi","miljoe"]},"columns":{"type":"string","description":"JSON object: role → column name"},"srid":{"type":"integer","enum":[4326,25832]},"label":{"type":"string"},"start":{"type":"boolean"}},"required":["file","kind"]}},"text/csv":{"schema":{"type":"string"}},"application/x-ndjson":{"schema":{"type":"string"}}}},"responses":{"200":{"description":"Rows appended","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"413":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/start":{"post":{"operationId":"postJobsByIdStart","summary":"Start a draft job","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/pause":{"post":{"operationId":"postJobsByIdPause","summary":"Pause a queued or running job (the chunk in flight still lands)","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/resume":{"post":{"operationId":"postJobsByIdResume","summary":"Resume a paused job from where it stopped","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/cancel":{"post":{"operationId":"postJobsByIdCancel","summary":"Cancel a job: answered rows stay downloadable and billed, the rest are never processed","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/results":{"get":{"operationId":"getJobsByIdResults","summary":"Download the answered rows (CSV or NDJSON)","description":"CSV: your own columns first, then ours prefixed `gf_`. NDJSON: `{ raekke, input, resultat }` per line. Served while the job runs too — what has landed so far. 410 once the rows are deleted after the retention period.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["csv","ndjson"],"default":"csv"}},{"name":"separator","in":"query","required":false,"description":"CSV only. `semicolon` opens directly in a Danish Excel.","schema":{"type":"string","enum":["comma","semicolon"],"default":"comma"}}],"responses":{"200":{"description":"The file, streamed","content":{"text/csv":{"schema":{"type":"string"}},"application/x-ndjson":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"410":{"$ref":"#/components/responses/Error"}}}},"/v1/jobs/{id}/errors":{"get":{"operationId":"getJobsByIdErrors","summary":"Download the rows that could not be answered (CSV or NDJSON)","description":"CSV: your own columns, then `gf_raekke`, `gf_fejl`, `gf_status`. NDJSON: `{ raekke, input, fejl, status }` per line. Error rows are never billed.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["csv","ndjson"],"default":"csv"}},{"name":"separator","in":"query","required":false,"description":"CSV only. `semicolon` opens directly in a Danish Excel.","schema":{"type":"string","enum":["comma","semicolon"],"default":"comma"}}],"responses":{"200":{"description":"The file, streamed","content":{"text/csv":{"schema":{"type":"string"}},"application/x-ndjson":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"410":{"$ref":"#/components/responses/Error"}}}},"/v1/me/webhooks":{"get":{"operationId":"getMeWebhooks","summary":"List own webhook endpoints (session, or a key with the `webhooks` scope)","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"responses":{"200":{"description":"OK"}}},"post":{"operationId":"postMeWebhooks","summary":"Register a webhook endpoint (the signing secret is returned ONCE)","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"adresseFilter":{"type":"object","description":"Required when `events` includes an adresse.* event: the scope (any listed kommune, postnummer or adgangsadresse id) of the address changes delivered to this endpoint.","properties":{"kommunekoder":{"type":"array","items":{"type":"string"},"maxItems":10},"postnumre":{"type":"array","items":{"type":"string"},"maxItems":50},"adgangsadresseIds":{"type":"array","items":{"type":"string"},"maxItems":1000}}},"cvrFilter":{"type":"object","description":"Required when `events` includes a cvr.* event: the scope of the company changes delivered to this endpoint — any listed CVR-nummer, or a company whose registered address is (or was, before a move) in a listed kommune.","properties":{"cvrNumre":{"type":"array","items":{"type":"integer"},"maxItems":10000},"kommunekoder":{"type":"array","items":{"type":"string"},"maxItems":10}}}},"required":["url","events"]}}}},"responses":{"201":{"description":"Created"},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"}}}},"/v1/me/webhooks/{id}":{"patch":{"operationId":"patchMeWebhooksById","summary":"Update a webhook endpoint (url / events / description / enabled)","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteMeWebhooksById","summary":"Delete a webhook endpoint","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/me/webhooks/{id}/deliveries":{"get":{"operationId":"getMeWebhooksByIdDeliveries","summary":"Recent delivery attempts for an endpoint (audit log)","security":[{"cookieAuth":[]},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/v1/me/webhooks/{id}/test":{"post":{"operationId":"postMeWebhooksByIdTest","summary":"Send a one-off signed test ping; returns the live outcome","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/overvaagning/ejendomme":{"get":{"operationId":"getOvervaagningEjendomme","summary":"List the properties on your watchlist with each register’s last-checked state","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"side","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"antal","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}}],"responses":{"200":{"description":"The watchlist page","content":{"application/json":{"schema":{"type":"object","properties":{"antal":{"type":"integer"},"maks":{"type":"integer"},"side":{"type":"integer"},"sider":{"type":"integer"},"ejendomme":{"type":"array","items":{"type":"object","properties":{"bfe_nummer":{"type":"integer"},"note":{"type":["string","null"]},"oprettet":{"type":"string","format":"date-time"},"sidst_kontrolleret":{"type":["string","null"],"format":"date-time"},"naeste_kontrol":{"type":"string","format":"date-time"},"sidst_aendret":{"type":["string","null"],"format":"date-time"},"registre":{"type":"object","properties":{"bbr":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}},"vurdering":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}},"plan":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}},"jord":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}}}}}}}}}}}},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"}}},"post":{"operationId":"postOvervaagningEjendomme","summary":"Add up to 100 BFE numbers to your watchlist","description":"Each watched property is re-read about once a day from BBR, ejendomsvurdering, plandata and områdeklassificering; a change in any of them fires an `ejendom.aendret` webhook with the changed registers and a before/after summary. The first check is a silent baseline. The watchlist is capped per plan.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bfe":{"type":"array","items":{"type":"integer","minimum":1},"minItems":1,"maxItems":100},"note":{"type":"string","maxLength":200}},"required":["bfe"]}}}},"responses":{"201":{"description":"Added (already-watched BFEs are reported, not duplicated)"},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"}}}},"/v1/overvaagning/ejendomme/{bfe}":{"get":{"operationId":"getOvervaagningEjendommeByBfe","summary":"One watched property with its per-register state","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"bfe","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"BFE number of a property on your watchlist"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"bfe_nummer":{"type":"integer"},"note":{"type":["string","null"]},"oprettet":{"type":"string","format":"date-time"},"sidst_kontrolleret":{"type":["string","null"],"format":"date-time"},"naeste_kontrol":{"type":"string","format":"date-time"},"sidst_aendret":{"type":["string","null"],"format":"date-time"},"registre":{"type":"object","properties":{"bbr":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}},"vurdering":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}},"plan":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}},"jord":{"type":"object","properties":{"status":{"type":"string","enum":["ok","mangler","fejl","ikke_tilgaengelig"]},"hash":{"type":["string","null"]},"opsummering":{"type":["object","null"]},"kontrolleret":{"type":["string","null"],"format":"date-time"},"aendret":{"type":["string","null"],"format":"date-time"}}}}}}}}}},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}},"delete":{"operationId":"deleteOvervaagningEjendommeByBfe","summary":"Stop watching a property","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"bfe","in":"path","required":true,"schema":{"type":"integer","minimum":1},"description":"BFE number of a property on your watchlist"}],"responses":{"200":{"description":"Removed"},"402":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/aendringer":{"get":{"operationId":"getAendringer","summary":"Adresse- og bygningsændringer i en kommune eller et postnummer","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Aendringer"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}},"description":"Ét ændringsfeed for adresser (DAR) og bygninger (BBR), ældste først. Giv mindst én kommunekode eller ét postnr (kommaseparerede lister er tilladt) og sid med cursor = forrige svars naeste_cursor; siden (dato eller tidspunkt) dropper ændringer, Grundfast registrerede før. De to halvdele har forskellig dækning, og meta.daekning siger hvilken: adresser kommer fra DARs daglige ændringsudtræk (typisk et døgn bagud, gemmes 35 dage); bygninger findes ved at sammenligne to udgaver af vores nationale bygningsindeks, så en bygningsændring dukker først op, når den næste udgave er indlæst (se meta.daekning.bygning.seneste_snapshot), og kun de felter indekset rummer sammenlignes. bygning.tilkommet betyder \"nu registreret som opført\", bygning.udgaaet \"ikke længere registreret som opført\" — nedrevet, eller registreringen er rettet. Et tomt svar betyder kun \"ingen ændringer\" inden for det vindue meta.daekning beskriver — og for adresserne kun når meta.daekning.adresse.huller er tom: et DAR-udtræk, der blev indlæst uden at dets ændringer blev logget, står der, og de adresseændringer mangler i feedet. Kræver Pro eller derover (samme plan-feature som ejendomsovervågning, 402 under den) og måles ikke.","parameters":[{"name":"kommunekode","in":"query","description":"Kommunekode(r), kommasepareret (højst 10).","schema":{"type":"string"}},{"name":"postnr","in":"query","description":"Postnummer/-numre, kommasepareret (højst 50).","schema":{"type":"string"}},{"name":"type","in":"query","description":"\"adresse\", \"bygning\" eller begge (kommasepareret). Standard: begge.","schema":{"type":"string"}},{"name":"siden","in":"query","description":"Kun ændringer registreret fra dette tidspunkt (ISO 8601-dato eller -tidspunkt).","schema":{"type":"string"}},{"name":"cursor","in":"query","description":"naeste_cursor fra forrige svar. Udelad for at starte forfra.","schema":{"type":"string"}},{"name":"antal","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}]}},"/v1/overvaagning/adresser/haendelser":{"get":{"operationId":"getOvervaagningAdresserHaendelser","summary":"Address changes (created / changed / retired) in a kommune, postnummer or id list","description":"The change feed behind the `adresse.*` webhooks: adgangsadresser the daily DAR delta created, changed or retired, in `sekvens` order. Give at least one of `kommunekode`, `postnr` or `adgangsadresse_id` (comma-separated lists allowed); page with `efter` = the previous response’s `naeste_efter`. Changes are kept for 35 days. An empty page means \"no changes\" only for the window `meta.feed` reports: from `daekket_fra` (the oldest change the feed holds — earlier changes were never logged or are past retention) up to `senest_opdateret` (the last successful daily DAR update), and only while `meta.feed.forsinket` is false — and never for a DAR delta listed in `meta.feed.huller` (applied to the index but not logged).","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"kommunekode","in":"query","schema":{"type":"string"}},{"name":"postnr","in":"query","schema":{"type":"string"}},{"name":"adgangsadresse_id","in":"query","schema":{"type":"string"}},{"name":"haendelse","in":"query","schema":{"type":"string","enum":["adresse.oprettet","adresse.aendret","adresse.nedlagt"]}},{"name":"efter","in":"query","schema":{"type":"integer","minimum":0,"default":0}},{"name":"antal","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"One page of changes","content":{"application/json":{"schema":{"type":"object","properties":{"antal":{"type":"integer"},"naeste_efter":{"type":"integer"},"flere":{"type":"boolean"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"feed":{"type":"object","description":"What window this answer covers, and whether the daily DAR update is current.","properties":{"daekket_fra":{"type":["string","null"],"format":"date-time","description":"Registration time of the oldest change the feed still holds; changes before it are not in the feed. null when it holds none yet."},"senest_opdateret":{"type":["string","null"],"format":"date-time","description":"Last successful daily DAR update run (whether or not it found a new delta)."},"seneste_udtraek":{"type":["string","null"],"description":"Newest DAR delta applied (`DAR_<yyyymmddhhmmss>`)."},"opbevaring_dage":{"type":"integer","description":"Days a change stays readable."},"forsinket":{"type":"boolean","description":"True when the daily update has not succeeded for over 48 hours (or never), or when the newest applied DAR delta was not logged (see `huller`): the feed is behind, and an empty page says nothing about recent days."},"huller":{"type":"array","description":"DAR deltas (within retention) applied to the address index whose changes were NOT logged — not in this feed and never sent as webhooks. Empty when the log is whole.","items":{"type":"object","properties":{"udtraek":{"type":"string","description":"The DAR delta (`DAR_<yyyymmddhhmmss>`)."},"anvendt":{"type":"string","format":"date-time","description":"When it was applied to the address index."}},"required":["udtraek","anvendt"]}}}}}},"haendelser":{"type":"array","items":{"type":"object","properties":{"sekvens":{"type":"integer"},"haendelse":{"type":"string"},"adgangsadresse_id":{"type":"string"},"betegnelse":{"type":"string"},"kommunekode":{"type":["string","null"]},"postnr":{"type":["string","null"]},"status":{"type":["string","null"]},"aendrede_felter":{"type":"array","items":{"type":"string"}},"foer":{"type":["object","null"]},"efter":{"type":["object","null"]},"dar_udtraek":{"type":"string"},"registreret":{"type":"string","format":"date-time"}}}}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"}}}},"/v1/overvaagning/cvr/haendelser":{"get":{"operationId":"getOvervaagningCvrHaendelser","summary":"Company changes (registered / changed / ceased) for a CVR-nummer list or a kommune","description":"The change feed behind the `cvr.*` webhooks: companies the weekly CVR harvest found registered (`cvr.oprettet`), changed on a served field (`cvr.aendret`: navn, status, ophoersdato, virksomhedsform, adresse, kommunekode, kommune, branche) or ceased (`cvr.ophoert`: status ophørt / tvangsopløst, or an ophørsdato appearing), in `sekvens` order. Give at least one of `cvr_nummer` or `kommunekode` (comma-separated lists allowed; a kommune also matches companies that moved out of it). Page with `efter` = the previous response’s `naeste_efter`. The corpus is reloaded weekly, so a change appears up to about a week after CVR registered it; changes are kept for 35 days. An empty page means \"no changes\" only up to `meta.feed.senest_opdateret`, and only while `meta.feed.forsinket` is false.","security":[{"bearerAuth":[]},{"cookieAuth":[]}],"parameters":[{"name":"cvr_nummer","in":"query","schema":{"type":"string"}},{"name":"kommunekode","in":"query","schema":{"type":"string"}},{"name":"haendelse","in":"query","schema":{"type":"string","enum":["cvr.oprettet","cvr.aendret","cvr.ophoert"]}},{"name":"efter","in":"query","schema":{"type":"integer","minimum":0,"default":0}},{"name":"antal","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"One page of changes","content":{"application/json":{"schema":{"type":"object","properties":{"antal":{"type":"integer"},"naeste_efter":{"type":"integer"},"flere":{"type":"boolean"},"meta":{"type":"object","properties":{"kilde":{"type":"string"},"grundfast_version":{"type":"string"},"feed":{"type":"object","description":"What window this answer covers, and whether the weekly CVR harvest is current.","properties":{"daekket_fra":{"type":["string","null"],"format":"date-time","description":"Registration time of the oldest change the feed still holds. null when it holds none yet."},"senest_opdateret":{"type":["string","null"],"format":"date-time","description":"Last successful weekly CVR harvest (whether or not it found changes)."},"seneste_udtraek":{"type":["string","null"],"description":"Newest CVR extract compared (`CVR_<yyyymmdd>`)."},"opdateringsinterval_dage":{"type":"integer","description":"Days between harvests."},"opbevaring_dage":{"type":"integer","description":"Days a change stays readable."},"forsinket":{"type":"boolean","description":"True when the weekly harvest has not succeeded for over 9 days (or never)."}}}}},"haendelser":{"type":"array","items":{"type":"object","properties":{"sekvens":{"type":"integer"},"haendelse":{"type":"string","enum":["cvr.oprettet","cvr.aendret","cvr.ophoert"]},"cvr_nummer":{"type":"integer"},"navn":{"type":"string"},"kommunekode":{"type":["string","null"]},"status":{"type":["string","null"]},"aendrede_felter":{"type":"array","items":{"type":"string"}},"foer":{"type":["object","null"]},"efter":{"type":"object"},"cvr_udtraek":{"type":"string"},"registreret":{"type":"string","format":"date-time"}}}}}}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"402":{"$ref":"#/components/responses/Error"}}}},"/v1/me/tickets":{"get":{"operationId":"getMeTickets","summary":"List own support tickets","security":[{"cookieAuth":[]}],"responses":{"200":{"description":"OK"}}},"post":{"operationId":"postMeTickets","summary":"Open a support ticket","security":[{"cookieAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","maxLength":200},"body":{"type":"string","maxLength":20000},"category":{"type":"string","enum":["support","migrering","enterprise","sikkerhed","andet"]}},"required":["subject","body"]}}}},"responses":{"201":{"description":"Created"},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"}}}},"/v1/me/tickets/{id}":{"get":{"operationId":"getMeTicketsById","summary":"One own ticket with its thread (internal staff notes excluded)","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/me/tickets/{id}/messages":{"post":{"operationId":"postMeTicketsByIdMessages","summary":"Reply on own ticket","security":[{"cookieAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","maxLength":20000}},"required":["body"]}}}},"responses":{"200":{"description":"OK"},"400":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/v1/support/tickets":{"post":{"operationId":"postSupportTickets","summary":"Open a support ticket without an account (the public contact form)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"email":{"type":"string","format":"email"},"subject":{"type":"string","maxLength":200},"body":{"type":"string","maxLength":20000},"category":{"type":"string","enum":["support","migrering","enterprise","sikkerhed","andet"]}},"required":["name","email","subject","body"]}}}},"responses":{"201":{"description":"Created — returns the ticket id and subject only"},"400":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/adgangsadresser":{"get":{"operationId":"getDawaAdgangsadresser","tags":["DAWA-kompatibel"],"summary":"DAWA adgangsadresser (list)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Free text over the address line (prefix, then typo-tolerant).","schema":{"type":"string"}},{"name":"id","in":"query","required":false,"description":"Adgangsadresse UUID. Several values separated by `|`.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"vejkode","in":"query","required":false,"description":"Vejkode (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"vejnavn","in":"query","required":false,"description":"Exact street name. Several values separated by `|`.","schema":{"type":"string"}},{"name":"husnr","in":"query","required":false,"description":"House number incl. letter. Several values separated by `|`.","schema":{"type":"string"}},{"name":"supplerendebynavn","in":"query","required":false,"description":"Supplerende bynavn. Several values separated by `|`.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer (4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"sognekode","in":"query","required":false,"description":"Sognekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"opstillingskredskode","in":"query","required":false,"description":"Opstillingskredskode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"retskredskode","in":"query","required":false,"description":"Retskredskode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"politikredskode","in":"query","required":false,"description":"Politikredskode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"afstemningsområdenummer","in":"query","required":false,"description":"Afstemningsområde number within the kommune. Several values separated by `|`.","schema":{"type":"string"}},{"name":"navngivenvej_id","in":"query","required":false,"description":"NavngivenVej UUID. Several values separated by `|`.","schema":{"type":"string"}},{"name":"ejerlavkode","in":"query","required":false,"description":"Ejerlavkode of the jordstykke the address lies on.","schema":{"type":"integer"}},{"name":"matrikelnr","in":"query","required":false,"description":"Matrikelnummer (with ejerlavkode).","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"DAWA status: 1 gældende, 2 nedlagt, 3 foreløbig, 4 henlagt. Default 1 and 3. Several values separated by `|`.","schema":{"type":"string"}},{"name":"darstatus","in":"query","required":false,"description":"DAR status: 2 foreløbig, 3 gældende, 4 nedlagt, 5 henlagt. Several values separated by `|`.","schema":{"type":"string"}},{"name":"cirkel","in":"query","required":false,"description":"`x,y,radius` (radius in metres, at most 10 km).","schema":{"type":"string"}},{"name":"polygon","in":"query","required":false,"description":"GeoJSON-style ring array `[[[x,y],…]]` in the given srid.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/adgangsadresser/autocomplete":{"get":{"operationId":"getDawaAdgangsadresserAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA adgangsadresser type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer. Several values separated by `|`.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/adgangsadresser/reverse":{"get":{"operationId":"getDawaAdgangsadresserReverse","tags":["DAWA-kompatibel"],"summary":"DAWA nearest adgangsadresse to a point","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/adgangsadresser/{id}":{"get":{"operationId":"getDawaAdgangsadresserById","tags":["DAWA-kompatibel"],"summary":"DAWA adgangsadresse by id","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Adgangsadresse (DAR Husnummer) UUID.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/adresser":{"get":{"operationId":"getDawaAdresser","tags":["DAWA-kompatibel"],"summary":"DAWA adresser (list, with etage/dør)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Free text over the address line (prefix, then typo-tolerant).","schema":{"type":"string"}},{"name":"id","in":"query","required":false,"description":"Adgangsadresse UUID. Several values separated by `|`.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"vejkode","in":"query","required":false,"description":"Vejkode (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"vejnavn","in":"query","required":false,"description":"Exact street name. Several values separated by `|`.","schema":{"type":"string"}},{"name":"husnr","in":"query","required":false,"description":"House number incl. letter. Several values separated by `|`.","schema":{"type":"string"}},{"name":"supplerendebynavn","in":"query","required":false,"description":"Supplerende bynavn. Several values separated by `|`.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer (4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"sognekode","in":"query","required":false,"description":"Sognekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"opstillingskredskode","in":"query","required":false,"description":"Opstillingskredskode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"retskredskode","in":"query","required":false,"description":"Retskredskode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"politikredskode","in":"query","required":false,"description":"Politikredskode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"afstemningsområdenummer","in":"query","required":false,"description":"Afstemningsområde number within the kommune. Several values separated by `|`.","schema":{"type":"string"}},{"name":"navngivenvej_id","in":"query","required":false,"description":"NavngivenVej UUID. Several values separated by `|`.","schema":{"type":"string"}},{"name":"ejerlavkode","in":"query","required":false,"description":"Ejerlavkode of the jordstykke the address lies on.","schema":{"type":"integer"}},{"name":"matrikelnr","in":"query","required":false,"description":"Matrikelnummer (with ejerlavkode).","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"DAWA status: 1 gældende, 2 nedlagt, 3 foreløbig, 4 henlagt. Default 1 and 3. Several values separated by `|`.","schema":{"type":"string"}},{"name":"darstatus","in":"query","required":false,"description":"DAR status: 2 foreløbig, 3 gældende, 4 nedlagt, 5 henlagt. Several values separated by `|`.","schema":{"type":"string"}},{"name":"cirkel","in":"query","required":false,"description":"`x,y,radius` (radius in metres, at most 10 km).","schema":{"type":"string"}},{"name":"polygon","in":"query","required":false,"description":"GeoJSON-style ring array `[[[x,y],…]]` in the given srid.","schema":{"type":"string"}},{"name":"adgangsadresseid","in":"query","required":false,"description":"Parent adgangsadresse UUID. Several values separated by `|`.","schema":{"type":"string"}},{"name":"etage","in":"query","required":false,"description":"Etage (st, kl, 1, 2, …). Several values separated by `|`.","schema":{"type":"string"}},{"name":"dør","in":"query","required":false,"description":"Dør (th, tv, mf, …). Several values separated by `|`.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/adresser/autocomplete":{"get":{"operationId":"getDawaAdresserAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA adresser type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"adgangsadresseid","in":"query","required":false,"description":"List the units of this adgangsadresse.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/adresser/{id}":{"get":{"operationId":"getDawaAdresserById","tags":["DAWA-kompatibel"],"summary":"DAWA adresse by id","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Adresse (unit) UUID.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/autocomplete":{"get":{"operationId":"getDawaAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA combined type-ahead: vejnavn → adgangsadresse → adresse","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]},{"publicKey":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"caretpos","in":"query","required":false,"description":"Caret position in q.","schema":{"type":"integer"}},{"name":"type","in":"query","required":false,"description":"Last stage: vejnavn, adgangsadresse or adresse (default).","schema":{"type":"string"}},{"name":"startfra","in":"query","required":false,"description":"First stage: vejnavn (default), adgangsadresse or adresse.","schema":{"type":"string"}},{"name":"fuzzy","in":"query","required":false,"description":"Accepted; search is always typo-tolerant.","schema":{"type":"string"}},{"name":"id","in":"query","required":false,"description":"Resolve this id directly.","schema":{"type":"string"}},{"name":"adgangsadresseid","in":"query","required":false,"description":"Go straight to the units of this adgangsadresse.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer. Several values separated by `|`.","schema":{"type":"string"}},{"name":"supplerendebynavn","in":"query","required":false,"description":"Include the supplerende bynavn in the text (default true).","schema":{"type":"string"}},{"name":"multilinje","in":"query","required":false,"description":"Line breaks in forslagstekst (default false).","schema":{"type":"string"}},{"name":"stormodtagerpostnumre","in":"query","required":false,"description":"Accepted; has no effect.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/datavask/adgangsadresser":{"get":{"operationId":"getDawaDatavaskAdgangsadresser","tags":["DAWA-kompatibel"],"summary":"DAWA datavask of an address line (adgangsadresser)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"betegnelse","in":"query","required":false,"description":"The address line to wash (at most 100 characters).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/datavask/adresser":{"get":{"operationId":"getDawaDatavaskAdresser","tags":["DAWA-kompatibel"],"summary":"DAWA datavask of an address line (adresser)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"betegnelse","in":"query","required":false,"description":"The address line to wash (at most 100 characters).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/postnumre":{"get":{"operationId":"getDawaPostnumre","tags":["DAWA-kompatibel"],"summary":"DAWA postnumre","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"nr","in":"query","required":false,"description":"Postnummer. Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"stormodtagere","in":"query","required":false,"description":"Include the historical stormodtager numbers.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in nr or name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/postnumre/autocomplete":{"get":{"operationId":"getDawaPostnumreAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA postnumre type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/postnumre/reverse":{"get":{"operationId":"getDawaPostnumreReverse","tags":["DAWA-kompatibel"],"summary":"DAWA postnummer at a point (DAGI)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/postnumre/{nr}":{"get":{"operationId":"getDawaPostnumreByNr","tags":["DAWA-kompatibel"],"summary":"DAWA postnummer","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"nr","in":"path","required":true,"description":"4-digit postnummer.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/vejnavne":{"get":{"operationId":"getDawaVejnavne","tags":["DAWA-kompatibel"],"summary":"DAWA vejnavne","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer. Several values separated by `|`.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/vejnavne/autocomplete":{"get":{"operationId":"getDawaVejnavneAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA vejnavne type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/vejnavne/{navn}":{"get":{"operationId":"getDawaVejnavneByNavn","tags":["DAWA-kompatibel"],"summary":"DAWA vejnavn","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"navn","in":"path","required":true,"description":"Street name.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/vejstykker":{"get":{"operationId":"getDawaVejstykker","tags":["DAWA-kompatibel"],"summary":"DAWA vejstykker","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"kode","in":"query","required":false,"description":"Vejkode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Name prefix.","schema":{"type":"string"}},{"name":"navngivenvej_id","in":"query","required":false,"description":"NavngivenVej UUID. Several values separated by `|`.","schema":{"type":"string"}},{"name":"postnr","in":"query","required":false,"description":"Postnummer.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/vejstykker/autocomplete":{"get":{"operationId":"getDawaVejstykkerAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA vejstykker type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/vejstykker/{kommunekode}/{kode}":{"get":{"operationId":"getDawaVejstykkerByKommunekodeByKode","tags":["DAWA-kompatibel"],"summary":"DAWA vejstykke","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kommunekode","in":"path","required":true,"description":"Kommunekode.","schema":{"type":"string"}},{"name":"kode","in":"path","required":true,"description":"Vejkode.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/kommuner":{"get":{"operationId":"getDawaKommuner","tags":["DAWA-kompatibel"],"summary":"DAWA kommuner","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"query","required":false,"description":"Code (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"regionskode","in":"query","required":false,"description":"Regionskode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/kommuner/autocomplete":{"get":{"operationId":"getDawaKommunerAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA kommuner type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/kommuner/reverse":{"get":{"operationId":"getDawaKommunerReverse","tags":["DAWA-kompatibel"],"summary":"DAWA kommune at a point (DAGI)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/kommuner/{kode}":{"get":{"operationId":"getDawaKommunerByKode","tags":["DAWA-kompatibel"],"summary":"DAWA kommune","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"path","required":true,"description":"Kommunekode.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/storkredse":{"get":{"operationId":"getDawaStorkredse","tags":["DAWA-kompatibel"],"summary":"DAWA storkredse","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"nummer","in":"query","required":false,"description":"Storkreds number. Several values separated by `|`.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/storkredse/{nummer}":{"get":{"operationId":"getDawaStorkredseByNummer","tags":["DAWA-kompatibel"],"summary":"DAWA storkreds","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"nummer","in":"path","required":true,"description":"Storkreds number.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/valglandsdele":{"get":{"operationId":"getDawaValglandsdele","tags":["DAWA-kompatibel"],"summary":"DAWA valglandsdele","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/valglandsdele/{bogstav}":{"get":{"operationId":"getDawaValglandsdeleByBogstav","tags":["DAWA-kompatibel"],"summary":"DAWA valglandsdel","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"bogstav","in":"path","required":true,"description":"A, B or C.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/ejerlav":{"get":{"operationId":"getDawaEjerlav","tags":["DAWA-kompatibel"],"summary":"DAWA ejerlav","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"query","required":false,"description":"Ejerlavkode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/ejerlav/autocomplete":{"get":{"operationId":"getDawaEjerlavAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA ejerlav type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/ejerlav/{kode}":{"get":{"operationId":"getDawaEjerlavByKode","tags":["DAWA-kompatibel"],"summary":"DAWA ejerlav","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"path","required":true,"description":"Ejerlavkode.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/jordstykker":{"get":{"operationId":"getDawaJordstykker","tags":["DAWA-kompatibel"],"summary":"DAWA jordstykker (needs ejerlavkode, kommunekode or bfenummer)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"ejerlavkode","in":"query","required":false,"description":"Ejerlavkode.","schema":{"type":"integer"}},{"name":"matrikelnr","in":"query","required":false,"description":"Matrikelnummer.","schema":{"type":"string"}},{"name":"kommunekode","in":"query","required":false,"description":"Kommunekode. Several values separated by `|`.","schema":{"type":"string"}},{"name":"bfenummer","in":"query","required":false,"description":"BFE number. Several values separated by `|`.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/jordstykker/reverse":{"get":{"operationId":"getDawaJordstykkerReverse","tags":["DAWA-kompatibel"],"summary":"DAWA jordstykke at a point","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/jordstykker/{ejerlavkode}/{matrikelnr}":{"get":{"operationId":"getDawaJordstykkerByEjerlavkodeByMatrikelnr","tags":["DAWA-kompatibel"],"summary":"DAWA jordstykke","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"ejerlavkode","in":"path","required":true,"description":"Ejerlavkode.","schema":{"type":"string"}},{"name":"matrikelnr","in":"path","required":true,"description":"Matrikelnummer.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/senestesekvensnummer":{"get":{"operationId":"getDawaReplikeringSenestesekvensnummer","tags":["DAWA-kompatibel"],"summary":"DAWA replication: the newest sekvensnummer of the address change log","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/adgangsadresser/haendelser":{"get":{"operationId":"getDawaReplikeringAdgangsadresserHaendelser","tags":["DAWA-kompatibel"],"summary":"DAWA replication: adgangsadresse events (from the 35-day address change log)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"sekvensnummerfra","in":"query","required":false,"description":"From sekvensnummer (inclusive).","schema":{"type":"integer"}},{"name":"sekvensnummertil","in":"query","required":false,"description":"To sekvensnummer (inclusive).","schema":{"type":"integer"}},{"name":"tidspunktfra","in":"query","required":false,"description":"From instant (ISO 8601).","schema":{"type":"string"}},{"name":"tidspunkttil","in":"query","required":false,"description":"To instant (ISO 8601).","schema":{"type":"string"}},{"name":"id","in":"query","required":false,"description":"Only events of this adgangsadresse.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/haendelser":{"get":{"operationId":"getDawaReplikeringHaendelser","tags":["DAWA-kompatibel"],"summary":"DAWA replication: events by entitet (adgangsadresse only; others 404)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"entitet","in":"query","required":false,"description":"adgangsadresse.","schema":{"type":"string"}},{"name":"sekvensnummerfra","in":"query","required":false,"description":"From sekvensnummer.","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/udtraek":{"get":{"operationId":"getDawaReplikeringUdtraek","tags":["DAWA-kompatibel"],"summary":"DAWA replication: current set by entitet","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"entitet","in":"query","required":false,"description":"adgangsadresse, adresse, vejstykke or postnummer.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/adgangsadresser":{"get":{"operationId":"getDawaReplikeringAdgangsadresser","tags":["DAWA-kompatibel"],"summary":"DAWA replication: current adgangsadresser (udtræk)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/adresser":{"get":{"operationId":"getDawaReplikeringAdresser","tags":["DAWA-kompatibel"],"summary":"DAWA replication: current adresser (udtræk)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/adresser/haendelser":{"get":{"operationId":"getDawaReplikeringAdresserHaendelser","tags":["DAWA-kompatibel"],"summary":"DAWA replication: adresser events — not kept (404)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/vejstykker":{"get":{"operationId":"getDawaReplikeringVejstykker","tags":["DAWA-kompatibel"],"summary":"DAWA replication: current vejstykker (udtræk)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/vejstykker/haendelser":{"get":{"operationId":"getDawaReplikeringVejstykkerHaendelser","tags":["DAWA-kompatibel"],"summary":"DAWA replication: vejstykker events — not kept (404)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/postnumre":{"get":{"operationId":"getDawaReplikeringPostnumre","tags":["DAWA-kompatibel"],"summary":"DAWA replication: current postnumre (udtræk)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/replikering/postnumre/haendelser":{"get":{"operationId":"getDawaReplikeringPostnumreHaendelser","tags":["DAWA-kompatibel"],"summary":"DAWA replication: postnumre events — not kept (404)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/regioner":{"get":{"operationId":"getDawaRegioner","tags":["DAWA-kompatibel"],"summary":"DAWA regioner","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"query","required":false,"description":"Code (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/regioner/autocomplete":{"get":{"operationId":"getDawaRegionerAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA regioner type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/regioner/reverse":{"get":{"operationId":"getDawaRegionerReverse","tags":["DAWA-kompatibel"],"summary":"DAWA region at a point (DAGI)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/regioner/{kode}":{"get":{"operationId":"getDawaRegionerByKode","tags":["DAWA-kompatibel"],"summary":"DAWA region","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"path","required":true,"description":"Code (1–4 digits).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/sogne":{"get":{"operationId":"getDawaSogne","tags":["DAWA-kompatibel"],"summary":"DAWA sogne","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"query","required":false,"description":"Code (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/sogne/autocomplete":{"get":{"operationId":"getDawaSogneAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA sogne type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/sogne/reverse":{"get":{"operationId":"getDawaSogneReverse","tags":["DAWA-kompatibel"],"summary":"DAWA sogn at a point (DAGI)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/sogne/{kode}":{"get":{"operationId":"getDawaSogneByKode","tags":["DAWA-kompatibel"],"summary":"DAWA sogn","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"path","required":true,"description":"Code (1–4 digits).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/politikredse":{"get":{"operationId":"getDawaPolitikredse","tags":["DAWA-kompatibel"],"summary":"DAWA politikredse","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"query","required":false,"description":"Code (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/politikredse/autocomplete":{"get":{"operationId":"getDawaPolitikredseAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA politikredse type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/politikredse/reverse":{"get":{"operationId":"getDawaPolitikredseReverse","tags":["DAWA-kompatibel"],"summary":"DAWA politikreds at a point (DAGI)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/politikredse/{kode}":{"get":{"operationId":"getDawaPolitikredseByKode","tags":["DAWA-kompatibel"],"summary":"DAWA politikreds","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"path","required":true,"description":"Code (1–4 digits).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/retskredse":{"get":{"operationId":"getDawaRetskredse","tags":["DAWA-kompatibel"],"summary":"DAWA retskredse","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"query","required":false,"description":"Code (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/retskredse/autocomplete":{"get":{"operationId":"getDawaRetskredseAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA retskredse type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/retskredse/reverse":{"get":{"operationId":"getDawaRetskredseReverse","tags":["DAWA-kompatibel"],"summary":"DAWA retskreds at a point (DAGI)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/retskredse/{kode}":{"get":{"operationId":"getDawaRetskredseByKode","tags":["DAWA-kompatibel"],"summary":"DAWA retskreds","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"path","required":true,"description":"Code (1–4 digits).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/opstillingskredse":{"get":{"operationId":"getDawaOpstillingskredse","tags":["DAWA-kompatibel"],"summary":"DAWA opstillingskredse","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"query","required":false,"description":"Code (1–4 digits). Several values separated by `|`.","schema":{"type":"string"}},{"name":"navn","in":"query","required":false,"description":"Exact name.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Text in the name.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Page size, at most 1000. Without it a list answers at most 10,000 rows (400 beyond).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"name":"side","in":"query","required":false,"description":"Page number (from 1). Paging past the first 25,000 rows is refused.","schema":{"type":"integer","minimum":1}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/opstillingskredse/autocomplete":{"get":{"operationId":"getDawaOpstillingskredseAutocomplete","tags":["DAWA-kompatibel"],"summary":"DAWA opstillingskredse type-ahead","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search text.","schema":{"type":"string"}},{"name":"per_side","in":"query","required":false,"description":"Number of suggestions (default 20, at most 100).","schema":{"type":"integer"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/dawa/opstillingskredse/reverse":{"get":{"operationId":"getDawaOpstillingskredseReverse","tags":["DAWA-kompatibel"],"summary":"DAWA opstillingskreds at a point (DAGI)","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"x","in":"query","required":false,"description":"Longitude (srid 4326) or easting (srid 25832).","schema":{"type":"number"}},{"name":"y","in":"query","required":false,"description":"Latitude (srid 4326) or northing (srid 25832).","schema":{"type":"number"}},{"name":"lon","in":"query","required":false,"description":"WGS84 longitude (alternative to x).","schema":{"type":"number"}},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude (alternative to y).","schema":{"type":"number"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"502":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/dawa/opstillingskredse/{kode}":{"get":{"operationId":"getDawaOpstillingskredseByKode","tags":["DAWA-kompatibel"],"summary":"DAWA opstillingskreds","description":"The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","security":[{"bearerAuth":[]},{"queryToken":[]}],"parameters":[{"name":"kode","in":"path","required":true,"description":"Code (1–4 digits).","schema":{"type":"string"}},{"name":"format","in":"query","required":false,"description":"json (default), geojson, geojsonz or csv.","schema":{"type":"string","enum":["json","geojson","geojsonz","csv"]}},{"name":"struktur","in":"query","required":false,"description":"nestet (default for json), mini or flad.","schema":{"type":"string","enum":["nestet","mini","flad"]}},{"name":"srid","in":"query","required":false,"description":"Output (and cirkel/polygon input) reference system: 4326 (default) or 25832.","schema":{"type":"string","enum":["4326","25832"]}},{"name":"callback","in":"query","required":false,"description":"JSONP callback name.","schema":{"type":"string"}},{"name":"noformat","in":"query","required":false,"description":"Compact JSON instead of DAWA’s pretty-printing.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK. The body is DAWA’s own representation: a bare object (single lookups) or a bare array (lists, type-aheads), shaped by `struktur` (nestet | mini | flad) and `format` (json | geojson | csv); `callback` wraps JSON as JSONP.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}}}}