KVD API: bilar på auktion och till fast pris från kvd.se i JSON
API:et läser personbilarna på kvd.se så som de visas för en besökare utan inloggning, både auktioner och bilar till fast pris, och svarar i JSON: modell, modellår, mätarställning, drivmedel, växellåda, ort och framför allt vad det är för belopp som står på bilen. Hos KVD kan samma prisfält vara ett ledande bud, ett utropspris eller ett fast pris, och `price_basis` säger vilket. Avgifterna ligger i egna fält, med olika belopp för privatpersoner och företag, liksom bilens värdering och om reservationspriset är nått. Tjänsten är till för den som följer marknaden från köparsidan. Den är inget verktyg för att lämna in en bil till KVD eller för handlare som vill koppla sina system mot KVD, och bud eller köp går inte att göra genom den.
Endpoints
| endpoint | Vad som kommer tillbaka | Obligatoriska |
|---|---|---|
| search | Fritextsökning bland personbilarna på kvd.se, till exempel ”Volvo XC60”. Varje rad har id, titel, adress, pris med `price_basis` (`current_bid`, `start_bid` eller `buy_now`), ledande bud, utropspris, fast pris och om det går att köpa direkt, värdering, avgifter, reservationspris nått eller inte, sluttid, status, fordonsdata och ort. 1–30 bilar per sida (10 som standard), med `total` för antalet träffar och `source_total` för allt som ligger ute. | query |
| listing | Hela objektet via ett id från sökningen: allt från sökraden plus beskrivningen, testresultatet med betyg per område (motor och växellåda, exteriör, interiör, teknik och utrustning) och anmärkningar per kategori, till exempel bromsar och däck, utrustningslistan, servicehistorik, antal tidigare ägare, besiktning, mått och vikter, bilder och anläggningen där bilen står. | id |
Varje anrop debiteras i krediter. Misslyckade och blockerade anrop är gratis.
Fungerande exempel
Av de 20 XC60:orna låg 16 till fast pris och 4 på auktion. För bilarna till fast pris är `price` det fasta priset och `estimate` null, men `dealer_price_estimate` finns: 409 800 kr mot 450 000 kr för B4:an från 2024. På auktionerna är `price` antingen det ledande budet (225 500 kr på T8:an, där `estimate` är 350 000 kr och reservationspriset ännu inte är nått) eller, så länge ingen har budat, utropspriset: B5:an från 2021 stod på 172 000 kr och hade dessutom ett fast pris på 324 900 kr som inte gick att använda (`buy_now_available: false`). Avgiften heter `biddingFee` på auktion och `mediationFee` vid fast pris, och företagsbeloppet är högre i båda fallen.
curl -X POST https://api.reefapi.com/kvd/v1/search \
-H "x-api-key: DIN_NYCKEL" \
-H "content-type: application/json" \
-d '{"query": "Volvo XC60", "limit": 20}'{
"ok": true,
"data": {
"items": [
{
"id": "308462",
"title": "Volvo XC60 T8 AWD Recharge (390hk)",
"url": "https://www.kvd.se/auktioner/volvo-xc60-t8-awd-recharge-390hk-308462",
"currency": "SEK",
"price": 225500,
"price_basis": "current_bid",
"auction_type": "BIDDING",
"state": "OPEN",
"current_bid": 225500,
"has_bids": true,
"start_bid": 175000,
"buy_now_price": null,
"buy_now_available": false,
"estimate": 350000,
"dealer_price_estimate": 350000,
"fees": { "biddingFee": 6900, "biddingFeeCorporate": 9875, "mediationFee": 0, "mediationFeeCorporate": 0 },
"reservation_price_reached": false,
"ends_at": "2026-10-28T09:55:00+00:00",
"vehicle": { "brand": "Volvo", "familyName": "XC60", "modelYear": 2020, "odometerReading": 96190, "odometerUnit": "km", "gearbox": "Automatic", "body": "SUV", ... },
"location": { "city": "Kungälv", ... }
},
{
"id": "305235",
"title": "Volvo XC60 B4 AWD Mildhybrid, Diesel (197hk)",
"url": "https://www.kvd.se/fast-pris/volvo-xc60-b4-awd-mildhybrid-diesel-197hk-305235",
"currency": "SEK",
"price": 409800,
"price_basis": "buy_now",
"auction_type": "BUY_NOW",
"state": "OPEN",
"current_bid": null,
"has_bids": false,
"buy_now_price": 409800,
"buy_now_available": true,
"estimate": null,
"dealer_price_estimate": 450000,
"fees": { "biddingFee": 0, "biddingFeeCorporate": 0, "mediationFee": 8325, "mediationFeeCorporate": 11800 },
"ends_at": null,
"vehicle": { "modelYear": 2024, "odometerReading": 71930, ... },
"location": { "city": "Svedala", ... }
},
{
"id": "308607",
"title": "Volvo XC60 B5 2WD Mildhybrid, Bensin (250hk)",
"price": 172000,
"price_basis": "start_bid",
"auction_type": "BIDDING",
"state": "OPEN",
"current_bid": null,
"has_bids": false,
"start_bid": 172000,
"buy_now_price": 324900,
"buy_now_available": false,
"estimate": 345000,
"dealer_price_estimate": 345000,
"reservation_price_reached": false,
"ends_at": "2026-10-28T09:03:00+00:00",
"vehicle": { "modelYear": 2021, "odometerReading": 92990, ... },
...
},
...
],
"total": 70,
"source_total": 1551,
"page": 1,
"limit": 20,
"next_page": 2
},
"meta": { "record_count": 20, "cache_hit": false, "mode": "live" }
}KVD-scraper i Python: totalen, nollbuden och auktionerna som inte har öppnat
Den första fällan är räknaren. När motorn byggdes, den 2 oktober 2026, svarade kvd.se med samma totalsiffra, 1 463, på varje sökning, även på en påhittad fråga utan en enda träff. Antalet träffar stod i ett annat fält: 227 för Volvo, 97 för BMW. Ett skript som läser fel fält tror att varje sökning matchar hela utbudet. Här heter de två sakerna `total` (träffar) och `source_total` (allt som ligger ute, 1 551 den 26 oktober).
Den andra är budet som inte finns. En auktion utan bud har ändå ett högsta bud i källans data, och det är 0. Den som tar det för ett riktigt bud ger varje nyöppnad auktion ett ledande bud på 0 kr. Motorn räknar bara ett positivt belopp som bud; annars är `current_bid` null och `has_bids` false.
Den tredje gäller auktioner som ännu inte har öppnat för bud. Där utropspriset brukar stå kan kvd.se visa ett preliminärt belopp, eller bara att priset kommer snart. Det är inget utrop, och motorn lägger det inte i `start_bid`: i vår V70-sökning hade fyra sådana bilar varken pris eller utropspris.
Bestäm före första körningen vilket belopp ni sparar per bil: ledande bud, utropspris eller fast pris. I XC60-sökningen låg 16 av 20 bilar till fast pris, och ett fast pris går inte att jämföra med ett bud som fortfarande kan stiga.
Gränser och ärliga noteringar
- KVD har ingen del i tjänsten: den är inofficiell och bygger inte på något avtal med KVD.
- Bara personbilar ingår. Sökningen tar enbart fritext: det finns inga filter på pris, modellår eller mätarställning och ingen egen sortering.
- Någon historik finns inte: API:et visar det som ligger ute nu, inte avslutade auktioner eller gamla priser. `sold_for` syns bara på objekt som fortfarande ligger kvar i sökningen, som en XC60 till fast pris med status WINNER_CHECKOUT_PENDING och `sold_for` 176 800 kr.
- `price` kan saknas eller vara 0. Bland de 10 V70-träffarna var 4 i status PREPARING och saknade pris helt (null), och 4 auktioner hade utropspris 0 kr. På en av dem, som ännu inte öppnat, var därför `price` 0: det betyder utrop från noll, inte en bil som kostar noll.
- `estimate` fanns bara på auktioner som var öppna för bud, 8 av 8 i våra två sökningar och alltid lika med `dealer_price_estimate`. Bilarna till fast pris hade bara `dealer_price_estimate`.
- Avgifterna läggs inte på något belopp, och vi räknar inte fram moms eller någon slutsumma. Om momsen är avdragsgill står i `vehicle.deductibleVat`.
- Svaren innehåller bilens registreringsnummer och chassinummer. Vi har tagit bort dem ur exemplet; för en prisanalys behövs de inte.
- `page` går upp till 100 och `limit` till 30, men djupa sidor har vi inte gått igenom. `search` kostar 3 krediter per anrop oavsett `limit`, `listing` 2.
- Bud och priser hämtas från kvd.se i samma stund som anropet görs och kan ha hunnit ändras till nästa anrop.