Open data for agents

AI guide to Skolkoll's open data

A compact reference for AI agents, browser agents and other programs that need to find, read and compare Swedish school data without manual navigation.

Machine-readable CSV download catalogue

The page's #ai-data-endpoints script contains the same open-data download catalogue as JSON: CSV URLs, file format, field descriptions, license, row granularity and typical agent flows.

Format
CSV (UTF-8, semicolon, Swedish decimal comma)
License
CC BY 4.0 with attribution to Skolkoll and the original source
Schema
Schema.org DataCatalog with one Dataset per CSV endpoint and a DataDownload distribution
DCAT-AP SE
/data/catalog.jsonld with the complete machine-readable dataset catalog. The AI chat exposes the same catalog via /api/ai/dcat.
Recommended parsing
Read CSV with sep=";", encoding="utf-8-sig", decimal="," and comment="#"

CSV endpoints

EndpointRow granularityContentSource
/nedladdning/skolor.csv
Documentation
One row per school unitAll school units in Sweden with operator, school form, municipality, status, coordinates and key metrics.Skolverket
/nedladdning/kommuner.csv
Documentation
One row per municipalityAggregated compulsory-school statistics per municipality with results, teacher certification, pupil counts and finances.Kolada
/nedladdning/historik.csv
Documentation
One row per municipality and statistics yearTime series per municipality for compulsory school: results, cost per pupil, pupils per teacher and teacher certification.Kolada
/nedladdning/antagning.csv
Documentation
One row per upper-secondary programme and schoolAdmission scores and programme supply per upper-secondary programme and school, with history where available.Gymnasieantagningen / Skolverket

Agent flows

Top list within a municipality

Query: Find the top 10 compulsory schools in Uppsala by final-grade score and show teacher certification alongside.

Method: Filter skolor.csv on kommunNamn=Uppsala and skolformer containing GR, sort descending by meritvardeAk9.

Data files: School data

Municipality comparison

Query: Compare cost per pupil, teacher certification and final-grade score between Nacka, Uppsala and Lund.

Method: Use kommuner.csv for the latest values and historik.csv for trends over time per kommunKod.

Data files: Municipality data, History

Upper-secondary choice

Query: List Natural Sciences programmes in Gothenburg where the latest admission score is below 270.

Method: Filter antagning.csv on kommun=Göteborg and programkod=NA, convert antagningspoang to a number and sort.

Data files: Admissions

Fields to start with

School data
FieldDescription
skolenhetskodSkolverket's unique identifier for the school unit
skolenhetNamnOfficial name of the school unit
kommunNamn / kommunKodMunicipality name and four-digit municipality code
huvudmanNamnOperator or organisation running the school
skolformerSchool forms such as GR (compulsory), GY (upper-secondary) and FORSK (preschool)
lat / lngCoordinates in WGS84 when geocoding is available
meritvardeAk9Average final-grade score in Year 9
behorigaLararePctShare of teachers with certification, in percent
Municipality data
FieldDescription
kommunKodFour-digit municipality code
kommunNamnMunicipality name
kostnadPerElev_krTotal compulsory-school cost per pupil
elevPerLararePupils per teacher
meritvardeSnittAverage final-grade score in Year 9
behorighetsgrad_pctShare of certified teachers, in percent
andelKommunalElever_pctShare of pupils in municipal schools
andelFristaendeElever_pctShare of pupils in independent schools
History
FieldDescription
kommunKod / kommunNamnMunicipality identifier and name
arStatistics year
meritvardeSnittAverage final-grade score in Year 9
kostnadPerElev_krTotal compulsory-school cost per pupil
elevPerLararePupils per teacher
behorighetsgrad_pctShare of certified teachers, in percent
Admissions
FieldDescription
skolkod / skolnamn / kommunSchool identification and location
program / programkodProgramme name and programme code
inriktningSpecialisation when available
arAdmission year
antagningspoangLowest admission score or cutoff
antagnaNumber of admitted pupils when source data is available
sokande / forsthandssokandeDemand when source data is available

Python example

import pandas as pd

schools = pd.read_csv(
    "https://skolkoll.se/nedladdning/skolor.csv",
    sep=";",
    encoding="utf-8-sig",
    decimal=",",
    comment="#",
)

uppsala_top10 = (
    schools[
        (schools["kommunNamn"] == "Uppsala")
        & schools["skolformer"].str.contains("GR", na=False)
    ]
    .sort_values("meritvardeAk9", ascending=False)
    .head(10)
)

print(uppsala_top10[["skolenhetNamn", "meritvardeAk9", "behorigaLararePct"]])

For more data files and historical versions, see downloadable data files(the metadata-rich portal is currently Swedish-only).