Skip to main content
PUT
/
api
/
external
/
v1
/
listings
/
{externalReference}
curl -X PUT "https://www.okasie.be/api/external/v1/listings/MY-REF-001" \
  -H "Authorization: Bearer YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "dealerProfileId": "84118503-030b-45f3-a867-c77d54d00b4c",
    "status": "active",
    "title": "Opel Corsa 1.2 Turbo GS Line",
    "description": "Compact city car in excellent condition",
    "price": 19995,
    "brand": "Opel",
    "model": "Corsa",
    "variant": "GS Line",
    "year": 2021,
    "mileage": 25000,
    "fuelType": "petrol",
    "transmission": "automatic",
    "driveType": "FWD",
    "gears": 6,
    "bodyType": "hatchback",
    "engine": "1.2 Turbo 100pk",
    "color": "Blauw",
    "interiorColor": "Zwart",
    "interiorMaterial": "Stof",
    "doors": 5,
    "seats": 5,
    "powerKw": 74,
    "weight": 1180,
    "previousOwners": 1,
    "serviceHistory": true,
    "warranty": true,
    "warrantyMonths": 12,
    "co2Emission": 118,
    "co2Type": "WLTP",
    "emissionClass": "Euro 6d",
    "paintType": "Metallic",
    "fuelConsumption": 5.1,
    "condition": "used",
    "vehicleType": "margin",
    "firstRegistration": "2021-03",
    "carPassUrl": "https://public.car-pass.be/vhr/example",
    "postalCode": "9000",
    "city": "Gent",
    "province": "Oost-Vlaanderen",
    "features": [
      {"category": "comfort", "name": "Airconditioning"},
      {"category": "safety", "name": "ABS"}
    ],
    "images": [
      "https://partner.example/car1.jpg",
      {"url": "https://partner.example/car2.jpg", "position": 1}
    ]
  }'
{
  "data": {
    "listingId": "0c52cae7-bcaa-4b37-be0d-1b78c92c5225",
    "externalReference": "MY-REF-001",
    "status": "active",
    "created": true
  }
}

Create or Update Listing

Upsert a vehicle listing by external reference. Creates a new listing if it doesn’t exist, or updates the existing one.
Requires the write:listings scope. Contact support to enable write access.
PUT is a full replacementThe PUT operation replaces the entire listing. Fields not included in your request will be set to null. Always send ALL fields with every request, even when updating an existing listing.

Path Parameters

externalReference
string
required
Your unique reference for this listing (max 64 characters)

Request Body

Use these JSON field names in API payloads. Dashboard HTML field names are not the API contract unless they are listed here as aliases.

Car-Pass / carpass

Use carPassUrl for Car-Pass. The search term carpass is intentionally listed here as an alias for partners who search without the hyphen. Accepted input aliases are carPass, car_pass_url, and carPassNumber, but new integrations should send carPassUrl.

JSON Field Names

FieldRequiredDescription
externalReferenceYes for bulk upsertYour unique listing reference. For single upsert this is the path parameter
external_referenceAliasAccepted bulk upsert alias for externalReference; prefer externalReference
dealerProfileIdYes, unless dealerLocationCode is usedDealer profile UUID
dealerLocationCodeYes, unless dealerProfileId is usedDealer location code from the Okasie dashboard
statusNoactive, pending, sold, or draft
titleYesListing title
descriptionNoListing description
priceYes for active/pendingPrice in EUR
currencyNoISO 4217 currency code, defaults to EUR
brandNoVehicle brand
modelNoVehicle model
variantNoModel variant or trim
customTypeNoCustom vehicle type label. Falls back to variant when omitted
yearNoBuild year
mileageNoMileage in kilometers
fuelTypeNoFuel type
transmissionNoTransmission type
bodyTypeNoBody type
engineNoEngine description
driveTypeNoDrive type
gearsNoNumber of gears
colorNoExterior color
interiorColorNoInterior color
interiorMaterialNoInterior material
doorsNoNumber of doors
seatsNoNumber of seats
powerKwNoEngine power in kW
weightNoVehicle weight in kg
previousOwnersNoNumber of previous owners
serviceHistoryNoWhether service history is available
warrantyNoWhether warranty is included
warrantyMonthsNoWarranty duration in months
co2EmissionNoCO2 emissions in g/km
co2TypeNoWLTP or NEDC
emissionClassNoEuro emission class
paintTypeNoPaint type
fuelConsumptionNoFuel consumption in L/100km
conditionNoVehicle condition
conditionTagsNoArray of condition tags, max 6
vehicleTypeNoVAT regime: margin or btw
firstRegistrationNoFirst registration date, format YYYY-MM
vinNoVehicle identification number
carPassUrlNoPreferred Car-Pass field. Accepts a public.car-pass.be or car-pass.be URL, or a legacy 11-digit certificate number
carPassAliasAccepted alias for carPassUrl; prefer carPassUrl
car_pass_urlAliasAccepted alias for carPassUrl; prefer carPassUrl
carPassNumberAliasAccepted alias for carPassUrl; prefer carPassUrl
postalCodeYes for active listingsBelgian postal code
cityYes for active listingsCity
provinceYes for active listingsProvince
latitudeNoLatitude
longitudeNoLongitude
location.postalCodeNoNested location postal code alternative
location.cityNoNested location city alternative
location.provinceNoNested location province alternative
location.latitudeNoNested location latitude alternative
location.longitudeNoNested location longitude alternative
features[].categoryNoFeature category
features[].nameNoFeature name
features[].featureNoAccepted alias for feature name
images[]NoImage URL string
images[].urlNoImage URL
images[].imageUrlNoAccepted alias for images[].url
images[].positionNoImage order
dealerProfileId
string
Dealer profile UUID. Required if dealerLocationCode is not provided.
dealerLocationCode
string
Location code. Required if dealerProfileId is not provided.
status
string
default:"draft"
Listing status: active, pending, sold, or draft
title
string
required
Listing title
description
string
Detailed description (max 15,000 characters)
price
number
Price in EUR. Required when status is active or pending.
currency
string
ISO 4217 currency code. Defaults to EUR.
brand
string
Vehicle brand (e.g., “Opel”, “Volkswagen”)
model
string
Vehicle model (e.g., “Corsa”, “Golf”)
year
integer
Build year (1900 - current year + 1)
mileage
integer
Kilometers driven
fuelType
string
Fuel type: petrol, diesel, electric, hybrid, lpg, cng, other
transmission
string
Transmission: manual, automatic, semi-automatic, other
bodyType
string
Body type: hatchback, sedan, suv, wagon, convertible, van, coupe, other
variant
string
Model variant/trim level (e.g., “GT Line”, “Signature”)
customType
string
Custom vehicle type label. If omitted, variant is also used as the custom type label.
engine
string
Engine description (e.g., “1.6 TDI 115pk”, “2.0 TSI”)
driveType
string
Drive type: FWD, RWD, AWD, 4WD, 4x4
gears
integer
Number of gears (1-12)
color
string
Exterior color
interiorColor
string
Interior color
interiorMaterial
string
Interior material: Leder, Stof, Alcantara, Kunstleder, Leder/Stof, Leder/Alcantara
weight
integer
Vehicle weight in kg
previousOwners
integer
Number of previous owners
serviceHistory
boolean
Service history available
warranty
boolean
Warranty included
warrantyMonths
integer
Warranty duration in months
co2Emission
integer
CO2 emissions in g/km
co2Type
string
CO2 measurement standard: WLTP or NEDC
emissionClass
string
Euro emission class (e.g., “Euro 6d”)
paintType
string
Paint type: Metallic, Parelmoer, Mat, Uni
fuelConsumption
number
Fuel consumption in L/100km
condition
string
Vehicle condition: new, used, demo, oldtimer, damaged
conditionTags
array
Array of condition tag strings (max 6)
vehicleType
string
VAT regime: margin or btw
firstRegistration
string
First registration date (format: YYYY-MM)
doors
integer
Number of doors (1-10)
seats
integer
Number of seats (1-10)
powerKw
number
Engine power in kW
vin
string
Vehicle identification number
carPassUrl
string
Public Car-Pass URL from public.car-pass.be or car-pass.be, or a legacy 11-digit certificate number. Input aliases carPass, car_pass_url, and carPassNumber are also accepted.
postalCode
string
Belgian postal code. Required for active listings.
city
string
City name. Required for active listings.
province
string
Province name. Required for active listings.
latitude
number
Location latitude. Can also be sent as location.latitude.
longitude
number
Location longitude. Can also be sent as location.longitude.
location
object
Optional nested location object with postalCode, city, province, latitude, and longitude.
features
array
Array of feature objects with category and name. feature is accepted as an alias for name.
images
array
Array of image URLs or objects with url/imageUrl and position. Images are automatically mirrored to Okasie storage.

Response

data.listingId
string
Okasie listing UUID
data.externalReference
string
Your provided reference
data.status
string
Current listing status
data.created
boolean
true if newly created, false if updated
data.warnings
object
Optional warnings (e.g., skipped images)
curl -X PUT "https://www.okasie.be/api/external/v1/listings/MY-REF-001" \
  -H "Authorization: Bearer YOUR_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "dealerProfileId": "84118503-030b-45f3-a867-c77d54d00b4c",
    "status": "active",
    "title": "Opel Corsa 1.2 Turbo GS Line",
    "description": "Compact city car in excellent condition",
    "price": 19995,
    "brand": "Opel",
    "model": "Corsa",
    "variant": "GS Line",
    "year": 2021,
    "mileage": 25000,
    "fuelType": "petrol",
    "transmission": "automatic",
    "driveType": "FWD",
    "gears": 6,
    "bodyType": "hatchback",
    "engine": "1.2 Turbo 100pk",
    "color": "Blauw",
    "interiorColor": "Zwart",
    "interiorMaterial": "Stof",
    "doors": 5,
    "seats": 5,
    "powerKw": 74,
    "weight": 1180,
    "previousOwners": 1,
    "serviceHistory": true,
    "warranty": true,
    "warrantyMonths": 12,
    "co2Emission": 118,
    "co2Type": "WLTP",
    "emissionClass": "Euro 6d",
    "paintType": "Metallic",
    "fuelConsumption": 5.1,
    "condition": "used",
    "vehicleType": "margin",
    "firstRegistration": "2021-03",
    "carPassUrl": "https://public.car-pass.be/vhr/example",
    "postalCode": "9000",
    "city": "Gent",
    "province": "Oost-Vlaanderen",
    "features": [
      {"category": "comfort", "name": "Airconditioning"},
      {"category": "safety", "name": "ABS"}
    ],
    "images": [
      "https://partner.example/car1.jpg",
      {"url": "https://partner.example/car2.jpg", "position": 1}
    ]
  }'
{
  "data": {
    "listingId": "0c52cae7-bcaa-4b37-be0d-1b78c92c5225",
    "externalReference": "MY-REF-001",
    "status": "active",
    "created": true
  }
}

Error Responses

StatusCodeDescription
400INVALID_TITLETitle is required
400INVALID_PRICEPrice required for active listings
400INVALID_LOCATIONpostalCode, city, and province required
400INVALID_PROFILEdealerProfileId or dealerLocationCode required
403PROFILE_FORBIDDENNo access to requested profile
422VALIDATION_FAILEDPayload validation failed

Enum Values Reference

driveType

ValueDescription
FWDFront-wheel drive (Voorwielaandrijving)
RWDRear-wheel drive (Achterwielaandrijving)
AWDAll-wheel drive (Vierwielaandrijving)
4WDFour-wheel drive
4x4Four-wheel drive

interiorMaterial

ValueDescription
LederLeather
StofFabric
AlcantaraAlcantara
KunstlederSynthetic leather
Leder/StofLeather/Fabric combination
Leder/AlcantaraLeather/Alcantara combination

paintType

ValueDescription
MetallicMetallic paint
ParelmoerPearl paint
MatMatte paint
UniSolid/plain paint

co2Type

ValueDescription
WLTPWorldwide Harmonised Light Vehicle Test Procedure
NEDCNew European Driving Cycle (legacy)

condition

ValueDescription
newNew vehicle
usedUsed vehicle
demoDemo/showroom vehicle
oldtimerClassic/vintage vehicle
damagedDamaged vehicle

vehicleType

ValueDescription
marginMargin scheme (no VAT deductible)
btwVAT scheme (VAT deductible)