Kildeangivelse er påkrævet på alle pakkerAttribution is required on every plan
Det gælder prøveperioden, de betalte pakker og Virksomhed: enhver app, ethvert website eller produkt, der viser data fra dette API, viser tydeligt teksten “Data: Trafik Nu” med et link til trafiknu.dk. Klar til at kopiere:The same applies on the trial, the paid plans and Enterprise: every app, website or product that shows data from this API displays “Data: Trafik Nu” clearly, with a link to trafiknu.dk. Ready to copy:
Data: <a href="https://trafiknu.dk">Trafik Nu</a>
Desuden skal de oprindelige kilders kildeangivelser i svaret bevares (meta.sources og feltet source på hver melding): myndighedernes licenser kræver det. Her er det “Vejdirektoratet (CC BY 4.0)”, “Københavns Kommune (CC BY 4.0)” og “Sund & Bælt” for Storebæltsforbindelsen.The original source credits in the response must also be kept (meta.sources and the source field of each report): the authorities' licences require them. Here that is “Vejdirektoratet (CC BY 4.0)”, “Københavns Kommune (CC BY 4.0)” and “Sund & Bælt” for the Great Belt link.
Kom i gangGetting started
Opret en prøvenøgle nedenfor og føj den til forespørgslen. Åbnet i en browser med din nøgle til sidst giver dette data med det samme:Create a trial key below and add it to the request. Opened in a browser with your key at the end, this returns data straight away:
https://trafiknu.dk/api/v1/incidents?road=e45&type=vejarbejde&key=tn_…
Svaret er JSON. Til et kort tilføjer du &format=geojson. I kode sendes nøglen helst i en header:The response is JSON. For a map, add &format=geojson. In code, the key is better sent in a header:
curl -H "X-API-Key: tn_…" "https://trafiknu.dk/api/v1/incidents?county=hovedstaden&type=lukket"
NøglenThe key
Hver forespørgsel kræver en nøgle. Den nøgle, du opretter her, er en prøvenøgle: den gælder i 5 dage fra første forespørgsel med 120 forespørgsler i timen, så du kan se, om API'et passer til dit projekt. Derefter skal du have en af pakkerne nedenfor.Every request needs a key. The key you create here is a trial key: it is valid for 5 days from the first request, at 120 requests an hour, so you can check whether the API suits your project. After that you need one of the plans below.
Vi beder om navn, e-mail og formål af tre grunde: så vi kan give besked, når en offentlig kilde falder ud; så vi forstår, hvad API'et stadig mangler; og fordi en nøgle, der kan spærres, beskytter alle mod en løbsk løkke.We ask for a name, email and purpose for three reasons: to warn you when an official source goes down; to understand what the API is still missing; and because a key that can be revoked protects everyone from a runaway loop.
PakkerPlans
Du betaler for adgangen til tjenesten: forespørgslerne, grænserne og supporten. Selve dataene tilhører de myndigheder, der offentliggør dem, og er under deres licenser; deres kildeangivelser skal bevares.What you pay for is access to the service: the queries, the limits and the support. The data itself belongs to the authorities that publish it and stays under their licences; their credits must be kept.
PrøveTrial
For alle, til at afprøve om API'et passerFor anyone, to check whether the API fits
GratisFree
5 dage5 days
- 5 dage fra første forespørgsel5 days from the first request
- 120 forespørgsler i timen120 requests an hour
- Kildeangivelse påkrævetAttribution required
PersonligPersonal
Private eller små projekter uden nævneværdig omsætningPrivate or small projects without significant revenue
15 €€15
om måneden, inkl. momsper month, incl. VAT
- Omkring 10.000 forespørgsler om dagenAbout 10,000 requests a day
- DanmarkDenmark
- Kildeangivelse påkrævetAttribution required
ProfessionelProfessional
Kommercielle apps, annoncefinansierede websites, brug i en virksomhedCommercial apps, ad-funded websites, use within a company
79 €€79
om måneden, inkl. momsper month, incl. VAT
- Omkring 100.000 forespørgsler om dagenAbout 100,000 requests a day
- E-mail, når en kilde falder udEmail alert when a source goes down
- Kildeangivelse påkrævetAttribution required
VirksomhedEnterprise
Flåder, forsikring, medier, flere lande, SLAFleets, insurers, media, several countries, SLA
Efter aftaleOn request
Tilbud efter omfangQuote based on volume
- Aftalte grænser og SLAAgreed limits and SLA
- Flere lande gennem RoadscoreSeveral countries through Roadscore
- KontraktContract
GennemThrough Roadscore elleror [email protected].
Sådan får du en pakke: skriv til [email protected] med projektets navn og formål. Vi svarer med den rette pakke og en faktura og flytter din nøgle over; nøglen er den samme. Pakkerne Personlig og Professionel faktureres månedligt.How to get a plan: write to [email protected] with the name of your project and how you plan to use it. We reply with the right plan and an invoice, and switch your key over; it stays the same. The Personal and Professional plans are billed monthly.
Endpoint og parametreEndpoint and parameters
GET /api/v1/incidents returnerer de meldinger, som Trafik Nus kort og sider viser, fra samme kilde i samme øjeblik. Alle parametre er valgfrie og kan kombineres; adskil flere værdier med komma. En ukendt værdi giver fejl 400 med de tilladte værdier, aldrig en stille tom liste.GET /api/v1/incidents returns the reports that the map and the pages of Trafik Nu show, from the same source at the same moment. All parameters are optional and can be combined; separate multiple values with commas. An unknown value returns a 400 error listing the allowed values, never a silently empty list.
| ParameterParameter | VærdierValues | FormålPurpose |
|---|---|---|
road | e45, e20, rute-21, motorring-3, 151 | Vejen, som i /vej/e45 eller /vej/rute-21. Også vej=. Kun meldinger, hvor kilden eller teksten nævner vejen.The road, as in /vej/e45 or /vej/rute-21. Also vej=. Only reports whose source or text names the road. |
county | hovedstaden, sjaelland, syddanmark … | Regionen som slug, som i /trafik/midtjylland. Også region=. Alle 5:Region, as a slug as in /trafik/midtjylland. Also region=. All 5: hovedstaden, sjaelland, syddanmark, midtjylland, nordjylland. |
city | koebenhavn, aarhus, odense … | En af de 25 byer med egen side, som i /trafik/aarhus. Også by=.One of the 25 towns with their own page, as in /trafik/aarhus. Also by=. |
kommune | koebenhavn, aarhus, hoeje-taastrup … | En af de 98 kommuner, som slug eller navn (Høje-Taastrup). Kommunen er beregnet ud fra koordinaterne.One of the 98 municipalities, as a slug or a name (Høje-Taastrup). The municipality is computed from the coordinates. |
type | vejarbejde, kø, uheld, hændelse, spaerring, lukket | Meldingens type. Også på engelsk: roadworks, queue, accident, incident, closure. spaerring dækker alle meldinger med en spærret vognbane, vej, rampe eller rasteplads; lukket kun helt lukkede veje.Type of report. English works too: roadworks, queue, accident, incident, closure. spaerring covers every report with a closed lane, road, ramp or rest area; lukket only fully closed roads. |
closure | full, lanes, slip, layby, any | Hvad der er lukket: full er en helt lukket vej (eller kørebane).What is closed: full is a fully closed road. |
status | active, scheduled | Aktiv nu eller planlagt.In force now or planned. |
severity | info, low, medium, high, critical | Alvorlighed, som på kortet.Severity, as on the map. |
source | vejdirektoratet | Kun meldinger fra én kilde.Only reports from one source. |
bbox | 12.45,55.6,12.65,55.73 | Område: minLon,minLat,maxLon,maxLat i WGS84.Area: minLon,minLat,maxLon,maxLat in WGS84. |
limit | 1 til 10000 (1000)1 to 10000 (1000) | Højst så mange meldinger: først de aktive, senest opdaterede først, derefter de planlagte, de nærmeste først.At most this many reports: those in force first, most recently updated first, then planned ones, soonest first. |
format | json (standard), geojsonjson (default), geojson | JSON til lister, GeoJSON til kort.JSON for lists, GeoJSON for maps. |
key | tn_… | Din nøgle, hvis den ikke sendes i headeren X-API-Key eller Authorization: Bearer.Your key, if not sent in the X-API-Key or Authorization: Bearer header. |
EksempelExample
Formen på et svar fra API'et, forkortet:The shape of an API response, shortened:
GET https://trafiknu.dk/api/v1/incidents?road=e20&type=vejarbejde&status=active&limit=1
{
"attribution": {
"text": "Data: Trafik Nu",
"url": "https://trafiknu.dk"
},
"meta": {
"count": 1,
"total": 4,
"generatedAt": "2026-10-23T15:58:00.058Z",
"licence": "Data: Trafik Nu (trafiknu.dk), via Roadscore, fra de offentlige kilder i feltet sources. Kildeangivelse er påkrævet på alle pakker, både for Trafik Nu og for hver oprindelig kilde.",
"sources": [
{
"id": "vejdirektoratet",
"credit": "Vejdirektoratet (CC BY 4.0), Københavns Kommune (CC BY 4.0), Sund & Bælt",
"licence": "Creative Commons Navngivelse 4.0 (CC BY 4.0)",
"licenceUrl": "https://creativecommons.org/licenses/by/4.0/deed.da"
}
]
},
"incidents": [
{
"id": "vd-6fd5a9f8-d1b9-44eb-a29f-033cc82fa6f2_227280",
"type": "roadworks",
"severity": "low",
"status": "active",
"lat": 55.38186498613142,
"lon": 10.2689089099849,
"title": "Vejarbejde · E20, Odense",
"description": "Hastighedsbegrænsning 80 km/t.",
"source": "vejdirektoratet",
"sourceUrl": "https://www.vejdirektoratet.dk",
"road": "E20",
"roadClass": "E",
"location": "Fynske Motorvej",
"windows": [{ "from": "2025-08-03T04:00:00.000Z", "to": "2026-10-31T22:30:00.000Z" }],
"land": "syddanmark",
"kommune": "Odense",
"street": "Fynske Motorvej",
"city": "odense",
"startedAt": "2025-08-03T04:00:00.000Z",
"endsAt": "2026-10-31T22:30:00.000Z",
"updatedAt": "2026-03-27T11:42:38.000Z"
}
]
}Felterne i svaretResponse fields
attribution: teksten og linket, du skal vise. Det samme kommer i headerenX-Attribution.the text and link you must display. The same content comes in theX-Attributionheader.meta.countogandmeta.total: meldinger i svaret og hits førlimit.reports in the response and matches before thelimit.meta.generatedAt: hvornår dataene blev hentet.when the data was fetched.meta.sources: hver kilde i svaret med kildeangivelse og licens. Dem skal du bevare.every source in the response with its credit and licence. You must keep these.id,type,severity,status,lat,lon: id, type, alvorlighed, aktiv eller planlagt, position.ID, type, severity, whether in force or planned, position.titleoganddescription: kort titel (type, vej eller gade, kommune) og kildens egen ordlyd.short title (type, road or street, municipality) and the source's own wording.road,roadClass,direction,location,street: vej (E45, R21 for rute 21, M3 for Motorring 3), vejklasse (E E-vej, M motorring, P primærrute, S sekundærrute), retning, strækning, gade eller motorvejsnavn.road (E45, R21 for route 21, M3 for Motorring 3), road class (E European road, M ring motorway, P primary route, S secondary route), direction, section, street or motorway name.closure,overnight,windows,hours: hvad der er lukket og hvornår, som kilden offentliggør tidsrummene.what is closed and when, as the source publishes the time windows.land,kommune,city: region (slug), kommune (navn) og by (slug), beregnet ud fra koordinaterne.region (slug), municipality (name) and town (slug), computed from the coordinates.startedAt,endsAt,updatedAt: start, slut, seneste ændring (ISO 8601, UTC).start, end, last change (ISO 8601, UTC).source,sourceUrl: den offentlige kilde og dens website.the official source and its website.
Felter uden værdi udelades i stedet for at være null.Fields without a value are left out rather than set to null.
FejlErrors
400: en parameter med en ukendt værdi;detailviser de tilladte.a parameter with an unknown value;detaillists the allowed ones.401: ingen nøgle.no key.402: prøveperioden er udløbet. Skriv til [email protected] for en pakke.the trial period has ended. For a plan, write to [email protected].403: nøglen er spærret;detailgiver grunden.the key has been revoked;detailgives the reason.429: grænsen er nået; headerenretry-aftergiver ventetiden i sekunder.limit reached; theretry-afterheader gives the wait in seconds.
I prøveperioden fortæller headeren X-API-Trial-Ends, hvornår den udløber.During the trial, the X-API-Trial-Ends header gives the end of the trial period.
GrænserLimits
Prøve: 120 forespørgsler i timen. Personlig: omkring 10.000 om dagen. Professionel: omkring 100.000 om dagen. Virksomhed: efter aftale. Grænserne tælles pr. nøgle, ikke pr. IP, så en app med mange brugere ikke bremses af én af dem. Headerne X-RateLimit-Limit, X-RateLimit-Remaining og X-RateLimit-Reset viser, hvor du står.Trial: 120 requests an hour. Personal: about 10,000 a day. Professional: about 100,000 a day. Enterprise: by agreement. Limits are counted per key, not per IP, so an app with many users is not held back by any one of them. The X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers show where you stand.
Dataene hentes igen cirka én gang i minuttet: at spørge oftere end hvert 30. sekund giver ingen nye meldinger. CORS er åbent, så du kan kalde API'et direkte fra browseren.The data is refreshed about once a minute: asking more often than every 30 seconds brings no new reports. CORS is open, so you can call the API straight from the browser.
Vilkår og kildeangivelseTerms of use and attribution
Med prøvenøgle eller betalt pakke: at drive et produkt bygget på dette API uden en gyldig nøgle eller uden kildeangivelse er ikke tilladt brug.On a trial key or a paid plan: running a product built on this API without a valid key or without attribution is not permitted use.
Kildeangivelse er påkrævet på alle pakkerAttribution is required on every plan
Det gælder prøveperioden, de betalte pakker og Virksomhed: enhver app, ethvert website eller produkt, der viser data fra dette API, viser tydeligt teksten “Data: Trafik Nu” med et link til trafiknu.dk. Klar til at kopiere:The same applies on the trial, the paid plans and Enterprise: every app, website or product that shows data from this API displays “Data: Trafik Nu” clearly, with a link to trafiknu.dk. Ready to copy:
Data: <a href="https://trafiknu.dk">Trafik Nu</a>
Desuden skal de oprindelige kilders kildeangivelser i svaret bevares (meta.sources og feltet source på hver melding): myndighedernes licenser kræver det. Her er det “Vejdirektoratet (CC BY 4.0)”, “Københavns Kommune (CC BY 4.0)” og “Sund & Bælt” for Storebæltsforbindelsen.The original source credits in the response must also be kept (meta.sources and the source field of each report): the authorities' licences require them. Here that is “Vejdirektoratet (CC BY 4.0)”, “Københavns Kommune (CC BY 4.0)” and “Sund & Bælt” for the Great Belt link.
Dataene kommer fra Vejdirektoratet, Københavns Kommune og Sund & Bælt og når os gennem Roadscore. Kildeangivelserne, som udgiverne kræver dem:The data comes from the Danish Road Directorate (Vejdirektoratet), Copenhagen Municipality and Sund & Bælt and reaches us through Roadscore. The credits, as the providers require them:
- Vejdirektoratet (CC BY 4.0), Københavns Kommune (CC BY 4.0), Sund & Bælt (Creative Commons Navngivelse 4.0 (CC BY 4.0))
Ærligt om dækningenHonest about coverage
API'et returnerer, hvad de offentlige kilder har offentliggjort, ikke hvad der sker på vejen lige nu. En vej uden melding er ikke en fri vej, kun en vej, som ingen har meldt noget om. Oplysningerne kommer fra Vejdirektoratet og dækker statsvejene og de kommunale veje, som kommunerne melder ind, i hele landet. Københavns Kommune melder selv om vejarbejde og lukkede gader, og Sund & Bælt om Storebæltsforbindelsen.The API returns what the official sources have published, not what is happening on the road right now. A road with no report is not a clear road, just one nobody has published anything about. The reports come from the Danish Road Directorate (Vejdirektoratet) and cover the state roads, and the municipal roads the municipalities report, across the country. Copenhagen Municipality reports its own roadworks and street closures, and Sund & Bælt the Great Belt link.
Bygger du advarsler på det, så sig det til dine brugere. Og brug ikke API'et til beslutninger i nødsituationer: ring 112 i en nødsituation.If you build alerts on it, tell your users so. And do not use the API for emergency decisions: in an emergency, call 112.
KontaktContact
Spørgsmål, en pakke, en mistet nøgle eller en manglende kilde: [email protected]. Siderne lukkede veje og vejarbejde viser de samme data, som API'et returnerer.Questions, a plan, a lost key or a missing source: [email protected]. The closed roads and roadworks pages show the same data the API returns.