BilPorten
BilPorten API v1

Bildata og lager­integration – via ét simpelt REST-API

Søg i alle aktive annoncer, hent komplette bildata med billeder, eller synkronisér hele dit lager til BilPorten automatisk fra dit DMS. JSON over HTTPS, nøglebaseret adgang, dansk support.

Pris aftales individuelt ud fra brug. Skriv til api@bilporten.dk – vi svarer inden for én hverdag.

Hvem er API'et til?

Forhandlere

Send hele lageret til BilPorten fra jeres DMS/lagersystem. Nye biler kommer online automatisk, solgte biler fjernes.

Udviklere & apps

Byg prisværktøjer, sammenligningssider eller apps oven på Danmarks reneste datasæt af brugte biler.

Leasing & finans

Hent aktuelle markedspriser og udbud til værdiansættelse og restværdi-modeller.

Autentificering

Alle kald kræver en API-nøgle, som du får af os efter aftale. Nøglen sendes i headeren X-Api-Key. Nøgler kan lukkes øjeblikkeligt fra vores side, og vi gemmer kun en hash af dem.

curl "https://bilporten.dk/api/v1/listings?maerke=volkswagen&pris_til=200000" \
  -H "X-Api-Key: bp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Endpoints

MetodeStiBeskrivelseAdgang
GET/api/v1/listingsSøg og filtrér aktive annoncerread
GET/api/v1/listings/{id}Én annonce med alle billederread
POST/api/v1/inventory/syncFuld lagersynkronisering (forhandlere)write · efter aftale

GET/api/v1/listings

Returnerer 24 annoncer pr. side, nyeste først. Alle parametre er valgfrie og kan kombineres.

ParameterEksempelBeskrivelse
qgolf automat aarhusFritekst – forstår også “under 150.000”, drivmiddel og region
maerkevolkswagenMærke-slug
modelgolfModel-slug (kræver maerke)
pris_fra / pris_til50000 / 200000Prisinterval i DKK
aargang_fra / aargang_til2018 / 2024Årgang
km_fra / km_til0 / 100000Kilometer
drivmiddelel,hybridKommasepareret liste
gearautomatiskmanuel | automatisk
karosserisuv,stationcarKommasepareret liste
regionMidtjyllandRegion
saelgerforhandlerprivat | forhandler
sortpris_stigendenyeste | pris_stigende | pris_faldende | km_stigende | aargang_faldende
side2Sidetal (1-baseret)

Svar

{
  "data": [
    {
      "id": 13,
      "url": "https://bilporten.dk/bil/hyundai-kona-1-2-puretech-sport-190-hk-2015-13",
      "seller_type": "dealer",
      "dealer": { "name": "Demo Biler ApS", "url": "https://bilporten.dk/forhandler/demo-biler-aps", "city": "Tønder" },
      "make": "Hyundai", "model": "Kona", "variant": "1.2 PureTech Sport 190 hk",
      "body_type": "suv", "model_year": 2015, "mileage_km": 143000,
      "fuel": "hybrid", "transmission": "automatisk", "horsepower": 190,
      "price_dkk": 240400, "price_original_dkk": null, "price_new_dkk": 457000,
      "equipment": ["Adaptiv fartpilot", "Apple CarPlay", "Bakkamera"],
      "location": { "zip": "4700", "city": "Næstved", "region": "Sjælland" },
      "images": [{ "url": "…/uploads/listings/…/a1.webp", "thumb_url": "…/a1-thumb.webp", "width": 1600, "height": 1067 }],
      "published_at": "2026-09-09T13:41:02.000Z"
    }
  ],
  "meta": { "total": 36, "page": 1, "pages": 2, "per_page": 24 }
}

GET/api/v1/listings/{id}

Samme struktur som ovenfor, men med alle billeder og fuld beskrivelse. Returnerer 404 for solgte eller inaktive annoncer.

curl "https://bilporten.dk/api/v1/listings/13" -H "X-Api-Key: bp_live_…"

Lagersynkronisering for forhandlere

Med en write-nøgle kan jeres lagersystem sende hele lageret som ét JSON-dokument, fx hver time. Vi opretter nye biler, opdaterer pris og km på eksisterende, og markerer biler, der ikke længere er med, som solgt. Vi understøtter også import fra de gængse danske DMS-formater – kontakt os, så sætter vi det op sammen med jer.

POST https://bilporten.dk/api/v1/inventory/sync
X-Api-Key: bp_live_…
Content-Type: application/json

{
  "vehicles": [
    {
      "external_id": "DMS-48213",
      "plate": "AB12345",              // bruges kun til opslag – vises aldrig offentligt
      "make": "Volkswagen", "model": "Golf", "variant": "1.5 TSI Life",
      "model_year": 2021, "mileage_km": 48000, "fuel": "benzin", "transmission": "automatisk",
      "price_dkk": 219900, "description": "…",
      "equipment": ["Apple CarPlay", "Bakkamera"],
      "images": ["https://dms.example.dk/img/48213-1.jpg"]
    }
  ]
}

Datafelter

FeltTypeBeskrivelse
idintegerAnnoncens offentlige id (bruges i /listings/{id})
urlstringLink til annoncen på bilporten.dk
seller_type"dealer" | "private"Sælgertype
dealerobject | null{ name, url, city } for forhandlerannoncer
make, model, variantstringMærke, model og variant
body_typestringsuv, stationcar, hatchback, sedan, …
model_yearintegerÅrgang
mileage_kmintegerKørte kilometer
fuelstringbenzin, diesel, el, hybrid, plugin_hybrid, gas, andet
transmissionstringmanuel | automatisk
horsepower, range_km, battery_kwhinteger | nullTekniske data
price_dkkintegerAktuel pris i DKK inkl. moms
price_original_dkkinteger | nullPris før seneste prisfald
equipmentstring[]Udstyrsliste
locationobject{ zip, city, region } – aldrig gadeadresse
images[]object[]{ url, thumb_url, width, height } i WebP
published_atISO 8601Tidspunkt for publicering

Fejl og grænser

  • 401 unauthorizedManglende eller ugyldig nøgle
  • 404 not_foundAnnoncen findes ikke / er ikke aktiv
  • 429 rate_limitedOver 1.000 kald i timen pr. nøgle (kan hæves efter aftale)
  • 400 bad_requestUgyldige parametre
{ "error": { "code": "rate_limited", "message": "For mange kald. Grænsen er 1.000 kald i timen." } }

Vilkår og GDPR

  • API'et udleverer aldrig personoplysninger: ingen nummerplader, stelnumre, private sælgeres navne, telefonnumre eller adresser.
  • Data må vises med kildeangivelse (“Kilde: BilPorten”) og link til annoncen. Videresalg af rå data kræver særskilt aftale.
  • Serverne står i EU. Alle kald logges med nøgle-id og tidspunkt i 30 dage af sikkerhedshensyn.
  • Priser aftales individuelt (typisk fast månedspris efter kaldsvolumen). Forhandlere på Pro og Ubegrænset får lagersynkronisering med i abonnementet.

Klar til at komme i gang?

Skriv hvad du vil bygge, og hvor mange kald du forventer – så sender vi en nøgle til test og et pristilbud.

api@bilporten.dkeller se forhandlerløsningen