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 endpoint catalogue

The page's #ai-data-endpoints script contains the same catalogue as JSON: endpoint URLs, CSV 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

Endpoint Row granularity Content Source
/nedladdning/skolor.csv
Documentation
One row per school unit All school units in Sweden with operator, school form, municipality, status, coordinates and key metrics. Skolverket
/nedladdning/kommuner.csv
Documentation
One row per municipality Aggregated compulsory-school statistics per municipality with results, teacher certification, pupil counts and finances. Kolada
/nedladdning/historik.csv
Documentation
One row per municipality and statistics year Time 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 school Admission 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
Field Description
skolenhetskod Skolverket's unique identifier for the school unit
skolenhetNamn Official name of the school unit
kommunNamn / kommunKod Municipality name and four-digit municipality code
huvudmanNamn Operator or organisation running the school
skolformer School forms such as GR (compulsory), GY (upper-secondary) and FORSK (preschool)
lat / lng Coordinates in WGS84 when geocoding is available
meritvardeAk9 Average final-grade score in Year 9
behorigaLararePct Share of teachers with certification, in percent
Municipality data
Field Description
kommunKod Four-digit municipality code
kommunNamn Municipality name
kostnadPerElev_kr Total compulsory-school cost per pupil
elevPerLarare Pupils per teacher
meritvardeSnitt Average final-grade score in Year 9
behorighetsgrad_pct Share of certified teachers, in percent
andelKommunalElever_pct Share of pupils in municipal schools
andelFristaendeElever_pct Share of pupils in independent schools
History
Field Description
kommunKod / kommunNamn Municipality identifier and name
ar Statistics year
meritvardeSnitt Average final-grade score in Year 9
kostnadPerElev_kr Total compulsory-school cost per pupil
elevPerLarare Pupils per teacher
behorighetsgrad_pct Share of certified teachers, in percent
Admissions
Field Description
skolkod / skolnamn / kommun School identification and location
program / programkod Programme name and programme code
inriktning Specialisation when available
ar Admission year
antagningspoang Lowest admission score or cutoff
antagna Number of admitted pupils when source data is available
sokande / forsthandssokande Demand 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).