Authentication

Learn how to authenticate your requests to the API.

The API uses simple API key–based authentication. Each education region is issued a single API key, which must be included in every request via the api-key HTTP header.

API keys do not expire. The region that receives the key is responsible for its secure storage and use, including any third-party integrations that rely on it.

A new major version of the API (v2) is planned for early 2026 and will include a redesign of the authentication system. Existing API keys will remain valid after migrating to v2.

Examples

const response = await fetch(
  "https://onderwijsregio.onderwijsin.nl/api/v1/schema",
  {
    method: "GET",
    headers: {
      "api-key": process.env.ONDERWIJSREGIO_API_KEY as string,
      "Content-Type": "application/json",
    },
  }
);

const data = await response.json();
$ch = curl_init("https://onderwijsregio.onderwijsin.nl/api/v1/schema");

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "api-key: " . getenv("ONDERWIJSREGIO_API_KEY"),
        "Content-Type: application/json",
    ],
]);

$response = curl_exec($ch);
curl_close($ch);
import os
import requests

response = requests.get(
    "https://onderwijsregio.onderwijsin.nl/api/v1/schema",
    headers={
        "api-key": os.environ["ONDERWIJSREGIO_API_KEY"],
        "Content-Type": "application/json",
    },
)

data = response.json()
curl https://onderwijsregio.onderwijsin.nl/api/v1/schema \
  -H "api-key: $ONDERWIJSREGIO_API_KEY" \
  -H "Content-Type: application/json"