Valmyndigheten

Beskrivningen innehåller även information om simuleringar av valresultatet som Valmyndigheten gör inför valet, som allmänheten får ta del av.

Gränssnittet utgörs av en enkel access direkt till allmänt tillgängliga resultatfiler på Valmyndighetens webbplats. Tanken med dokumentationen är att beskriva hur man kommer åt filerna och vad de innehåller.

Resultatfilerna

Filformat

Resultatet levereras i zip-filer. Hälften av zip-filerna innehåller data från den preliminära rösträkningen, som sker redan på valkvällen och fortsätter under onsdagen efter valdagen (uppsamlingsräkning av sent inkomna förtidsröster och brevröster), medan den andra hälften innehåller data från den slutliga rösträkningen som pågår under hela veckan efter valdagen.

För respektive rösträkning finns 311 zip-filer, en för varje val (riksdag + 20 regionval + 290 kommunval) som innehåller resultatet uppdelat i två eller tre olika filtyper (alla i json-format):

  • Röstfördelning
  • Mandatfördelning
  • Underordnad summering (enbart riksdagsvalet och regionvalen)

Dessutom finns två zip-filer för respektive rösträkning som innehåller en json-fil med överordnad summering. En fil för alla regionval och en fil för alla kommunval.

Totalt blir det 626 zip-filer: 2 × (311 + 2).

Storleken på zip-filerna är några megabyte. Respektive json-fil kan däremot uppackad bli upp mot 250 megabyte. Json-filerna kommer även att kompletteras med sha256-filer för validering.

Räkningstillfällen

Zip-filer för preliminärt räkningstillfälle

Uppdateras kontinuerligt med valresultat som räknas under valkvällen och in på natten mot måndagen. Efter valkvällsräkningen pausas uppdateringarna men återupptas under uppsamlingsräkningen följande onsdag, då de sena förtidsrösterna räknas.

Endast så kallade rapportpartier (partier som förväntas kunna ta mandat) ingår i det här räkningstillfället. Personröster redovisas inte.

Exempel riksdagsvalet

Val_20260913_preliminar_00_RD.zip innehåller:

  • Val_20260913_preliminar_mandatfordelning_00_RD.json
  • Val_20260913_preliminar_mandatfordelning_00_RD_sign.sha256
  • Val_20260913_preliminar_rostfordelning_00_RD.json
  • Val_20260913_preliminar_rostfordelning_00_RD_sign.sha256
  • Val_20260913_preliminar_summering_00_RD.json
  • Val_20260913_preliminar_summering_00_RD_sign.sha256

Zip-filer för slutligt räkningstillfälle

Uppdateras kontinuerligt med det slutliga valresultatet med start på måndagen efter valet tills räkningen är klar och resultatet fastställt.

Uppdateringarna av det slutliga resultatet kommer alltså att överlappa med uppdateringarna av det preliminära resultatet. Innan resultatet är fastställt bör även dessa siffror behandlas som ett preliminärt resultat.

Samtliga partier ingår i det här räkningstillfället och personröster redovisas.

Exempel riksdagsvalet

Val_20260913_slutlig_00_RD.zip innehåller:

  • Val_20260913_slutlig_mandatfordelning_00_RD.json
  • Val_20260913_slutlig_mandatfordelning_00_RD_sign.sha256
  • Val_20260913_slutlig_rostfordelning_00_RD.json
  • Val_20260913_slutlig_rostfordelning_00_RD_sign.sha256
  • Val_20260913_slutlig_summering_00_RD.json
  • Val_20260913_slutlig_summering_00_RD_sign.sha256

Filtyper

Här beskrivs de json-filer som finns i zip-filerna. Samtliga filer innehåller jämförelser mot föregående val.

Röstfördelningsfil

Innehåller röster per valdistrikt och alla metadata om rapporteringen på valdistriktsnivå. Filerna för det slutliga räkningstillfället kommer även att innehålla personröster.

Mandatfördelning

Innehåller röster aggregerade på valområdes- och valkretsnivå för att kunna genomföra mandatfördelningen. Filerna för det slutliga räkningstillfället kommer, när resultatet blivit fastställt, även att innehålla namn på valda och ersättare, samt de data som behövs för att utse dessa.

Underordnad summering

Innehåller summering på underliggande nivåer (exempelvis län, kommun och kommunvalkretsar för riksdagsvalet) som inte krävs för att räkna ut valresultat och mandatfördelning, men som kan vara av intresse för allmänheten.

Denna fil finns enbart för riksdagsvalet och regionvalen, eftersom resultat på nivåerna under kommun (valdistrikt och eventuella kommunvalkretsar) finns för kommunvalen i de andra filerna.

Överordnad summering

Innehåller summering på överliggande nivåer (exempelvis riket) som inte krävs för att räkna ut valresultat och mandatfördelning, men som kan vara av intresse för allmänheten.

Denna fil finns enbart för regionvalen och kommunvalen, eftersom det inte finns någon överliggande nivå till riksdagsvalet.

Namnsättning

Såväl zip- som json-filer är döpta enligt följande mönster:

  1. Valets namn ”Val_20260913”.
  2. Räkningstillfälle, ”preliminär” eller ”slutlig”.
  3. Valområdeskod. Tvåställig länskod för regionval, fyrställig kommunkod för kommunval och koden ”00” för riksdagsvalet.
  4. Valtillfälleskod, RD för riksdagsval, RF för regionval och KF för kommunval.

Nedladdning

Resultatfilerna för valen 2026 kommer att finnas här:

Resultatfiler för valen 2026

Resultatfilerna vid simuleringarna inför valet kommer att finnas här:

Resultatfiler vid simuleringarna inför valet

Här nedan följer ett exempel på hur du kan ladda ner filerna. Det finns andra sätt, men det här sättet följer Valmyndighetens rekommendationer.

Indexfilen ”index.md5” innehåller i normalfallet 626 rader, en för varje zip-fil. Ladda ner den först.

Indexfilen ger dig information om vilka resultatfiler som finns att ladda ner, dess relativa sökväg samt en checksumma. Jämför checksumman inför varje nedladdning och avgör på så sätt vilka filer som behöver uppdateras.

Exempel

GET https://resultat.val.se/resultatfiler/val2026/index.md5

$ cat ./resultatfiler/val2026/index.md5

721fbd8bea159b87dc4857d737e34f14 ./p/rd/Val_20260913_preliminar_00_RD.zip

7167df1b70dc7a015e8d9621f8150e76 ./s/rd/Val_20260913_slutlig_00_RD.zip

Genom att jämföra index-filer går det sedan att identifiera de filer som har ändrats, till exempel så här:

$ diff index.md5 tmp/index.md5 | grep "^>" | cut -d* -f2

./rd/Val_20260913_preliminar_00_RD.zip

./s/rd/Val_20260913_slutlig_00_RD.zip

Validering av valresultatsfiler

Genom att följa dessa instruktioner kan man säkerställa valresultatfilernas autenticitet och att filerna inte har modifierats av någon utomstående.

Varje valresultatsfil i en zip-fil ska ha en motsvarande signaturfil med identiska namn förutom att ändelsen slutar på "_sign.sha256" istället för ".json". Till exempel: En fil med namnet "Val_20260913_slutlig_mandatfordelning_00_RD.json" ska ha en motsvarande signaturfil som heter "Val_20260913_slutlig_mandatfordelning_00_RD_sign.sha256".

Dessa signaturfiler kan i kombination med en publik nyckel användas för att validera äktheten med hjälp av exempelvis OpenSSL. Den publika nyckeln tas fram genom att först ladda ner ett certifikat från Valmyndighetens webbplats:

https://resultat.val.se/keys/val-sign-crt.pem

Skriv sedan följande kommando i din terminal (notera att OpenSSL måste vara installerat på din dator):

openssl x509 -pubkey -noout -in val-sign-crt.pem > publik_nyckel.pem

Därefter kan valresultatfilernas autenticitet valideras genom att skriva följande kommando:

openssl dgst –sha256 -verify <publiknyckel> -signature <signaturfil> <resultatfil>

Exempel:

openssl dgst –sha256 -verify publik_nyckel.pem –signature Val_20260913_slutlig_mandatfordelning_00_RD_sign.sha256 Val_20260913_slutlig_mandatfordelning_00_RD.json

Filen är autentisk om OpenSSL svarar med "Verified OK". Om OpenSSL svarar med "Verified Failure" har antingen något verifikationssteg gått fel eller så har filerna modifierats från någon utomstående part.

Begränsning i hämtning av valresultatsfiler

För att upprätthålla möjlighet av leverans av resultatfiler finns en gräns hur ofta det går att hämta dessa. Om detta tak skulle uppnås på grund av hög belastning så kan man få svaret:

429 Too Many Requests

Om detta sker, vänta en liten stund och försök igen.

Simuleringar innan valet

För att testa Valmyndighetens egna lösningar kommer vi att köra publika simuleringar med start den 17 augusti. De är öppna för alla.

För dessa simuleringar kommer indexfilen att finnas här:

Indexfil för de publika simuleringarna

De json-filer som skickas ut under simuleringarna kommer att ha attributet ”test” satt till true. När filerna sedan uppdateras under valet kommer detta attribut inte att finnas kvar.

Även Valmyndighetens valresultatpresentation kommer att ingå i simuleringarna och visa upp testdata:

Simuleringar med testdata i valresultatpresentationen

Preliminära dagar och cirkatider

Första veckan är tiderna mycket preliminära.

När simuleringarna är klara för respektive vecka kommer filerna att raderas.

Måndag 17 augusti

Valkväll och uppsamlingsräkning.

  • 13.00–15.00: Preliminärt resultat för valdistrikt som räknas på valkvällen

(Eventuellt skjuts måndagens körning upp till tisdagen.)

Tisdag 18 augusti

Uppsamlingsräkning och start slutligt resultat.

  • 10.00–12.00: Preliminärt resultat för valdistrikt som räknas på uppsamlingsräkningen (onsdagen efter valdagen).
  • 13.00–15.00: Slutligt resultat kommer in med varierande frekvens.

Onsdag 19 augusti

Fortsättning slutligt resultat och protokoll.

  • 08.00–12.00: Slutligt resultat fortsätter komma in med varierande frekvens

Måndag 24 augusti

Valkväll och uppsamlingsräkning.

  • 13.00–15.00: Preliminärt resultat för valdistrikt som räknas på valkvällen.

Tisdag 25 augusti

Uppsamlingsräkning och start slutligt resultat.

  • 10.00–12.00: Preliminärt resultat för valdistrikt som räknas på uppsamlingsräkningen (onsdagen efter valdagen)
  • 13.00–15.00: Slutligt resultat kommer in med varierande frekvens

Onsdag 26 augusti

Fortsättning slutligt resultat och protokoll.

  • 08.00–12.00: Slutligt resultat fortsätter komma in med varierande frekvens.

Måndag 31 augusti

Valkväll och uppsamlingsräkning.

  • 13.00–15.00: Preliminärt resultat för valdistrikt som räknas på valkvällen

Tisdag 1 september

Uppsamlingsräkning och start slutligt resultat.

  • 10.00–12.00: Preliminärt resultat för valdistrikt som räknas på uppsamlingsräkningen (onsdagen efter valdagen).
  • 13.00–15.00: Slutligt resultat kommer in med varierande frekvens.

Onsdag 2 september

Fortsättning slutligt resultat och protokoll.

  • 08.00–12.00: Slutligt resultat fortsätter komma in med varierande frekvens.

Sök