Gratis nummerplade API

Vi stiller et gratis REST API til rådighed, som giver dig direkte adgang til køretøjsdata fra det danske Motorregister. Med en simpel HTTP-forespørgsel kan du slå enhver dansk nummerplade op og få mærke, model, tekniske specifikationer, synshistorik, miljødata og meget mere retur som struktureret JSON.

Aftalen er enkel: du placerer et link til nummerplade-tjek.dk på din hjemmeside, og vi giver dig en API-nøgle med op til 500 opslag pr. dag. Ingen kreditkort, ingen abonnementer, ingen skjulte begrænsninger. Bare et link.

API-et er velegnet til udviklerværktøjer, bilrelaterede apps, prisberegninger, værkstedssystemer og alle andre projekter, der har brug for danske køretøjsoplysninger.

Sådan får du en API-nøgle

Processen tager under fem minutter, og du kan begynde at lave opslag med det samme.

  1. Tilføj et link til nummerplade-tjek.dk på din hjemmeside. Det kan stå i footeren, på en ressource-side, i et blogindlæg eller hvor det ellers giver mening. Linket skal pege på https://nummerplade-tjek.dk eller en underside. Det vigtige er, at det er synligt og tilgængeligt for søgemaskiner.
  2. Registrer dig på vores registreringsside med din e-mail, din hjemmesides URL og den specifikke URL, hvor linket er placeret.
  3. Vi tjekker linket automatisk og sender dig en API-nøgle med det samme. Hele processen er automatiseret, så du behøver ikke vente på en manuel godkendelse.

Endpoint

Alle opslag går til et enkelt endpoint:

GET https://nummerplade-tjek.dk/api/v1/vehicles/{nummerplade}

Erstat {nummerplade} med den nummerplade, du vil slå op. Mellemrum og bindestreger bliver ignoreret, og bogstaver konverteres automatisk til store bogstaver. Du kan altså sende både AB12345 og ab 12 345.

Autentificering

Send din API-nøgle som en HTTP-header med navnet X-API-Key:

X-API-Key: din_api_nøgle

Alle forespørgsler uden en gyldig API-nøgle returnerer HTTP 401. Nøgler, der er deaktiveret på grund af manglende backlink, returnerer HTTP 403.

Eksempel med curl

Her er et komplet eksempel, der slår nummerpladen AB12345 op:

curl -H "X-API-Key: dk_live_abc123def456" \
     https://nummerplade-tjek.dk/api/v1/vehicles/AB12345

Svarformat

Et vellykket opslag returnerer HTTP 200 med følgende JSON-struktur:

{
  "status": "ok",
  "data": {
    "plate": "AB12345",
    "vehicle": {
      "registration_number": "AB12345",
      "status": "Registreret",
      "type": "Personbil",
      "make": "AUDI",
      "model": "A6 AVANT",
      "variant": "3.0 TDI QUATTRO",
      "model_year": 2019,
      "color": "Sort",
      "chassis_type": "Stationcar",
      "vin": "WAUZZZ4G3KN012345",
      "engine_cylinders": 6,
      "engine_volume": 2967,
      "engine_power": 170,
      "fuel_type": "Diesel",
      "is_hybrid": false,
      "total_weight": 2520,
      "seats": 5,
      "doors": 4,
      "trailer_maxweight_withbrakes": 2500,
      "mot_info": {
        "date": "2024-03-15",
        "result": "Godkendt",
        "mileage": 87432,
        "next_inspection_date": "2026-03-15"
      }
    },
    "environment": {
      "co2_emission": 149,
      "euro_norm": "Euro 6",
      "fuel_usage": 18.5,
      "particle_filter": 1,
      "driving_noise": 72
    },
    "equipment": [
      { "id": "ABS", "name": "ABS bremser", "quantity": 1 },
      { "id": "AIRBAG", "name": "Airbag", "quantity": 6 },
      { "id": "ESP", "name": "ESP", "quantity": 1 }
    ]
  },
  "source": "Motorregistret via nummerplade-tjek.dk",
  "timestamp": "2026-03-17T10:30:00.000Z"
}

Felter i vehicle-objektet

Felt Type Beskrivelse
registration_number string Nummerpladen i standardformat
status string Registreringsstatus (fx "Registreret", "Afmeldt")
type string Køretøjstype (fx "Personbil", "Varebil")
make string Bilmærke (fx "AUDI", "BMW", "VOLKSWAGEN")
model string Model (fx "A6 AVANT", "3-SERIE")
variant string Variant (fx "3.0 TDI QUATTRO")
model_year number Modelår
color string Farve (fx "Sort", "Hvid")
chassis_type string Karosseritype (fx "Stationcar", "Sedan")
vin string Stelnummer (Vehicle Identification Number)
engine_cylinders number Antal cylindre
engine_volume number Motorvolumen i kubikcentimeter
engine_power number Motoreffekt i kW
fuel_type string Brændstoftype (fx "Benzin", "Diesel", "El")
is_hybrid boolean Om køretøjet er en hybrid
total_weight number Totalvægt i kg
seats number Antal siddepladser
doors number Antal døre
trailer_maxweight_withbrakes number Maks. tilladelig totalvægt for påhængskøretøj med bremser (kg)

Felter i mot_info-objektet

Felt Type Beskrivelse
date string Dato for seneste syn (ISO 8601)
result string Resultat af seneste syn (fx "Godkendt", "Ikke godkendt")
mileage number Kilometertal ved seneste syn
next_inspection_date string Dato for næste periodiske syn (ISO 8601)

Felter i environment-objektet

Felt Type Beskrivelse
co2_emission number CO2-udledning i g/km
euro_norm string Euronorm (fx "Euro 6", "Euro 5")
fuel_usage number Brændstofforbrug i km/l
particle_filter number Partikelfilter (1 = ja, 0 = nej)
driving_noise number Støjniveau ved kørsel i dB

Felter i equipment-arrayet

Felt Type Beskrivelse
id string Udstyrets identifikationskode
name string Udstyrets navn (fx "ABS bremser", "Airbag")
quantity number Antal (fx 6 airbags)

Alle felter kan være null eller mangle helt, hvis Motorregistret ikke har data for det pågældende køretøj. Din kode bør håndtere manglende felter.

Fejlkoder

Når noget går galt, returnerer API-et en JSON-body med et error-felt og en passende HTTP-statuskode:

HTTP-kode Betydning Typisk årsag
400 Ugyldig forespørgsel Nummerpladen har et ugyldigt format
401 Ikke autoriseret API-nøgle mangler eller er ugyldig
403 Adgang nægtet API-nøglen er deaktiveret (typisk manglende backlink)
404 Ikke fundet Nummerpladen findes ikke i Motorregistret
429 For mange forespørgsler Den daglige grænse på 500 opslag er nået
502 Serverfejl Midlertidig fejl i forbindelse med datakilden

Fejlsvar har altid denne struktur:

{
  "error": "Beskrivelse af fejlen"
}

Kodeeksempler

Herunder finder du eksempler på, hvordan du bruger API-et i de mest almindelige programmeringssprog.

JavaScript (fetch)

async function hentKøretøj(nummerplade, apiKey) {
  const response = await fetch(
    `https://nummerplade-tjek.dk/api/v1/vehicles/${nummerplade}`,
    {
      headers: {
        'X-API-Key': apiKey,
      },
    }
  );

  if (!response.ok) {
    const fejl = await response.json();
    throw new Error(fejl.error || 'Ukendt fejl');
  }

  const data = await response.json();
  return data;
}

// Brug:
hentKøretøj('AB12345', 'dk_live_abc123def456')
  .then((resultat) => {
    console.log(resultat.data.vehicle.make);
    console.log(resultat.data.vehicle.model);
  })
  .catch((fejl) => {
    console.error('Fejl:', fejl.message);
  });

Python (requests)

import requests

def hent_køretøj(nummerplade: str, api_key: str) -> dict:
    url = f"https://nummerplade-tjek.dk/api/v1/vehicles/{nummerplade}"
    headers = {"X-API-Key": api_key}

    response = requests.get(url, headers=headers)
    response.raise_for_status()

    return response.json()


# Brug:
try:
    resultat = hent_køretøj("AB12345", "dk_live_abc123def456")
    køretøj = resultat["data"]["vehicle"]
    print(f"{køretøj['make']} {køretøj['model']} ({køretøj['model_year']})")
except requests.HTTPError as e:
    print(f"Fejl: {e.response.json().get('error', 'Ukendt fejl')}")

PHP (cURL)

<?php
function hentKoeretoel(string $nummerplade, string $apiKey): array {
    $url = "https://nummerplade-tjek.dk/api/v1/vehicles/" . urlencode($nummerplade);

    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            "X-API-Key: " . $apiKey,
        ],
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    $data = json_decode($response, true);

    if ($httpCode !== 200) {
        throw new Exception($data['error'] ?? 'Ukendt fejl');
    }

    return $data;
}

// Brug:
try {
    $resultat = hentKoeretoel("AB12345", "dk_live_abc123def456");
    $bil = $resultat['data']['vehicle'];
    echo $bil['make'] . " " . $bil['model'] . " (" . $bil['model_year'] . ")\n";
} catch (Exception $e) {
    echo "Fejl: " . $e->getMessage() . "\n";
}
?>

Vilkår

Når du bruger vores API, accepterer du følgende vilkår:

Ofte stillede spørgsmål

Er API-nøglen virkelig gratis?

Ja. Du betaler ikke noget for at bruge vores API. Til gengæld beder vi om, at du placerer et link til nummerplade-tjek.dk på din hjemmeside. Så længe linket er aktivt, har du fuld adgang til 500 opslag om dagen.

Hvad sker der, hvis jeg fjerner mit backlink?

Vi tjekker backlinks ugentligt. Hvis vi ikke kan finde dit link i tre på hinanden følgende uger, deaktiverer vi nøglen automatisk. Du kan genaktivere den ved at tilføje linket igen og kontakte os på [email protected].

Kan jeg få flere end 500 opslag om dagen?

Standard-grænsen er 500 daglige opslag. Har du brug for mere, så skriv til [email protected], og vi finder en løsning.

Hvilke data returnerer API-et?

Du får adgang til køretøjsoplysninger fra Motorregistret: mærke, model, variant, årgang, farve, motor, brændstof, vægt, sæder, døre, VIN, synshistorik, euronorm, CO2-udledning, brændstofforbrug og udstyr. Forsikringsoplysninger er ikke inkluderet i API-svaret.

Kom i gang

Klar til at hente køretøjsdata? Registrer dig her og få din API-nøgle med det samme. Processen tager under fem minutter, og du kan begynde at lave opslag lige efter.

Har du spørgsmål, der ikke er dækket her? Skriv til os på [email protected], så vender vi tilbage hurtigst muligt.