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 krediterer os med et synligt link til autotelli.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 en kreditering.
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.
Hvad er Motorregistret (DMR)?
Motorregistret (Det Digitale Motorregister, DMR) er det officielle danske register over køretøjer. Det administreres af Motorstyrelsen, og det er det samme register, som politiet, forsikringsselskaber og synsvirksomheder bruger. Vores API leverer data derfra. Vi tjekker Motorstyrelsens udgivelser hver time og henter nye data automatisk, så oplysningerne følger registrets seneste udgivelse. Det er ikke realtidsopslag, men data er aldrig forældede i ugevis.
Sådan får du en API-nøgle
Processen tager under fem minutter, og du kan begynde at lave opslag med det samme.
- Tilføj et synligt link til autotelli.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://autotelli.dk. Det vigtige er, at det er synligt på en offentligt tilgængelig side. - Registrer dig på vores registreringsside med din e-mail, din hjemmesides URL og den specifikke URL, hvor linket er placeret.
- 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,
"first_reg_date": "2019-03-22",
"status_date": "2019-03-22",
"usage": "Privat personkørsel",
"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,
"ev_consumption": null,
"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 |
first_reg_date | string | Første registreringsdato (fx "2019-03-22") |
status_date | string | Dato for seneste statusændring |
usage | string | Anvendelse (fx "Privat personkørsel", "Taxikørsel") |
curb_weight | number | Egenvægt i kg |
roadworthy_weight | number | Køreklar vægt (minimum) i kg |
max_speed | number | Tophastighed i km/t |
mileage | number | Senest indberettet km-stand |
traffic_damage | boolean | Registreret med trafikskade |
leasing_from / leasing_to | string | Leasingperiode, hvis køretøjet er leaset |
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 |
ev_consumption | number | Elforbrug i Wh/km (kun el- og plug-in-hybridbiler, ellers null) |
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.
Hvad indeholder API-et ikke?
For at sætte de rette forventninger: API-et returnerer køretøjets tekniske data og status fra Motorregistret. Det indeholder ikke ejerens navn, adresse eller personoplysninger, ingen forsikringsoplysninger og ingen tinglysning eller gæld. Vil du finde ud af, hvem der ejer en bil, kan du altså ikke bruge API-et til det, da de oplysninger er beskyttede.
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:
- 500 opslag pr. dag per API-nøgle. Tælleren nulstilles ved midnat UTC.
- Krediteringen skal forblive synlig. Det link til autotelli.dk, du angav ved registrering, skal blive på en offentligt tilgængelig side.
- Vi tjekker krediteringen ugentligt. Hvis vi ikke kan finde dit link i tre på hinanden følgende uger, sætter vi nøglen på pause. Du kan altid genaktivere ved at sætte linket op igen og kontakte os.
- Data hentes automatisk fra Motorregistret. Vores system tjekker for nye udgivelser hver time, så data følger registrets seneste udgivelse. Det er ikke realtidsopslag.
- Lokal caching er tilladt. Du må gerne cache API-svar lokalt for at reducere antallet af forespørgsler.
- Ingen videresalg af rå data. Du må bruge data i dine apps og tjenester, men du må ikke videresælge det rå JSON-svar til tredjeparter.
- Ekstra kreditering er velkommen. Du må også gerne skrive "Data fra Nummerplade Tjek" eller lignende i din app. Det er ikke et krav ud over linket, men vi sætter pris på det.
- Fair use. Automatiserede masseforespørgsler med det formål at kopiere hele databasen er ikke tilladt.
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 en kreditering: et synligt link til autotelli.dk på din hjemmeside. Så længe linket er aktivt, har du fuld adgang til 500 opslag om dagen.
Kan man slå et registreringsnummer op?
Ja. Du sender nummerpladen til endpointet, og API-et returnerer køretøjets oplysninger fra Motorregistret som struktureret JSON. Det dækker både person- og varebiler, motorcykler, trailere og campingvogne.
Kan man slå ejer op på en nummerplade?
Nej. API-et returnerer ikke ejerens navn, adresse eller personoplysninger. Du får kun køretøjets tekniske data og registreringsstatus fra Motorregistret. Ejeroplysninger er beskyttede og er ikke en del af API-svaret.
Hvordan finder jeg udstyrslisten på en bil?
Hvert opslag indeholder et equipment-array med det fabriksmonterede udstyr, Motorregistret har registreret, for eksempel ABS, airbags og ESP. Hvert element har et id, et navn og et antal.
Kan man slå stelnummer (VIN) op?
Bilens stelnummer (VIN) indgår som feltet vehicle.vin i svaret, når du slår nummerpladen op. Der er endnu ikke et selvstændigt endpoint, der slår op direkte på stelnummer, så du finder VIN via nummerpladen.
Hvad sker der, hvis jeg fjerner min kreditering?
Vi tjekker krediteringen ugentligt. Hvis vi ikke kan finde dit link i tre på hinanden følgende uger, sætter vi nøglen på pause. Du kan altid genaktivere den ved at sætte linket op 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, ejeroplysninger og tinglysning er ikke en del af 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. Vil du først læse mere om tilbuddet, kan du starte på siden om vores gratis nummerplade API.
Har du spørgsmål, der ikke er dækket her? Skriv til os på [email protected], så vender vi tilbage hurtigst muligt.