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.
Path Parameters
Your unique reference for this listing (max 64 characters)
Request Body
Dealer profile UUID. Required if dealerLocationCode is not provided.
Location code. Required if dealerProfileId is not provided.
Listing status: active, pending, sold, or draft
Detailed description (max 15,000 characters)
Price in EUR. Required when status is active or pending.
Vehicle brand (e.g., “Opel”, “Volkswagen”)
Vehicle model (e.g., “Corsa”, “Golf”)
Build year (1900 - current year + 1)
Fuel type: petrol, diesel, electric, hybrid, lpg, cng, other
Transmission: manual, automatic, semi-automatic, other
Body type: hatchback, sedan, suv, wagon, convertible, van, coupe, other
Belgian postal code. Required for active listings.
City name. Required for active listings.
Province name. Required for active listings.
Array of feature objects with category and name
Array of image URLs or objects with url and position. Images are automatically mirrored to Okasie storage.
Response
true if newly created, false if updated
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",
"description": "Compact city car in excellent condition",
"price": 19995,
"brand": "Opel",
"model": "Corsa",
"year": 2021,
"mileage": 25000,
"fuelType": "petrol",
"transmission": "automatic",
"bodyType": "hatchback",
"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
| Status | Code | Description |
|---|
| 400 | INVALID_TITLE | Title is required |
| 400 | INVALID_PRICE | Price required for active listings |
| 400 | INVALID_LOCATION | postalCode, city, and province required |
| 400 | INVALID_PROFILE | dealerProfileId or dealerLocationCode required |
| 403 | PROFILE_FORBIDDEN | No access to requested profile |
| 422 | VALIDATION_FAILED | Payload validation failed |