API

Trafik Nus APIThe Trafik Nu API

Avstängda vägar, vägarbeten, olyckor och störningar på Sveriges vägar, som den här webbplatsen visar dem, i JSON eller GeoJSON. Gratis i 5 dagar med en testnyckel, därefter med ett paket.Closed roads, roadworks, accidents and incidents on Sweden's roads, as this website shows them, in JSON or GeoJSON. Free for 5 days with a trial key, then on a paid plan.

Källhänvisning krävs i alla paketAttribution is required on every plan

Det gäller testperioden, de betalda paketen och Företag: varje app, webbplats eller produkt som visar uppgifter från det här API:et visar tydligt texten ”Data: Trafik Nu” med en länk till trafiknu.se. Att kopiera: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.se. Ready to copy:

Data: <a href="https://trafiknu.se">Trafik Nu</a>

Dessutom ska källhänvisningarna till de ursprungliga källorna i svaret behållas (meta.sources och fältet source i varje meddelande): myndigheternas villkor kräver det. För Trafikverket är det ”Källa: Trafikverket”.The original source credits in the response must also be kept (meta.sources and the source field of each report): the authorities' terms require them. For Trafikverket that is “Källa: Trafikverket”.

Kom igångGetting started

Skapa en testnyckel nedan och lägg till den i anropet. Öppnad i en webbläsare, med din nyckel i slutet, ger den här adressen data direkt: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.se/api/v1/incidents?road=e4&type=vagarbete&key=tn_…

Svaret är JSON. För en karta, lägg till &format=geojson. I kod skickas nyckeln 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.se/api/v1/incidents?county=stockholms-lan&type=avstangning"

NyckelnThe key

Varje anrop behöver en nyckel. Nyckeln du skapar här är en testnyckel: den gäller i 5 dagar från första anropet, med 120 anrop per timme, så att du kan se om API:et passar ditt projekt. Därefter behöver du ett av paketen nedan.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 frågar efter namn, e-post och syfte av tre skäl: för att kunna varna dig när en offentlig källa slutar svara; för att förstå vad API:et fortfarande saknar; och för att en nyckel som kan spärras skyddar alla mot en loop som har skenat.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.

Direkt, utan godkännande. Gäller i 5 dagar från första anropet.Instant, no approval needed. Valid for 5 days from the first request.

PaketPlans

Du betalar för tillgången till tjänsten: anropen, gränserna och supporten. Själva uppgifterna tillhör de myndigheter som publicerar dem och omfattas av deras villkor; deras källhänvisningar ska behållas.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.

TestTrial

För alla, för att se om API:et passarFor anyone, to check whether the API fits

GratisFree

5 dagar5 days

  • 5 dagar från första anropet5 days from the first request
  • 120 anrop per timme120 requests an hour
  • Källhänvisning krävsAttribution required

PrivatPersonal

Privata eller små projekt utan nämnvärda intäkterPrivate or small projects without significant revenue

15 €€15

per månad, inkl. momsper month, incl. VAT

  • Cirka 10 000 anrop per dygnAbout 10,000 requests a day
  • SverigeSweden
  • Källhänvisning krävsAttribution required

ProfessionellProfessional

Kommersiella appar, annonsfinansierade webbplatser, användning i företagCommercial apps, ad-funded websites, use within a company

79 €€79

per månad, inkl. momsper month, incl. VAT

  • Cirka 100 000 anrop per dygnAbout 100,000 requests a day
  • E-postvarning när en källa slutar svaraEmail alert when a source goes down
  • Källhänvisning krävsAttribution required

FöretagEnterprise

Fordonsflottor, försäkring, media, flera länder, SLAFleets, insurers, media, several countries, SLA

Enligt avtalOn request

Offert efter omfattningQuote based on volume

  • Avtalade gränser och SLAAgreed limits and SLA
  • Flera länder via RoadscoreSeveral countries through Roadscore
  • AvtalContract

ViaThrough Roadscore elleror [email protected].

Så får du ett paket: skriv till [email protected] med projektets namn och syfte. Vi svarar med rätt paket och en faktura och flyttar över din nyckel; nyckeln förblir densamma. Paketen Privat och Professionell faktureras månadsvis.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.

Ändpunkt och parametrarEndpoint and parameters

GET /api/v1/incidents returnerar de meddelanden som Trafik Nus karta och sidor visar, från samma källa i samma ögonblick. Alla parametrar är valfria och kan kombineras; skilj flera värden åt med kommatecken. Ett okänt värde ger fel 400 med de tillåtna värdena, aldrig en tyst tom lista.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.

ParameterParameterVärdenValuesTill vadPurpose
roade4, riksvag-40, rv40, lv222Vägen, som i /vag/e4 eller /vag/riksvag-40. Även vag=.The road, as in /vag/e4 or /vag/riksvag-40. Also vag=.
countystockholms-lan, uppsala-lan, sodermanlands-lan …Län, som i /trafiklaget/stockholms-lan. Även lan=. Alla 21:County, as a slug as in /trafiklaget/stockholms-lan. Also lan=. The 21 slugs: stockholms-lan, uppsala-lan, sodermanlands-lan, ostergotlands-lan, jonkopings-lan, kronobergs-lan, kalmar-lan, gotlands-lan, blekinge-lan, skane-lan, hallands-lan, vastra-gotalands-lan, varmlands-lan, orebro-lan, vastmanlands-lan, dalarnas-lan, gavleborgs-lan, vasternorrlands-lan, jamtlands-lan, vasterbottens-lan, norrbottens-lan.
citystockholm, goteborg, malmo …Kommun, som i /trafiklaget/stockholm. Även kommun=.Municipality, as in /trafiklaget/stockholm. Also kommun=.
typevagarbete, ko, olycka, storning, avstangning, avstangdMeddelandets typ. Även på engelska: roadworks, queue, accident, incident, closure. avstangning omfattar alla meddelanden där ett körfält, en väg, en på- eller avfart eller en rastplats är avstängd; avstangd bara helt avstängda vägar.Type of report. English works too: roadworks, queue, accident, incident, closure. avstangning covers every report with a closed lane, road, ramp or rest area; avstangd only fully closed roads.
closurefull, lanes, slip, layby, anyVad som är avstängt: full är en helt avstängd väg.What is closed: full is a fully closed road.
statusactive, scheduledGäller nu eller planerat.In force now or planned.
severityinfo, low, medium, high, criticalPåverkan, som på kartan.Severity, as on the map.
sourcetrafikverketBara meddelanden från en källa.Only reports from one source.
bbox17.9,59.25,18.2,59.4Område: minLon,minLat,maxLon,maxLat i WGS84.Area: minLon,minLat,maxLon,maxLat in WGS84.
limit1–10000 (1000)1 to 10000 (1000)Högst så här många meddelanden: först de som gäller nu, senast uppdaterade först, sedan planerade, närmast i tid först.At most this many reports: those in force first, most recently updated first, then planned ones, soonest first.
formatjson (standard), geojsonjson (default), geojsonJSON för listor, GeoJSON för kartor.JSON for lists, GeoJSON for maps.
keytn_…Din nyckel, om den inte skickas i headern X-API-Key eller Authorization: Bearer.Your key, if not sent in the X-API-Key or Authorization: Bearer header.

ExempelExample

Hur ett svar ser ut, förkortat (värdena är påhittade):The shape of an API response, shortened (the values are made up):

GET https://trafiknu.se/api/v1/incidents?road=e4&type=vagarbete&status=active&limit=1
{
  "attribution": {
    "text": "Data: Trafik Nu",
    "url": "https://trafiknu.se"
  },
  "meta": {
    "count": 1,
    "total": 12,
    "generatedAt": "2026-11-02T08:12:04.511Z",
    "licence": "Data: Trafik Nu (trafiknu.se), via Roadscore, från de offentliga källorna i fältet sources. Källhänvisning krävs i alla paket, både till Trafik Nu och till varje ursprunglig källa.",
    "sources": [
      {
        "id": "trafikverket",
        "credit": "Källa: Trafikverket",
        "licence": null,
        "licenceUrl": "https://www.trafikverket.se"
      }
    ]
  },
  "incidents": [
    {
      "id": "…",
      "type": "roadworks",
      "severity": "medium",
      "status": "active",
      "lat": 59.2,
      "lon": 17.62,
      "title": "Vägarbete · E4, Södertälje",
      "description": "…",
      "source": "trafikverket",
      "road": "E4",
      "roadClass": "E",
      "land": "stockholms-lan",
      "city": "sodertalje",
      "startedAt": "2026-11-01T21:00:00.000Z",
      "updatedAt": "2026-11-02T07:44:03.339Z"
    }
  ]
}

Fälten i svaretResponse fields

  • attribution: texten och länken som du ska visa. Samma innehåll kommer i headern X-Attribution.the text and link you must display. The same content comes in the X-Attribution header.
  • meta.count ochand meta.total: meddelanden i svaret och träffar före limit.reports in the response and matches before the limit.
  • meta.generatedAt: när uppgifterna hämtades.when the data was fetched.
  • meta.sources: varje källa i svaret med dess källhänvisning och villkor. De ska behållas.every source in the response with its credit and terms. You must keep these.
  • id, type, severity, status, lat, lon: id, typ, påverkan, om det gäller nu eller är planerat, position.ID, type, severity, whether in force or planned, position.
  • title ochand description: kort rubrik och källans egen formulering.short title and the source's own wording.
  • road, roadClass, direction, location: väg, vägklass (E Europaväg, R riksväg, L länsväg), riktning, sträcka.road, road class (E European, R national, L county), direction, section.
  • closure, overnight, windows, hours: vad som är avstängt och när, som källan publicerar tidsfönstren.what is closed and when, as the source publishes the time windows.
  • land, city: län och kommun som slugs.county and municipality as slugs.
  • startedAt, endsAt, updatedAt: start, slut, senaste ändring (ISO 8601, UTC).start, end, last change (ISO 8601, UTC).
  • source, sourceUrl: den offentliga källan och dess webbplats.the official source and its website.

Fält utan värde utelämnas i stället för att vara null.Fields without a value are left out rather than set to null.

FelErrors

  • 400: en parameter har ett okänt värde; detail anger de tillåtna.a parameter with an unknown value; detail lists the allowed ones.
  • 401: ingen nyckel.no key.
  • 402: testperioden har gått ut. För ett paket, skriv till [email protected].the trial period has ended. For a plan, write to [email protected].
  • 403: nyckeln är spärrad; detail anger skälet.the key has been revoked; detail gives the reason.
  • 429: gränsen är nådd; headern retry-after anger väntetiden i sekunder.limit reached; the retry-after header gives the wait in seconds.

Under testperioden anger headern X-API-Trial-Ends när perioden tar slut.During the trial, the X-API-Trial-Ends header gives the end of the trial period.

GränserLimits

Test: 120 anrop per timme. Privat: cirka 10 000 per dygn. Professionell: cirka 100 000 per dygn. Företag: enligt avtal. Gränserna räknas per nyckel, inte per IP-adress, så en app med många användare bromsas inte av någon av dem. Headrarna X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset visar hur du ligger till.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.

Uppgifterna hämtas om ungefär en gång i minuten: att fråga oftare än var 30:e sekund ger inga nya meddelanden. CORS är öppet, så du kan anropa API:et direkt från webbläsaren.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.

Användarvillkor och källhänvisningTerms of use and attribution

Med testnyckel eller betalt paket: att driva en produkt byggd på det här API:et utan giltig nyckel eller utan källhänvisning är inte tillåten användning.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.

Källhänvisning krävs i alla paketAttribution is required on every plan

Det gäller testperioden, de betalda paketen och Företag: varje app, webbplats eller produkt som visar uppgifter från det här API:et visar tydligt texten ”Data: Trafik Nu” med en länk till trafiknu.se. Att kopiera: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.se. Ready to copy:

Data: <a href="https://trafiknu.se">Trafik Nu</a>

Dessutom ska källhänvisningarna till de ursprungliga källorna i svaret behållas (meta.sources och fältet source i varje meddelande): myndigheternas villkor kräver det. För Trafikverket är det ”Källa: Trafikverket”.The original source credits in the response must also be kept (meta.sources and the source field of each report): the authorities' terms require them. For Trafikverket that is “Källa: Trafikverket”.

Uppgifterna kommer från Trafikverket och når oss via Roadscore. Källhänvisningarna i den form som dataproducenterna kräver:The data comes from Trafikverket and reaches us through Roadscore. The credits, as the providers require them:

Ärligt om täckningenHonest about coverage

API:et returnerar det som de offentliga källorna har publicerat, inte det som händer på vägen just nu. En väg utan meddelande är inte en fri väg, utan en väg som ingen har publicerat något om. Uppgifterna kommer från Trafikverket och gäller det statliga vägnätet i hela landet: Europavägar, riksvägar och länsvägar. Kommunala gator finns med bara när Trafikverket rapporterar om dem.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 Trafikverket, the Swedish Transport Administration, and cover the state road network across the country: European, national and county roads. Municipal streets appear only when Trafikverket reports them.

Om du bygger varningar på det, säg det till dina användare. Och använd inte API:et för beslut i nödsituationer: vid nödsituation, ring 112.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

Frågor, paket, en borttappad nyckel eller en källa som saknas: [email protected]. Sidorna avstängda vägar och vägarbeten visar samma uppgifter som API:et returnerar.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.