{ "error": { "code": "VALIDATION_FAILED", "message": "Payload validation failed", "issues": [ {"path": "doors", "message": "Number must be greater than or equal to 1", "code": "too_small"}, {"path": "carPassUrl", "message": "carPassUrl must be a public car-pass.be URL or an 11-digit certificate number", "code": "custom"} ] }}
{ "error": { "code": "INVALID_LOCATION", "message": "province, city en postalCode zijn verplicht voor een listing" }}
{ "error": { "code": "LISTING_LIMIT_REACHED", "message": "The dealer has reached the number of active listings of its Okasie plan; this listing was not published." }}
Listings
Create/Update Listing
Create or replace a vehicle listing by your own reference
{ "error": { "code": "VALIDATION_FAILED", "message": "Payload validation failed", "issues": [ {"path": "doors", "message": "Number must be greater than or equal to 1", "code": "too_small"}, {"path": "carPassUrl", "message": "carPassUrl must be a public car-pass.be URL or an 11-digit certificate number", "code": "custom"} ] }}
{ "error": { "code": "INVALID_LOCATION", "message": "province, city en postalCode zijn verplicht voor een listing" }}
{ "error": { "code": "LISTING_LIMIT_REACHED", "message": "The dealer has reached the number of active listings of its Okasie plan; this listing was not published." }}
Creates the listing when your reference is new for your API key, and replaces it when it already exists. The same call is used for every change: price, photos, status, anything.
Requires the write:listings scope and a dealer that is linked to your key (see Dealer access).
PUT is a full replacement.
Every field you leave out is cleared (stored as empty), except images and features: leave those out to keep what Okasie has, send [] to remove them all. Always send the complete car.
Unknown fields are ignored. A field that is not listed on this page is dropped without an error.
Numbers may be sent as a JSON number or as a numeric string (19995, "19995", "19995.50"). Use a dot as decimal separator and no thousands separator. Whole-number fields (marked integer) refuse decimals with 422.
0 means “not known” for mileage, powerKw, co2Emission, fuelConsumption, weight, previousOwners and warrantyMonths: Okasie stores it as empty.
Booleans (serviceHistory, warranty) must be JSON true or false. The string "true" is refused with 422.
null: only the fields marked nullable accept null. For any other text field null is refused with 422; for year, doors and seats it is refused as well. When you have no value, leave the field out.
Text is trimmed. A text that is empty after trimming is stored as empty.
Errors are described on Error Handling; the codes this endpoint can return are listed below.
Your own identifier for this car, for example the advertisement id in your system. It is unique per API key: the same reference always addresses the same Okasie listing. Leading and trailing spaces are removed. There is no fixed maximum length; keep it under 64 characters and URL-encode characters such as /, ? and #. On a key limited to dealers Okasie approved, a reference that was used for one dealer can never be used for another dealer (409 REFERENCE_OWNED_BY_OTHER_DEALER), also not after the listing was deleted. On other keys, sending the same reference with another dealer moves the listing to that dealer.
The dealer’s Okasie Dealer ID, for example OK-00148 (max 120 characters, case-insensitive). The dealer finds it in the Okasie dashboard under Integraties. Required when dealerProfileId is not sent. The dealer must be linked to your API key, else 403 PROFILE_FORBIDDEN. An unknown Dealer ID gives 400 INVALID_PROFILE.
The dealer’s profile UUID (max 120 characters), as returned in dealer.id by List Listings or id by List Locations. Required when dealerLocationCode is not sent. A value that is not a UUID is looked up as a Dealer ID.
One of active, pending, sold, draft (case-insensitive). Any other value gives 422.
active: published on okasie.be. Counts towards the dealer’s plan; refused with 409 LISTING_LIMIT_REACHED or 409 DEALER_PLAN_REQUIRED when the plan does not allow it.
pending: saved, not shown on the site.
draft: saved, not shown on the site.
sold: marked as sold and taken offline about an hour later (60 to 75 minutes) (its status then becomes inactive). Same effect as Delete Listing.
Asking price in euro, 0 or more, decimals allowed. Required and greater than 0 when status is active or pending (400 INVALID_PRICE). A negative price gives 422.
The heading of the listing, also used in its public URL. Must contain at least one non-space character: a missing or empty string gives 422, a string of spaces gives 400 INVALID_TITLE. No maximum is enforced; around 100 characters reads best.
postalCode and city are required for every status, also draft and sold (400 INVALID_LOCATION). province is required too, unless Okasie can derive it (see below). You may send these fields at the top level or inside location.
Max 120 characters. Only needed when postalCode is not a 4-digit Belgian code. Derived values: Brussel, Antwerpen, Limburg, Oost-Vlaanderen, West-Vlaanderen, Vlaams-Brabant, Waals-Brabant, Henegouwen, Luik, Luxemburg, Namen.
Max 120 characters. Make, for example Volkswagen. A make from List Makes and Models, or a known variant of it, is stored with Okasie’s name (VW becomes Volkswagen); any other make is stored as sent.
Max 120 characters. A model from List Makes and Models for that make is stored with Okasie’s spelling (XC 40 becomes XC40); any other model is stored as sent.
Engine power in kW, 0 or more. Okasie stores metric horsepower (kW x 1.35962, rounded); the read endpoints convert it back to whole kW, so 110.3 reads back as 110.
Max 60 characters. VAT regime: margin (margin scheme, the default) or vat (VAT deductible; btw is also treated as VAT deductible). Other values are stored as sent.
Up to 6 tags of max 32 characters each, shown on the listing and used by the site’s condition filter. Free text. More than 6 tags or a longer tag gives 422; empty tags are dropped.
Nullable. Car-Pass of the car. Accepted: a URL on public.car-pass.be or car-pass.be (stored as sent), or a certificate number with exactly 11 digits (spaces and dashes are removed). Anything else gives 422. The same value is also accepted under the names carPass, car_pass_url and carPassNumber; send only one of them. Read back as carPassUrl.
Equipment of the car. Leave it out to keep the current features; [] removes them all; otherwise the list replaces the current set. Items without a name are dropped, duplicates (same category and name, case-insensitive) are kept once, and only the first 50 are stored, without a warning.
Photos of the car, as URL strings or objects. Leave it out to keep the current photos; [] removes them all; otherwise the list replaces the current set, in the order of position. Empty entries are dropped and only the first 50 are used, without a warning. See Image Handling for the download rules.
The public page on okasie.be, for example https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi--0c52cae7-bcaa-4b37-be0d-1b78c92c5225. Only set when status is active; null otherwise. The path changes with the title.
One entry per skipped photo: source (the URL you sent, or null) and reason. reason is invalid-url (not an http or https URL), mirror_failed, or a short description in Dutch, such as Afbeelding ophalen mislukt (404) or Afbeeldings-URL is niet toegestaan.
{ "error": { "code": "VALIDATION_FAILED", "message": "Payload validation failed", "issues": [ {"path": "doors", "message": "Number must be greater than or equal to 1", "code": "too_small"}, {"path": "carPassUrl", "message": "carPassUrl must be a public car-pass.be URL or an 11-digit certificate number", "code": "custom"} ] }}
{ "error": { "code": "INVALID_LOCATION", "message": "province, city en postalCode zijn verplicht voor een listing" }}
{ "error": { "code": "LISTING_LIMIT_REACHED", "message": "The dealer has reached the number of active listings of its Okasie plan; this listing was not published." }}
Errors use the body {"error": {"code", "message"}}. The checks run in this order, and the first one that fails is returned.
Status
Code
When
401
UNAUTHORIZED
Missing or unknown API key, or the key lacks write:listings
429
RATE_LIMITED
Rate limit reached; the body has retryAt
400
INVALID_REFERENCE
The path reference is empty
400
INVALID_JSON
The body is not valid JSON
400
INVALID_BODY
The body is not a JSON object
422
VALIDATION_FAILED
A field breaks a rule on this page, title is missing or empty, or both dealerProfileId and dealerLocationCode are missing; see issues
400
INVALID_TITLE
title only contains spaces
400
INVALID_PRICE
status is active or pending and price is missing or 0
400
INVALID_PROFILE
No dealer found for dealerProfileId / dealerLocationCode
403
PROFILE_FORBIDDEN
The dealer is not linked to your key
400
INVALID_LOCATION
postalCode or city is missing, or province is missing for a postal code that is not a 4-digit Belgian code
409
REFERENCE_OWNED_BY_OTHER_DEALER
Keys limited to approved dealers only: this reference is already used by your key for a listing of another dealer
409
LISTING_LIMIT_REACHED
The resulting status is active and the dealer’s plan has no free place. Nothing was saved
409
DEALER_PLAN_REQUIRED
The resulting status is active and the dealer has no active plan. Nothing was saved
500
FETCH_FAILED / UPSERT_FAILED
Okasie could not read or save the listing. Nothing was saved; retry later
500
FEATURES_FAILED / IMAGES_FAILED
The listing itself was saved, but its features or photos were not. Retry the same call
A refused write leaves the listing as it was before the call (except after FEATURES_FAILED and IMAGES_FAILED), so it is always safe to send the same PUT again.
fuelType, transmission and bodyType accept free text. Okasie compares your value without case, accents, spaces or punctuation (so Semi-automatic, semi automatic and SEMIAUTOMATIC are the same) against the inputs below and stores the Okasie label. A value that matches nothing is stored as sent, but then does not appear under the site’s search filters, so map your values to one of these inputs.
SUV & Pick-up, SUV, sport utility vehicle, pickup, pick-up, pickup truck, SUV pickup, SUV and pickup, offroader
Bestelwagen
Bestelwagen, van, bestelbreak, bedrijfswagen, utilitaire, fourgon tole
Cabriolet
Cabriolet, cabrio, convertible, roadster
Monovolume
Monovolume, MPV, minivan, people carrier
Berline
Berline, sedan, saloon
Break
Break, estate, station wagon, stationwagen, wagon, combi, kombi, touring
Coupé
Coupé, coupe, sport coupe
Note that other, anders and overig become Stadswagen (city car). Leave bodyType out when the body type is unknown.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Okasie Partner API","colors":{"primary":"#FF5001","light":"#FF7A3E","dark":"#FF5001"},"logo":{"light":"https://mintcdn.com/okasie/Xrg9mpWuG2fZBeSf/logo/light.svg?fit=max\u0026auto=format\u0026n=Xrg9mpWuG2fZBeSf\u0026q=85\u0026s=b3fab5719f3cebf1d876b7161407a347","dark":"https://mintcdn.com/okasie/Xrg9mpWuG2fZBeSf/logo/dark.svg?fit=max\u0026auto=format\u0026n=Xrg9mpWuG2fZBeSf\u0026q=85\u0026s=ba18b968e1da4f356cbb5abcd1df5c1b"},"favicon":"https://mintcdn.com/okasie/Xrg9mpWuG2fZBeSf/favicon.png?fit=max\u0026auto=format\u0026n=Xrg9mpWuG2fZBeSf\u0026q=85\u0026s=667b111d4be23b913d7c6ecf66cef499","api":{"openapi":"openapi.yaml","mdx":{"auth":{"method":"bearer"},"server":"https://www.okasie.be"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"okasie","hasAudioNarration":false,"actualSubdomain":"okasie","customDomains":[],"gitSource":{"type":"github","owner":"okasie","repo":"okasie-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":"","_id":"6aedca7d5097775cf137361e"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af5905313768166fc566e54","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":9},{"language":"default","tag":"Documentation","count":7},{"language":"default","tag":"Listings","count":5},{"language":"default","tag":"Guides","count":4},{"language":"default","tag":"Getting Started","count":3},{"language":"default","tag":"Locations","count":2},{"language":"default","tag":"Brands","count":1},{"language":"default","tag":"Overview","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/listings/upsert","slug":"/api-reference/listings/upsert","pageMetadata":{"title":"Create/Update Listing","api":"PUT /api/external/v1/listings/{externalReference}","description":"Create or replace a vehicle listing by your own reference","href":"/api-reference/listings/upsert"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create or replace a vehicle listing by your own reference\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Expandable,Heading,Note,ParamField,ResponseField,Table,Warning}=_components;if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`create-or-update-listing`,children:`Create or Update Listing`}),`\n`,_jsx(_components.p,{children:`Creates the listing when your reference is new for your API key, and replaces it when it already exists. The same call is used for every change: price, photos, status, anything.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Requires the `,_jsx(_components.code,{children:`write:listings`}),` scope and a dealer that is linked to your key (see `,_jsx(_components.a,{href:`/authentication#dealer-access`,children:`Dealer access`}),`).`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`PUT is a full replacement.`}),`\nEvery field you leave out is cleared (stored as empty), except `,_jsx(_components.code,{children:`images`}),` and `,_jsx(_components.code,{children:`features`}),`: leave those out to keep what Okasie has, send `,_jsx(_components.code,{children:`[]`}),` to remove them all. Always send the complete car.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`how-values-are-read`,children:`How values are read`}),`\n`,_jsx(_components.p,{children:`These rules apply to every field below.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Unknown fields are ignored.`}),` A field that is not listed on this page is dropped without an error.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Numbers`}),` may be sent as a JSON number or as a numeric string (`,_jsx(_components.code,{children:`19995`}),`, `,_jsx(_components.code,{children:`\"19995\"`}),`, `,_jsx(_components.code,{children:`\"19995.50\"`}),`). Use a dot as decimal separator and no thousands separator. Whole-number fields (marked `,_jsx(_components.em,{children:`integer`}),`) refuse decimals with `,_jsx(_components.code,{children:`422`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`0 means “not known”`}),` for `,_jsx(_components.code,{children:`mileage`}),`, `,_jsx(_components.code,{children:`powerKw`}),`, `,_jsx(_components.code,{children:`co2Emission`}),`, `,_jsx(_components.code,{children:`fuelConsumption`}),`, `,_jsx(_components.code,{children:`weight`}),`, `,_jsx(_components.code,{children:`previousOwners`}),` and `,_jsx(_components.code,{children:`warrantyMonths`}),`: Okasie stores it as empty.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Booleans`}),` (`,_jsx(_components.code,{children:`serviceHistory`}),`, `,_jsx(_components.code,{children:`warranty`}),`) must be JSON `,_jsx(_components.code,{children:`true`}),` or `,_jsx(_components.code,{children:`false`}),`. The string `,_jsx(_components.code,{children:`\"true\"`}),` is refused with `,_jsx(_components.code,{children:`422`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`null`})}),`: only the fields marked `,_jsx(_components.em,{children:`nullable`}),` accept `,_jsx(_components.code,{children:`null`}),`. For any other text field `,_jsx(_components.code,{children:`null`}),` is refused with `,_jsx(_components.code,{children:`422`}),`; for `,_jsx(_components.code,{children:`year`}),`, `,_jsx(_components.code,{children:`doors`}),` and `,_jsx(_components.code,{children:`seats`}),` it is refused as well. When you have no value, leave the field out.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Text`}),` is trimmed. A text that is empty after trimming is stored as empty.`]}),`\n`,_jsxs(_components.li,{children:[`Errors are described on `,_jsx(_components.a,{href:`/errors`,children:`Error Handling`}),`; the codes this endpoint can return are listed `,_jsx(_components.a,{href:`#errors`,children:`below`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameter`,children:`Path parameter`}),`\n`,_jsx(ParamField,{path:`externalReference`,type:`string`,required:true,id:`param-external-reference`,children:_jsxs(_components.p,{children:[`Your own identifier for this car, for example the advertisement id in your system. It is unique per API key: the same reference always addresses the same Okasie listing. Leading and trailing spaces are removed. There is no fixed maximum length; keep it under 64 characters and URL-encode characters such as `,_jsx(_components.code,{children:`/`}),`, `,_jsx(_components.code,{children:`?`}),` and `,_jsx(_components.code,{children:`#`}),`. On a key limited to dealers Okasie approved, a reference that was used for one dealer can never be used for another dealer (`,_jsx(_components.code,{children:`409 REFERENCE_OWNED_BY_OTHER_DEALER`}),`), also not after the listing was deleted. On other keys, sending the same reference with another dealer moves the listing to that dealer.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`dealer`,children:`Dealer`}),`\n`,_jsxs(_components.p,{children:[`Send one of the two. When both are sent, `,_jsx(_components.code,{children:`dealerProfileId`}),` is used.`]}),`\n`,_jsx(ParamField,{body:`dealerLocationCode`,type:`string`,id:`param-dealer-location-code`,children:_jsxs(_components.p,{children:[`The dealer’s Okasie Dealer ID, for example `,_jsx(_components.code,{children:`OK-00148`}),` (max 120 characters, case-insensitive). The dealer finds it in the Okasie dashboard under `,_jsx(_components.strong,{children:`Integraties`}),`. Required when `,_jsx(_components.code,{children:`dealerProfileId`}),` is not sent. The dealer must be linked to your API key, else `,_jsx(_components.code,{children:`403 PROFILE_FORBIDDEN`}),`. An unknown Dealer ID gives `,_jsx(_components.code,{children:`400 INVALID_PROFILE`}),`.`]})}),`\n`,_jsx(ParamField,{body:`dealerProfileId`,type:`string`,id:`param-dealer-profile-id`,children:_jsxs(_components.p,{children:[`The dealer’s profile UUID (max 120 characters), as returned in `,_jsx(_components.code,{children:`dealer.id`}),` by `,_jsx(_components.a,{href:`/api-reference/listings/list`,children:`List Listings`}),` or `,_jsx(_components.code,{children:`id`}),` by `,_jsx(_components.a,{href:`/api-reference/locations/list`,children:`List Locations`}),`. Required when `,_jsx(_components.code,{children:`dealerLocationCode`}),` is not sent. A value that is not a UUID is looked up as a Dealer ID.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`status-and-price`,children:`Status and price`}),`\n`,_jsxs(ParamField,{body:`status`,type:`string`,default:`draft`,id:`param-status`,children:[_jsxs(_components.p,{children:[`One of `,_jsx(_components.code,{children:`active`}),`, `,_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`sold`}),`, `,_jsx(_components.code,{children:`draft`}),` (case-insensitive). Any other value gives `,_jsx(_components.code,{children:`422`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`active`}),`: published on okasie.be. Counts towards the dealer’s plan; refused with `,_jsx(_components.code,{children:`409 LISTING_LIMIT_REACHED`}),` or `,_jsx(_components.code,{children:`409 DEALER_PLAN_REQUIRED`}),` when the plan does not allow it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`pending`}),`: saved, not shown on the site.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`draft`}),`: saved, not shown on the site.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`sold`}),`: marked as sold and taken offline about an hour later (60 to 75 minutes) (its status then becomes `,_jsx(_components.code,{children:`inactive`}),`). Same effect as `,_jsx(_components.a,{href:`/api-reference/listings/delete`,children:`Delete Listing`}),`.`]}),`\n`]})]}),`\n`,_jsx(ParamField,{body:`price`,type:`number`,id:`param-price`,children:_jsxs(_components.p,{children:[`Asking price in euro, `,_jsx(_components.code,{children:`0`}),` or more, decimals allowed. `,_jsxs(_components.strong,{children:[`Required and greater than 0 when `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`active`}),` or `,_jsx(_components.code,{children:`pending`})]}),` (`,_jsx(_components.code,{children:`400 INVALID_PRICE`}),`). A negative price gives `,_jsx(_components.code,{children:`422`}),`.`]})}),`\n`,_jsx(ParamField,{body:`currency`,type:`string`,default:`EUR`,id:`param-currency`,children:_jsxs(_components.p,{children:[`Exactly 3 characters, stored in upper case. Okasie shows every price in euro and the read endpoints always return `,_jsx(_components.code,{children:`EUR`}),`, so send `,_jsx(_components.code,{children:`EUR`}),` or leave it out.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`title-and-description`,children:`Title and description`}),`\n`,_jsx(ParamField,{body:`title`,type:`string`,required:true,id:`param-title`,children:_jsxs(_components.p,{children:[`The heading of the listing, also used in its public URL. Must contain at least one non-space character: a missing or empty string gives `,_jsx(_components.code,{children:`422`}),`, a string of spaces gives `,_jsx(_components.code,{children:`400 INVALID_TITLE`}),`. No maximum is enforced; around 100 characters reads best.`]})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 15,000 characters. Plain text; use `,_jsx(_components.code,{children:`\\\\n`}),` for line breaks. HTML is not rendered.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`location`,children:`Location`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`postalCode`}),` and `,_jsx(_components.code,{children:`city`}),` are `,_jsxs(_components.strong,{children:[`required for every status, also `,_jsx(_components.code,{children:`draft`}),` and `,_jsx(_components.code,{children:`sold`})]}),` (`,_jsx(_components.code,{children:`400 INVALID_LOCATION`}),`). `,_jsx(_components.code,{children:`province`}),` is required too, unless Okasie can derive it (see below). You may send these fields at the top level or inside `,_jsx(_components.code,{children:`location`}),`.`]}),`\n`,_jsx(ParamField,{body:`postalCode`,type:`string`,id:`param-postal-code`,children:_jsxs(_components.p,{children:[`Max 32 characters. Where the car stands. For a 4-digit Belgian postal code Okasie derives `,_jsx(_components.code,{children:`province`}),` itself and ignores the `,_jsx(_components.code,{children:`province`}),` you send.`]})}),`\n`,_jsx(ParamField,{body:`city`,type:`string`,id:`param-city`,children:_jsx(_components.p,{children:`Max 120 characters.`})}),`\n`,_jsx(ParamField,{body:`province`,type:`string`,id:`param-province`,children:_jsxs(_components.p,{children:[`Max 120 characters. Only needed when `,_jsx(_components.code,{children:`postalCode`}),` is not a 4-digit Belgian code. Derived values: `,_jsx(_components.code,{children:`Brussel`}),`, `,_jsx(_components.code,{children:`Antwerpen`}),`, `,_jsx(_components.code,{children:`Limburg`}),`, `,_jsx(_components.code,{children:`Oost-Vlaanderen`}),`, `,_jsx(_components.code,{children:`West-Vlaanderen`}),`, `,_jsx(_components.code,{children:`Vlaams-Brabant`}),`, `,_jsx(_components.code,{children:`Waals-Brabant`}),`, `,_jsx(_components.code,{children:`Henegouwen`}),`, `,_jsx(_components.code,{children:`Luik`}),`, `,_jsx(_components.code,{children:`Luxemburg`}),`, `,_jsx(_components.code,{children:`Namen`}),`.`]})}),`\n`,_jsx(ParamField,{body:`latitude`,type:`number`,id:`param-latitude`,children:_jsx(_components.p,{children:`Optional coordinate in decimal degrees. Not range-checked.`})}),`\n`,_jsx(ParamField,{body:`longitude`,type:`number`,id:`param-longitude`,children:_jsx(_components.p,{children:`Optional coordinate in decimal degrees. Not range-checked.`})}),`\n`,_jsxs(ParamField,{body:`location`,type:`object`,id:`param-location`,children:[_jsxs(_components.p,{children:[`Alternative place for the fields above. A non-empty value inside `,_jsx(_components.code,{children:`location`}),` wins over the top-level field.`]}),_jsxs(Expandable,{title:`properties`,children:[_jsxs(ParamField,{body:`postalCode`,type:`string`,id:`param-postal-code-1`,children:[_jsx(_components.em,{children:`Nullable.`}),` Max 32 characters.`]}),_jsxs(ParamField,{body:`city`,type:`string`,id:`param-city-1`,children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters.`]}),_jsxs(ParamField,{body:`province`,type:`string`,id:`param-province-1`,children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters.`]}),_jsx(ParamField,{body:`latitude`,type:`number`,id:`param-latitude-1`,children:`Decimal degrees.`}),_jsx(ParamField,{body:`longitude`,type:`number`,id:`param-longitude-1`,children:`Decimal degrees.`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`vehicle`,children:`Vehicle`}),`\n`,_jsx(ParamField,{body:`brand`,type:`string`,id:`param-brand`,children:_jsxs(_components.p,{children:[`Max 120 characters. Make, for example `,_jsx(_components.code,{children:`Volkswagen`}),`. A make from `,_jsx(_components.a,{href:`/api-reference/brands/list`,children:`List Makes and Models`}),`, or a known variant of it, is stored with Okasie’s name (`,_jsx(_components.code,{children:`VW`}),` becomes `,_jsx(_components.code,{children:`Volkswagen`}),`); any other make is stored as sent.`]})}),`\n`,_jsx(ParamField,{body:`model`,type:`string`,id:`param-model`,children:_jsxs(_components.p,{children:[`Max 120 characters. A model from `,_jsx(_components.a,{href:`/api-reference/brands/list`,children:`List Makes and Models`}),` for that make is stored with Okasie’s spelling (`,_jsx(_components.code,{children:`XC 40`}),` becomes `,_jsx(_components.code,{children:`XC40`}),`); any other model is stored as sent.`]})}),`\n`,_jsx(ParamField,{body:`variant`,type:`string`,id:`param-variant`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters. Version or trim, for example `,_jsx(_components.code,{children:`GTI Clubsport`}),`. Returned as `,_jsx(_components.code,{children:`variant`}),` by the read endpoints.`]})}),`\n`,_jsx(ParamField,{body:`customType`,type:`string`,id:`param-custom-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. Same field as `,_jsx(_components.code,{children:`variant`}),`; when both are sent, `,_jsx(_components.code,{children:`customType`}),` wins.`]})}),`\n`,_jsx(ParamField,{body:`year`,type:`integer`,id:`param-year`,children:_jsxs(_components.p,{children:[`Model year, from 1900 up to next year. Outside that range, `,_jsx(_components.code,{children:`0`}),` and `,_jsx(_components.code,{children:`null`}),` give `,_jsx(_components.code,{children:`422`}),`.`]})}),`\n`,_jsx(ParamField,{body:`firstRegistration`,type:`string`,id:`param-first-registration`,children:_jsxs(_components.p,{children:[`Max 10 characters. Date of first registration. Not validated and stored as sent; use `,_jsx(_components.code,{children:`YYYY-MM-DD`}),` (or `,_jsx(_components.code,{children:`YYYY-MM`}),`) so the site can sort and filter on it.`]})}),`\n`,_jsx(ParamField,{body:`mileage`,type:`integer`,id:`param-mileage`,children:_jsxs(_components.p,{children:[`Odometer reading in km, `,_jsx(_components.code,{children:`0`}),` or more. `,_jsx(_components.code,{children:`0`}),` is stored as empty.`]})}),`\n`,_jsx(ParamField,{body:`fuelType`,type:`string`,id:`param-fuel-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. Free text, mapped to an Okasie label: see `,_jsx(_components.a,{href:`#fuel-type-values`,children:`Fuel type values`}),`.`]})}),`\n`,_jsx(ParamField,{body:`transmission`,type:`string`,id:`param-transmission`,children:_jsxs(_components.p,{children:[`Max 60 characters. Free text, mapped to an Okasie label: see `,_jsx(_components.a,{href:`#transmission-values`,children:`Transmission values`}),`.`]})}),`\n`,_jsx(ParamField,{body:`bodyType`,type:`string`,id:`param-body-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. Free text, mapped to an Okasie label: see `,_jsx(_components.a,{href:`#body-type-values`,children:`Body type values`}),`.`]})}),`\n`,_jsx(ParamField,{body:`engine`,type:`string`,id:`param-engine`,children:_jsxs(_components.p,{children:[`Max 60 characters. Engine displacement in litres, for example `,_jsx(_components.code,{children:`1.6`}),`. The site shows it followed by “L”, so send the number only.`]})}),`\n`,_jsx(ParamField,{body:`powerKw`,type:`number`,id:`param-power-kw`,children:_jsxs(_components.p,{children:[`Engine power in kW, `,_jsx(_components.code,{children:`0`}),` or more. Okasie stores metric horsepower (kW x 1.35962, rounded); the read endpoints convert it back to whole kW, so `,_jsx(_components.code,{children:`110.3`}),` reads back as `,_jsx(_components.code,{children:`110`}),`.`]})}),`\n`,_jsx(ParamField,{body:`driveType`,type:`string`,id:`param-drive-type`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text shown as sent, for example `,_jsx(_components.code,{children:`FWD`}),`, `,_jsx(_components.code,{children:`RWD`}),`, `,_jsx(_components.code,{children:`AWD`}),`, `,_jsx(_components.code,{children:`4x4`}),`.`]})}),`\n`,_jsx(ParamField,{body:`gears`,type:`integer`,id:`param-gears`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Number of gears, 1 to 12.`]})}),`\n`,_jsx(ParamField,{body:`doors`,type:`integer`,id:`param-doors`,children:_jsxs(_components.p,{children:[`Number of doors, 1 to 10. `,_jsx(_components.code,{children:`0`}),` and `,_jsx(_components.code,{children:`null`}),` give `,_jsx(_components.code,{children:`422`}),`; leave it out when unknown.`]})}),`\n`,_jsx(ParamField,{body:`seats`,type:`integer`,id:`param-seats`,children:_jsxs(_components.p,{children:[`Number of seats, 1 to 10. `,_jsx(_components.code,{children:`0`}),` and `,_jsx(_components.code,{children:`null`}),` give `,_jsx(_components.code,{children:`422`}),`; leave it out when unknown.`]})}),`\n`,_jsx(ParamField,{body:`weight`,type:`integer`,id:`param-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Weight in kg, `,_jsx(_components.code,{children:`0`}),` or more.`]})}),`\n`,_jsx(ParamField,{body:`color`,type:`string`,id:`param-color`,children:_jsxs(_components.p,{children:[`Max 60 characters. Exterior colour, free text, for example `,_jsx(_components.code,{children:`Grijs`}),`.`]})}),`\n`,_jsx(ParamField,{body:`paintType`,type:`string`,id:`param-paint-type`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text, for example `,_jsx(_components.code,{children:`Metallic`}),`, `,_jsx(_components.code,{children:`Parelmoer`}),`, `,_jsx(_components.code,{children:`Mat`}),`, `,_jsx(_components.code,{children:`Uni`}),`.`]})}),`\n`,_jsx(ParamField,{body:`interiorColor`,type:`string`,id:`param-interior-color`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text.`]})}),`\n`,_jsx(ParamField,{body:`interiorMaterial`,type:`string`,id:`param-interior-material`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text, for example `,_jsx(_components.code,{children:`Leder`}),`, `,_jsx(_components.code,{children:`Stof`}),`, `,_jsx(_components.code,{children:`Alcantara`}),`, `,_jsx(_components.code,{children:`Kunstleder`}),`.`]})}),`\n`,_jsx(ParamField,{body:`vin`,type:`string`,id:`param-vin`,children:_jsx(_components.p,{children:`Max 32 characters. Chassis number. The format is not checked.`})}),`\n`,_jsx(Heading,{level:`2`,id:`environment`,children:`Environment`}),`\n`,_jsx(ParamField,{body:`co2Emission`,type:`integer`,id:`param-co2-emission`,children:_jsxs(_components.p,{children:[`CO2 emission in g/km, `,_jsx(_components.code,{children:`0`}),` or more.`]})}),`\n`,_jsx(ParamField,{body:`co2Type`,type:`string`,id:`param-co2-type`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 30 characters. Test cycle of the CO2 value, free text, for example `,_jsx(_components.code,{children:`WLTP`}),` or `,_jsx(_components.code,{children:`NEDC`}),`.`]})}),`\n`,_jsx(ParamField,{body:`emissionClass`,type:`string`,id:`param-emission-class`,children:_jsxs(_components.p,{children:[`Max 30 characters. Euro norm, free text, for example `,_jsx(_components.code,{children:`Euro 6d`}),`. The site’s emission filter matches on part of this text.`]})}),`\n`,_jsx(ParamField,{body:`fuelConsumption`,type:`number`,id:`param-fuel-consumption`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Combined consumption in l/100 km, `,_jsx(_components.code,{children:`0`}),` or more, decimals allowed.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`history-warranty-and-sale`,children:`History, warranty and sale`}),`\n`,_jsx(ParamField,{body:`previousOwners`,type:`integer`,id:`param-previous-owners`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Number of previous owners, `,_jsx(_components.code,{children:`0`}),` or more. `,_jsx(_components.code,{children:`0`}),` is stored as empty.`]})}),`\n`,_jsx(ParamField,{body:`serviceHistory`,type:`boolean`,id:`param-service-history`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` `,_jsx(_components.code,{children:`true`}),` when a maintenance history is available. Leave it out when unknown: `,_jsx(_components.code,{children:`null`}),` is stored as `,_jsx(_components.code,{children:`false`}),`.`]})}),`\n`,_jsx(ParamField,{body:`warranty`,type:`boolean`,id:`param-warranty`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` `,_jsx(_components.code,{children:`true`}),` when the car is sold with warranty. Leave it out when unknown: `,_jsx(_components.code,{children:`null`}),` is stored as `,_jsx(_components.code,{children:`false`}),`.`]})}),`\n`,_jsx(ParamField,{body:`warrantyMonths`,type:`integer`,id:`param-warranty-months`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Warranty duration in months, `,_jsx(_components.code,{children:`0`}),` or more.`]})}),`\n`,_jsx(ParamField,{body:`vehicleType`,type:`string`,default:`margin`,id:`param-vehicle-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. VAT regime: `,_jsx(_components.code,{children:`margin`}),` (margin scheme, the default) or `,_jsx(_components.code,{children:`vat`}),` (VAT deductible; `,_jsx(_components.code,{children:`btw`}),` is also treated as VAT deductible). Other values are stored as sent.`]})}),`\n`,_jsx(ParamField,{body:`conditionTags`,type:`string[]`,id:`param-condition-tags`,children:_jsxs(_components.p,{children:[`Up to 6 tags of max 32 characters each, shown on the listing and used by the site’s condition filter. Free text. More than 6 tags or a longer tag gives `,_jsx(_components.code,{children:`422`}),`; empty tags are dropped.`]})}),`\n`,_jsx(ParamField,{body:`condition`,type:`string`,id:`param-condition`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text, for example `,_jsx(_components.code,{children:`Gebruikt`}),`. Stored as a single condition tag, and only when `,_jsx(_components.code,{children:`conditionTags`}),` is not sent.`]})}),`\n`,_jsx(ParamField,{body:`carPassUrl`,type:`string`,id:`param-car-pass-url`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Car-Pass of the car. Accepted: a URL on `,_jsx(_components.code,{children:`public.car-pass.be`}),` or `,_jsx(_components.code,{children:`car-pass.be`}),` (stored as sent), or a certificate number with exactly 11 digits (spaces and dashes are removed). Anything else gives `,_jsx(_components.code,{children:`422`}),`. The same value is also accepted under the names `,_jsx(_components.code,{children:`carPass`}),`, `,_jsx(_components.code,{children:`car_pass_url`}),` and `,_jsx(_components.code,{children:`carPassNumber`}),`; send only one of them. Read back as `,_jsx(_components.code,{children:`carPassUrl`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`features`,children:`Features`}),`\n`,_jsxs(ParamField,{body:`features`,type:`object[]`,id:`param-features`,children:[_jsxs(_components.p,{children:[`Equipment of the car. Leave it out to keep the current features; `,_jsx(_components.code,{children:`[]`}),` removes them all; otherwise the list replaces the current set. Items without a name are dropped, duplicates (same category and name, case-insensitive) are kept once, and only the first 50 are stored, without a warning.`]}),_jsxs(Expandable,{title:`item properties`,children:[_jsx(ParamField,{body:`name`,type:`string`,id:`param-name`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters. The feature as shown on the listing, for example `,_jsx(_components.code,{children:`Navigatiesysteem`}),`. `,_jsx(_components.code,{children:`feature`}),` is accepted as another name for this field.`]})}),_jsx(ParamField,{body:`category`,type:`string`,default:`other`,id:`param-category`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 32 characters (longer gives `,_jsx(_components.code,{children:`422`}),`). Free text, for example `,_jsx(_components.code,{children:`comfort`}),`, `,_jsx(_components.code,{children:`safety`}),`, `,_jsx(_components.code,{children:`interior`}),`, `,_jsx(_components.code,{children:`exterior`}),`, `,_jsx(_components.code,{children:`technology`}),`.`]})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`images`,children:`Images`}),`\n`,_jsxs(ParamField,{body:`images`,type:`array`,id:`param-images`,children:[_jsxs(_components.p,{children:[`Photos of the car, as URL strings or objects. Leave it out to keep the current photos; `,_jsx(_components.code,{children:`[]`}),` removes them all; otherwise the list replaces the current set, in the order of `,_jsx(_components.code,{children:`position`}),`. Empty entries are dropped and only the first 50 are used, without a warning. See `,_jsx(_components.a,{href:`/guides/image-handling`,children:`Image Handling`}),` for the download rules.`]}),_jsxs(Expandable,{title:`object properties`,children:[_jsx(ParamField,{body:`url`,type:`string`,id:`param-url`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Public HTTPS URL of the photo, max 2048 characters. `,_jsx(_components.code,{children:`imageUrl`}),` is accepted as another name for this field.`]})}),_jsx(ParamField,{body:`position`,type:`integer`,id:`param-position`,children:_jsxs(_components.p,{children:[`Sort order, `,_jsx(_components.code,{children:`0`}),` or more; the lowest position is the main photo. Defaults to the index in the array.`]})})]}),_jsxs(_components.p,{children:[`A photo Okasie cannot download is skipped and listed in `,_jsx(_components.code,{children:`warnings.skippedImages`}),`; the listing itself is still saved.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[`Every successful call returns `,_jsx(_components.strong,{children:`HTTP 200`}),`, for a new listing as well as for an update.`]}),`\n`,_jsx(ResponseField,{name:`data.listingId`,type:`string`,id:`param-data-listing-id`,children:_jsx(_components.p,{children:`Okasie listing UUID.`})}),`\n`,_jsx(ResponseField,{name:`data.externalReference`,type:`string`,id:`param-data-external-reference`,children:_jsx(_components.p,{children:`Your reference, trimmed.`})}),`\n`,_jsx(ResponseField,{name:`data.status`,type:`string`,id:`param-data-status`,children:_jsxs(_components.p,{children:[`The stored status: `,_jsx(_components.code,{children:`active`}),`, `,_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`sold`}),` or `,_jsx(_components.code,{children:`draft`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`data.listingUrl`,type:`string | null`,id:`param-data-listing-url`,children:_jsxs(_components.p,{children:[`The public page on okasie.be, for example `,_jsx(_components.code,{children:`https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi--0c52cae7-bcaa-4b37-be0d-1b78c92c5225`}),`. Only set when `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`active`}),`; `,_jsx(_components.code,{children:`null`}),` otherwise. The path changes with the title.`]})}),`\n`,_jsx(ResponseField,{name:`data.created`,type:`boolean`,id:`param-data-created`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` when this call created the listing, `,_jsx(_components.code,{children:`false`}),` when it replaced an existing one.`]})}),`\n`,_jsxs(ResponseField,{name:`data.warnings`,type:`object`,id:`param-data-warnings`,children:[_jsx(_components.p,{children:`Only present when photos were skipped.`}),_jsx(Expandable,{title:`properties`,children:_jsx(ResponseField,{name:`skippedImages`,type:`object[]`,id:`param-skipped-images`,children:_jsxs(_components.p,{children:[`One entry per skipped photo: `,_jsx(_components.code,{children:`source`}),` (the URL you sent, or `,_jsx(_components.code,{children:`null`}),`) and `,_jsx(_components.code,{children:`reason`}),`. `,_jsx(_components.code,{children:`reason`}),` is `,_jsx(_components.code,{children:`invalid-url`}),` (not an http or https URL), `,_jsx(_components.code,{children:`mirror_failed`}),`, or a short description in Dutch, such as `,_jsx(_components.code,{children:`Afbeelding ophalen mislukt (404)`}),` or `,_jsx(_components.code,{children:`Afbeeldings-URL is niet toegestaan`}),`.`]})})})]}),`\n`,_jsxs(_components.p,{children:[`The response carries the `,_jsx(_components.a,{href:`/rate-limiting`,children:`rate limit headers`}),`.`]}),`\n`,`\n`,`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.p,{children:[`Errors use the body `,_jsx(_components.code,{children:`{\"error\": {\"code\", \"message\"}}`}),`. The checks run in this order, and the first one that fails is returned.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UNAUTHORIZED`})}),_jsxs(_components.td,{children:[`Missing or unknown API key, or the key lacks `,_jsx(_components.code,{children:`write:listings`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RATE_LIMITED`})}),_jsxs(_components.td,{children:[`Rate limit reached; the body has `,_jsx(_components.code,{children:`retryAt`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_REFERENCE`})}),_jsx(_components.td,{children:`The path reference is empty`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_JSON`})}),_jsx(_components.td,{children:`The body is not valid JSON`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_BODY`})}),_jsx(_components.td,{children:`The body is not a JSON object`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`422`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`VALIDATION_FAILED`})}),_jsxs(_components.td,{children:[`A field breaks a rule on this page, `,_jsx(_components.code,{children:`title`}),` is missing or empty, or both `,_jsx(_components.code,{children:`dealerProfileId`}),` and `,_jsx(_components.code,{children:`dealerLocationCode`}),` are missing; see `,_jsx(_components.code,{children:`issues`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_TITLE`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`title`}),` only contains spaces`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_PRICE`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`active`}),` or `,_jsx(_components.code,{children:`pending`}),` and `,_jsx(_components.code,{children:`price`}),` is missing or 0`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_PROFILE`})}),_jsxs(_components.td,{children:[`No dealer found for `,_jsx(_components.code,{children:`dealerProfileId`}),` / `,_jsx(_components.code,{children:`dealerLocationCode`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`PROFILE_FORBIDDEN`})}),_jsx(_components.td,{children:`The dealer is not linked to your key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_LOCATION`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`postalCode`}),` or `,_jsx(_components.code,{children:`city`}),` is missing, or `,_jsx(_components.code,{children:`province`}),` is missing for a postal code that is not a 4-digit Belgian code`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REFERENCE_OWNED_BY_OTHER_DEALER`})}),_jsx(_components.td,{children:`Keys limited to approved dealers only: this reference is already used by your key for a listing of another dealer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`LISTING_LIMIT_REACHED`})}),_jsxs(_components.td,{children:[`The resulting status is `,_jsx(_components.code,{children:`active`}),` and the dealer’s plan has no free place. Nothing was saved`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`DEALER_PLAN_REQUIRED`})}),_jsxs(_components.td,{children:[`The resulting status is `,_jsx(_components.code,{children:`active`}),` and the dealer has no active plan. Nothing was saved`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`FETCH_FAILED`}),` / `,_jsx(_components.code,{children:`UPSERT_FAILED`})]}),_jsx(_components.td,{children:`Okasie could not read or save the listing. Nothing was saved; retry later`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`FEATURES_FAILED`}),` / `,_jsx(_components.code,{children:`IMAGES_FAILED`})]}),_jsx(_components.td,{children:`The listing itself was saved, but its features or photos were not. Retry the same call`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A refused write leaves the listing as it was before the call (except after `,_jsx(_components.code,{children:`FEATURES_FAILED`}),` and `,_jsx(_components.code,{children:`IMAGES_FAILED`}),`), so it is always safe to send the same PUT again.`]}),`\n`,_jsx(Heading,{level:`2`,id:`value-mapping`,children:`Value mapping`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`fuelType`}),`, `,_jsx(_components.code,{children:`transmission`}),` and `,_jsx(_components.code,{children:`bodyType`}),` accept free text. Okasie compares your value without case, accents, spaces or punctuation (so `,_jsx(_components.code,{children:`Semi-automatic`}),`, `,_jsx(_components.code,{children:`semi automatic`}),` and `,_jsx(_components.code,{children:`SEMIAUTOMATIC`}),` are the same) against the inputs below and stores the Okasie label. A value that matches nothing is stored as sent, but then does not appear under the site’s search filters, so map your values to one of these inputs.`]}),`\n`,_jsx(Heading,{level:`3`,id:`fuel-type-values`,children:`Fuel type values`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stored label`}),_jsx(_components.th,{children:`Accepted inputs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Benzine`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Benzine`}),`, `,_jsx(_components.code,{children:`benzin`}),`, `,_jsx(_components.code,{children:`gasoline`}),`, `,_jsx(_components.code,{children:`petrol`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Diesel`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Diesel`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Hybride (Benzine)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Hybride (Benzine)`}),`, `,_jsx(_components.code,{children:`hybride`}),`, `,_jsx(_components.code,{children:`hybrid`}),`, `,_jsx(_components.code,{children:`hybride benzine`}),`, `,_jsx(_components.code,{children:`hybrid benzine`}),`, `,_jsx(_components.code,{children:`hybrid petrol`}),`, `,_jsx(_components.code,{children:`hybrid gasoline`}),`, `,_jsx(_components.code,{children:`hybride essence`}),`, `,_jsx(_components.code,{children:`hybrid essence`}),`, `,_jsx(_components.code,{children:`mild hybrid`}),`, `,_jsx(_components.code,{children:`mild hybrid benzine`}),`, `,_jsx(_components.code,{children:`full hybrid`}),`, `,_jsx(_components.code,{children:`full hybrid benzine`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Hybride (Diesel)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Hybride (Diesel)`}),`, `,_jsx(_components.code,{children:`hybride diesel`}),`, `,_jsx(_components.code,{children:`hybrid diesel`}),`, `,_jsx(_components.code,{children:`mild hybrid diesel`}),`, `,_jsx(_components.code,{children:`full hybrid diesel`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Plug-in Hybride (Benzine)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Plug-in Hybride (Benzine)`}),`, `,_jsx(_components.code,{children:`plug-in hybrid benzine`}),`, `,_jsx(_components.code,{children:`plug-in hybrid petrol`}),`, `,_jsx(_components.code,{children:`plug-in hybrid gasoline`}),`, `,_jsx(_components.code,{children:`hybride rechargeable essence`}),`, `,_jsx(_components.code,{children:`hybride rechargeable benzine`}),`, `,_jsx(_components.code,{children:`hybride rechargeable petrol`}),`, `,_jsx(_components.code,{children:`PHEV benzine`}),`, `,_jsx(_components.code,{children:`PHEV essence`}),`, `,_jsx(_components.code,{children:`PHEV petrol`}),`, `,_jsx(_components.code,{children:`PHEV gasoline`}),`, `,_jsx(_components.code,{children:`plug-in hybride opladen benzine`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Plug-in Hybride (Diesel)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Plug-in Hybride (Diesel)`}),`, `,_jsx(_components.code,{children:`plug-in hybrid diesel`}),`, `,_jsx(_components.code,{children:`hybride rechargeable diesel`}),`, `,_jsx(_components.code,{children:`PHEV diesel`}),`, `,_jsx(_components.code,{children:`plug-in hybride oplad diesel`}),`, `,_jsx(_components.code,{children:`rechargeable hybrid diesel`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Elektrisch`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Elektrisch`}),`, `,_jsx(_components.code,{children:`electric`}),`, `,_jsx(_components.code,{children:`EV`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`LPG`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`LPG`}),`, `,_jsx(_components.code,{children:`autogas`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Anders`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Anders`}),`, `,_jsx(_components.code,{children:`other`}),`, `,_jsx(_components.code,{children:`overig`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`PHEV`}),` on its own, `,_jsx(_components.code,{children:`CNG`}),`, `,_jsx(_components.code,{children:`hydrogen`}),` and `,_jsx(_components.code,{children:`waterstof`}),` are not mapped.`]}),`\n`,_jsx(Heading,{level:`3`,id:`transmission-values`,children:`Transmission values`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stored label`}),_jsx(_components.th,{children:`Accepted inputs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Manueel`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Manueel`}),`, `,_jsx(_components.code,{children:`manual`}),`, `,_jsx(_components.code,{children:`handgeschakeld`}),`, `,_jsx(_components.code,{children:`handshift`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Automaat`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Automaat`}),`, `,_jsx(_components.code,{children:`automatic`}),`, `,_jsx(_components.code,{children:`automatisch`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Halfautomaat`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Halfautomaat`}),`, `,_jsx(_components.code,{children:`semi-automaat`}),`, `,_jsx(_components.code,{children:`semi-automatic`})]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`body-type-values`,children:`Body type values`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stored label`}),_jsx(_components.th,{children:`Accepted inputs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Stadswagen`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Stadswagen`}),`, `,_jsx(_components.code,{children:`citycar`}),`, `,_jsx(_components.code,{children:`citadine`}),`, `,_jsx(_components.code,{children:`anders`}),`, `,_jsx(_components.code,{children:`other`}),`, `,_jsx(_components.code,{children:`overig`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Hatchback`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Hatchback`}),`, `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`compacte`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SUV \u0026 Pick-up`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUV \u0026 Pick-up`}),`, `,_jsx(_components.code,{children:`SUV`}),`, `,_jsx(_components.code,{children:`sport utility vehicle`}),`, `,_jsx(_components.code,{children:`pickup`}),`, `,_jsx(_components.code,{children:`pick-up`}),`, `,_jsx(_components.code,{children:`pickup truck`}),`, `,_jsx(_components.code,{children:`SUV pickup`}),`, `,_jsx(_components.code,{children:`SUV and pickup`}),`, `,_jsx(_components.code,{children:`offroader`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Bestelwagen`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Bestelwagen`}),`, `,_jsx(_components.code,{children:`van`}),`, `,_jsx(_components.code,{children:`bestelbreak`}),`, `,_jsx(_components.code,{children:`bedrijfswagen`}),`, `,_jsx(_components.code,{children:`utilitaire`}),`, `,_jsx(_components.code,{children:`fourgon tole`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Cabriolet`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Cabriolet`}),`, `,_jsx(_components.code,{children:`cabrio`}),`, `,_jsx(_components.code,{children:`convertible`}),`, `,_jsx(_components.code,{children:`roadster`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Monovolume`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Monovolume`}),`, `,_jsx(_components.code,{children:`MPV`}),`, `,_jsx(_components.code,{children:`minivan`}),`, `,_jsx(_components.code,{children:`people carrier`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Berline`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Berline`}),`, `,_jsx(_components.code,{children:`sedan`}),`, `,_jsx(_components.code,{children:`saloon`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Break`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Break`}),`, `,_jsx(_components.code,{children:`estate`}),`, `,_jsx(_components.code,{children:`station wagon`}),`, `,_jsx(_components.code,{children:`stationwagen`}),`, `,_jsx(_components.code,{children:`wagon`}),`, `,_jsx(_components.code,{children:`combi`}),`, `,_jsx(_components.code,{children:`kombi`}),`, `,_jsx(_components.code,{children:`touring`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Coupé`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Coupé`}),`, `,_jsx(_components.code,{children:`coupe`}),`, `,_jsx(_components.code,{children:`sport coupe`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Note that `,_jsx(_components.code,{children:`other`}),`, `,_jsx(_components.code,{children:`anders`}),` and `,_jsx(_components.code,{children:`overig`}),` become `,_jsx(_components.code,{children:`Stadswagen`}),` (city car). Leave `,_jsx(_components.code,{children:`bodyType`}),` out when the body type is unknown.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create/Update Listing","api":"PUT /api/external/v1/listings/{externalReference}","description":"Create or replace a vehicle listing by your own reference","href":"/api-reference/listings/upsert"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Note,ParamField,RequestExample,ResponseExample,ResponseField,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`create-or-update-listing`,children:`Create or Update Listing`}),`\n`,_jsx(_components.p,{children:`Creates the listing when your reference is new for your API key, and replaces it when it already exists. The same call is used for every change: price, photos, status, anything.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Requires the `,_jsx(_components.code,{children:`write:listings`}),` scope and a dealer that is linked to your key (see `,_jsx(_components.a,{href:`/authentication#dealer-access`,children:`Dealer access`}),`).`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`PUT is a full replacement.`}),`\nEvery field you leave out is cleared (stored as empty), except `,_jsx(_components.code,{children:`images`}),` and `,_jsx(_components.code,{children:`features`}),`: leave those out to keep what Okasie has, send `,_jsx(_components.code,{children:`[]`}),` to remove them all. Always send the complete car.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`how-values-are-read`,children:`How values are read`}),`\n`,_jsx(_components.p,{children:`These rules apply to every field below.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Unknown fields are ignored.`}),` A field that is not listed on this page is dropped without an error.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Numbers`}),` may be sent as a JSON number or as a numeric string (`,_jsx(_components.code,{children:`19995`}),`, `,_jsx(_components.code,{children:`\"19995\"`}),`, `,_jsx(_components.code,{children:`\"19995.50\"`}),`). Use a dot as decimal separator and no thousands separator. Whole-number fields (marked `,_jsx(_components.em,{children:`integer`}),`) refuse decimals with `,_jsx(_components.code,{children:`422`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`0 means “not known”`}),` for `,_jsx(_components.code,{children:`mileage`}),`, `,_jsx(_components.code,{children:`powerKw`}),`, `,_jsx(_components.code,{children:`co2Emission`}),`, `,_jsx(_components.code,{children:`fuelConsumption`}),`, `,_jsx(_components.code,{children:`weight`}),`, `,_jsx(_components.code,{children:`previousOwners`}),` and `,_jsx(_components.code,{children:`warrantyMonths`}),`: Okasie stores it as empty.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Booleans`}),` (`,_jsx(_components.code,{children:`serviceHistory`}),`, `,_jsx(_components.code,{children:`warranty`}),`) must be JSON `,_jsx(_components.code,{children:`true`}),` or `,_jsx(_components.code,{children:`false`}),`. The string `,_jsx(_components.code,{children:`\"true\"`}),` is refused with `,_jsx(_components.code,{children:`422`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`null`})}),`: only the fields marked `,_jsx(_components.em,{children:`nullable`}),` accept `,_jsx(_components.code,{children:`null`}),`. For any other text field `,_jsx(_components.code,{children:`null`}),` is refused with `,_jsx(_components.code,{children:`422`}),`; for `,_jsx(_components.code,{children:`year`}),`, `,_jsx(_components.code,{children:`doors`}),` and `,_jsx(_components.code,{children:`seats`}),` it is refused as well. When you have no value, leave the field out.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Text`}),` is trimmed. A text that is empty after trimming is stored as empty.`]}),`\n`,_jsxs(_components.li,{children:[`Errors are described on `,_jsx(_components.a,{href:`/errors`,children:`Error Handling`}),`; the codes this endpoint can return are listed `,_jsx(_components.a,{href:`#errors`,children:`below`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameter`,children:`Path parameter`}),`\n`,_jsx(ParamField,{path:`externalReference`,type:`string`,required:true,id:`param-external-reference`,children:_jsxs(_components.p,{children:[`Your own identifier for this car, for example the advertisement id in your system. It is unique per API key: the same reference always addresses the same Okasie listing. Leading and trailing spaces are removed. There is no fixed maximum length; keep it under 64 characters and URL-encode characters such as `,_jsx(_components.code,{children:`/`}),`, `,_jsx(_components.code,{children:`?`}),` and `,_jsx(_components.code,{children:`#`}),`. On a key limited to dealers Okasie approved, a reference that was used for one dealer can never be used for another dealer (`,_jsx(_components.code,{children:`409 REFERENCE_OWNED_BY_OTHER_DEALER`}),`), also not after the listing was deleted. On other keys, sending the same reference with another dealer moves the listing to that dealer.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`dealer`,children:`Dealer`}),`\n`,_jsxs(_components.p,{children:[`Send one of the two. When both are sent, `,_jsx(_components.code,{children:`dealerProfileId`}),` is used.`]}),`\n`,_jsx(ParamField,{body:`dealerLocationCode`,type:`string`,id:`param-dealer-location-code`,children:_jsxs(_components.p,{children:[`The dealer’s Okasie Dealer ID, for example `,_jsx(_components.code,{children:`OK-00148`}),` (max 120 characters, case-insensitive). The dealer finds it in the Okasie dashboard under `,_jsx(_components.strong,{children:`Integraties`}),`. Required when `,_jsx(_components.code,{children:`dealerProfileId`}),` is not sent. The dealer must be linked to your API key, else `,_jsx(_components.code,{children:`403 PROFILE_FORBIDDEN`}),`. An unknown Dealer ID gives `,_jsx(_components.code,{children:`400 INVALID_PROFILE`}),`.`]})}),`\n`,_jsx(ParamField,{body:`dealerProfileId`,type:`string`,id:`param-dealer-profile-id`,children:_jsxs(_components.p,{children:[`The dealer’s profile UUID (max 120 characters), as returned in `,_jsx(_components.code,{children:`dealer.id`}),` by `,_jsx(_components.a,{href:`/api-reference/listings/list`,children:`List Listings`}),` or `,_jsx(_components.code,{children:`id`}),` by `,_jsx(_components.a,{href:`/api-reference/locations/list`,children:`List Locations`}),`. Required when `,_jsx(_components.code,{children:`dealerLocationCode`}),` is not sent. A value that is not a UUID is looked up as a Dealer ID.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`status-and-price`,children:`Status and price`}),`\n`,_jsxs(ParamField,{body:`status`,type:`string`,default:`draft`,id:`param-status`,children:[_jsxs(_components.p,{children:[`One of `,_jsx(_components.code,{children:`active`}),`, `,_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`sold`}),`, `,_jsx(_components.code,{children:`draft`}),` (case-insensitive). Any other value gives `,_jsx(_components.code,{children:`422`}),`.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`active`}),`: published on okasie.be. Counts towards the dealer’s plan; refused with `,_jsx(_components.code,{children:`409 LISTING_LIMIT_REACHED`}),` or `,_jsx(_components.code,{children:`409 DEALER_PLAN_REQUIRED`}),` when the plan does not allow it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`pending`}),`: saved, not shown on the site.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`draft`}),`: saved, not shown on the site.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`sold`}),`: marked as sold and taken offline about an hour later (60 to 75 minutes) (its status then becomes `,_jsx(_components.code,{children:`inactive`}),`). Same effect as `,_jsx(_components.a,{href:`/api-reference/listings/delete`,children:`Delete Listing`}),`.`]}),`\n`]})]}),`\n`,_jsx(ParamField,{body:`price`,type:`number`,id:`param-price`,children:_jsxs(_components.p,{children:[`Asking price in euro, `,_jsx(_components.code,{children:`0`}),` or more, decimals allowed. `,_jsxs(_components.strong,{children:[`Required and greater than 0 when `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`active`}),` or `,_jsx(_components.code,{children:`pending`})]}),` (`,_jsx(_components.code,{children:`400 INVALID_PRICE`}),`). A negative price gives `,_jsx(_components.code,{children:`422`}),`.`]})}),`\n`,_jsx(ParamField,{body:`currency`,type:`string`,default:`EUR`,id:`param-currency`,children:_jsxs(_components.p,{children:[`Exactly 3 characters, stored in upper case. Okasie shows every price in euro and the read endpoints always return `,_jsx(_components.code,{children:`EUR`}),`, so send `,_jsx(_components.code,{children:`EUR`}),` or leave it out.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`title-and-description`,children:`Title and description`}),`\n`,_jsx(ParamField,{body:`title`,type:`string`,required:true,id:`param-title`,children:_jsxs(_components.p,{children:[`The heading of the listing, also used in its public URL. Must contain at least one non-space character: a missing or empty string gives `,_jsx(_components.code,{children:`422`}),`, a string of spaces gives `,_jsx(_components.code,{children:`400 INVALID_TITLE`}),`. No maximum is enforced; around 100 characters reads best.`]})}),`\n`,_jsx(ParamField,{body:`description`,type:`string`,id:`param-description`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 15,000 characters. Plain text; use `,_jsx(_components.code,{children:`\\\\n`}),` for line breaks. HTML is not rendered.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`location`,children:`Location`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`postalCode`}),` and `,_jsx(_components.code,{children:`city`}),` are `,_jsxs(_components.strong,{children:[`required for every status, also `,_jsx(_components.code,{children:`draft`}),` and `,_jsx(_components.code,{children:`sold`})]}),` (`,_jsx(_components.code,{children:`400 INVALID_LOCATION`}),`). `,_jsx(_components.code,{children:`province`}),` is required too, unless Okasie can derive it (see below). You may send these fields at the top level or inside `,_jsx(_components.code,{children:`location`}),`.`]}),`\n`,_jsx(ParamField,{body:`postalCode`,type:`string`,id:`param-postal-code`,children:_jsxs(_components.p,{children:[`Max 32 characters. Where the car stands. For a 4-digit Belgian postal code Okasie derives `,_jsx(_components.code,{children:`province`}),` itself and ignores the `,_jsx(_components.code,{children:`province`}),` you send.`]})}),`\n`,_jsx(ParamField,{body:`city`,type:`string`,id:`param-city`,children:_jsx(_components.p,{children:`Max 120 characters.`})}),`\n`,_jsx(ParamField,{body:`province`,type:`string`,id:`param-province`,children:_jsxs(_components.p,{children:[`Max 120 characters. Only needed when `,_jsx(_components.code,{children:`postalCode`}),` is not a 4-digit Belgian code. Derived values: `,_jsx(_components.code,{children:`Brussel`}),`, `,_jsx(_components.code,{children:`Antwerpen`}),`, `,_jsx(_components.code,{children:`Limburg`}),`, `,_jsx(_components.code,{children:`Oost-Vlaanderen`}),`, `,_jsx(_components.code,{children:`West-Vlaanderen`}),`, `,_jsx(_components.code,{children:`Vlaams-Brabant`}),`, `,_jsx(_components.code,{children:`Waals-Brabant`}),`, `,_jsx(_components.code,{children:`Henegouwen`}),`, `,_jsx(_components.code,{children:`Luik`}),`, `,_jsx(_components.code,{children:`Luxemburg`}),`, `,_jsx(_components.code,{children:`Namen`}),`.`]})}),`\n`,_jsx(ParamField,{body:`latitude`,type:`number`,id:`param-latitude`,children:_jsx(_components.p,{children:`Optional coordinate in decimal degrees. Not range-checked.`})}),`\n`,_jsx(ParamField,{body:`longitude`,type:`number`,id:`param-longitude`,children:_jsx(_components.p,{children:`Optional coordinate in decimal degrees. Not range-checked.`})}),`\n`,_jsxs(ParamField,{body:`location`,type:`object`,id:`param-location`,children:[_jsxs(_components.p,{children:[`Alternative place for the fields above. A non-empty value inside `,_jsx(_components.code,{children:`location`}),` wins over the top-level field.`]}),_jsxs(Expandable,{title:`properties`,children:[_jsxs(ParamField,{body:`postalCode`,type:`string`,id:`param-postal-code-1`,children:[_jsx(_components.em,{children:`Nullable.`}),` Max 32 characters.`]}),_jsxs(ParamField,{body:`city`,type:`string`,id:`param-city-1`,children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters.`]}),_jsxs(ParamField,{body:`province`,type:`string`,id:`param-province-1`,children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters.`]}),_jsx(ParamField,{body:`latitude`,type:`number`,id:`param-latitude-1`,children:`Decimal degrees.`}),_jsx(ParamField,{body:`longitude`,type:`number`,id:`param-longitude-1`,children:`Decimal degrees.`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`vehicle`,children:`Vehicle`}),`\n`,_jsx(ParamField,{body:`brand`,type:`string`,id:`param-brand`,children:_jsxs(_components.p,{children:[`Max 120 characters. Make, for example `,_jsx(_components.code,{children:`Volkswagen`}),`. A make from `,_jsx(_components.a,{href:`/api-reference/brands/list`,children:`List Makes and Models`}),`, or a known variant of it, is stored with Okasie’s name (`,_jsx(_components.code,{children:`VW`}),` becomes `,_jsx(_components.code,{children:`Volkswagen`}),`); any other make is stored as sent.`]})}),`\n`,_jsx(ParamField,{body:`model`,type:`string`,id:`param-model`,children:_jsxs(_components.p,{children:[`Max 120 characters. A model from `,_jsx(_components.a,{href:`/api-reference/brands/list`,children:`List Makes and Models`}),` for that make is stored with Okasie’s spelling (`,_jsx(_components.code,{children:`XC 40`}),` becomes `,_jsx(_components.code,{children:`XC40`}),`); any other model is stored as sent.`]})}),`\n`,_jsx(ParamField,{body:`variant`,type:`string`,id:`param-variant`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters. Version or trim, for example `,_jsx(_components.code,{children:`GTI Clubsport`}),`. Returned as `,_jsx(_components.code,{children:`variant`}),` by the read endpoints.`]})}),`\n`,_jsx(ParamField,{body:`customType`,type:`string`,id:`param-custom-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. Same field as `,_jsx(_components.code,{children:`variant`}),`; when both are sent, `,_jsx(_components.code,{children:`customType`}),` wins.`]})}),`\n`,_jsx(ParamField,{body:`year`,type:`integer`,id:`param-year`,children:_jsxs(_components.p,{children:[`Model year, from 1900 up to next year. Outside that range, `,_jsx(_components.code,{children:`0`}),` and `,_jsx(_components.code,{children:`null`}),` give `,_jsx(_components.code,{children:`422`}),`.`]})}),`\n`,_jsx(ParamField,{body:`firstRegistration`,type:`string`,id:`param-first-registration`,children:_jsxs(_components.p,{children:[`Max 10 characters. Date of first registration. Not validated and stored as sent; use `,_jsx(_components.code,{children:`YYYY-MM-DD`}),` (or `,_jsx(_components.code,{children:`YYYY-MM`}),`) so the site can sort and filter on it.`]})}),`\n`,_jsx(ParamField,{body:`mileage`,type:`integer`,id:`param-mileage`,children:_jsxs(_components.p,{children:[`Odometer reading in km, `,_jsx(_components.code,{children:`0`}),` or more. `,_jsx(_components.code,{children:`0`}),` is stored as empty.`]})}),`\n`,_jsx(ParamField,{body:`fuelType`,type:`string`,id:`param-fuel-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. Free text, mapped to an Okasie label: see `,_jsx(_components.a,{href:`#fuel-type-values`,children:`Fuel type values`}),`.`]})}),`\n`,_jsx(ParamField,{body:`transmission`,type:`string`,id:`param-transmission`,children:_jsxs(_components.p,{children:[`Max 60 characters. Free text, mapped to an Okasie label: see `,_jsx(_components.a,{href:`#transmission-values`,children:`Transmission values`}),`.`]})}),`\n`,_jsx(ParamField,{body:`bodyType`,type:`string`,id:`param-body-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. Free text, mapped to an Okasie label: see `,_jsx(_components.a,{href:`#body-type-values`,children:`Body type values`}),`.`]})}),`\n`,_jsx(ParamField,{body:`engine`,type:`string`,id:`param-engine`,children:_jsxs(_components.p,{children:[`Max 60 characters. Engine displacement in litres, for example `,_jsx(_components.code,{children:`1.6`}),`. The site shows it followed by “L”, so send the number only.`]})}),`\n`,_jsx(ParamField,{body:`powerKw`,type:`number`,id:`param-power-kw`,children:_jsxs(_components.p,{children:[`Engine power in kW, `,_jsx(_components.code,{children:`0`}),` or more. Okasie stores metric horsepower (kW x 1.35962, rounded); the read endpoints convert it back to whole kW, so `,_jsx(_components.code,{children:`110.3`}),` reads back as `,_jsx(_components.code,{children:`110`}),`.`]})}),`\n`,_jsx(ParamField,{body:`driveType`,type:`string`,id:`param-drive-type`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text shown as sent, for example `,_jsx(_components.code,{children:`FWD`}),`, `,_jsx(_components.code,{children:`RWD`}),`, `,_jsx(_components.code,{children:`AWD`}),`, `,_jsx(_components.code,{children:`4x4`}),`.`]})}),`\n`,_jsx(ParamField,{body:`gears`,type:`integer`,id:`param-gears`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Number of gears, 1 to 12.`]})}),`\n`,_jsx(ParamField,{body:`doors`,type:`integer`,id:`param-doors`,children:_jsxs(_components.p,{children:[`Number of doors, 1 to 10. `,_jsx(_components.code,{children:`0`}),` and `,_jsx(_components.code,{children:`null`}),` give `,_jsx(_components.code,{children:`422`}),`; leave it out when unknown.`]})}),`\n`,_jsx(ParamField,{body:`seats`,type:`integer`,id:`param-seats`,children:_jsxs(_components.p,{children:[`Number of seats, 1 to 10. `,_jsx(_components.code,{children:`0`}),` and `,_jsx(_components.code,{children:`null`}),` give `,_jsx(_components.code,{children:`422`}),`; leave it out when unknown.`]})}),`\n`,_jsx(ParamField,{body:`weight`,type:`integer`,id:`param-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Weight in kg, `,_jsx(_components.code,{children:`0`}),` or more.`]})}),`\n`,_jsx(ParamField,{body:`color`,type:`string`,id:`param-color`,children:_jsxs(_components.p,{children:[`Max 60 characters. Exterior colour, free text, for example `,_jsx(_components.code,{children:`Grijs`}),`.`]})}),`\n`,_jsx(ParamField,{body:`paintType`,type:`string`,id:`param-paint-type`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text, for example `,_jsx(_components.code,{children:`Metallic`}),`, `,_jsx(_components.code,{children:`Parelmoer`}),`, `,_jsx(_components.code,{children:`Mat`}),`, `,_jsx(_components.code,{children:`Uni`}),`.`]})}),`\n`,_jsx(ParamField,{body:`interiorColor`,type:`string`,id:`param-interior-color`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text.`]})}),`\n`,_jsx(ParamField,{body:`interiorMaterial`,type:`string`,id:`param-interior-material`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text, for example `,_jsx(_components.code,{children:`Leder`}),`, `,_jsx(_components.code,{children:`Stof`}),`, `,_jsx(_components.code,{children:`Alcantara`}),`, `,_jsx(_components.code,{children:`Kunstleder`}),`.`]})}),`\n`,_jsx(ParamField,{body:`vin`,type:`string`,id:`param-vin`,children:_jsx(_components.p,{children:`Max 32 characters. Chassis number. The format is not checked.`})}),`\n`,_jsx(Heading,{level:`2`,id:`environment`,children:`Environment`}),`\n`,_jsx(ParamField,{body:`co2Emission`,type:`integer`,id:`param-co2-emission`,children:_jsxs(_components.p,{children:[`CO2 emission in g/km, `,_jsx(_components.code,{children:`0`}),` or more.`]})}),`\n`,_jsx(ParamField,{body:`co2Type`,type:`string`,id:`param-co2-type`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 30 characters. Test cycle of the CO2 value, free text, for example `,_jsx(_components.code,{children:`WLTP`}),` or `,_jsx(_components.code,{children:`NEDC`}),`.`]})}),`\n`,_jsx(ParamField,{body:`emissionClass`,type:`string`,id:`param-emission-class`,children:_jsxs(_components.p,{children:[`Max 30 characters. Euro norm, free text, for example `,_jsx(_components.code,{children:`Euro 6d`}),`. The site’s emission filter matches on part of this text.`]})}),`\n`,_jsx(ParamField,{body:`fuelConsumption`,type:`number`,id:`param-fuel-consumption`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Combined consumption in l/100 km, `,_jsx(_components.code,{children:`0`}),` or more, decimals allowed.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`history-warranty-and-sale`,children:`History, warranty and sale`}),`\n`,_jsx(ParamField,{body:`previousOwners`,type:`integer`,id:`param-previous-owners`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Number of previous owners, `,_jsx(_components.code,{children:`0`}),` or more. `,_jsx(_components.code,{children:`0`}),` is stored as empty.`]})}),`\n`,_jsx(ParamField,{body:`serviceHistory`,type:`boolean`,id:`param-service-history`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` `,_jsx(_components.code,{children:`true`}),` when a maintenance history is available. Leave it out when unknown: `,_jsx(_components.code,{children:`null`}),` is stored as `,_jsx(_components.code,{children:`false`}),`.`]})}),`\n`,_jsx(ParamField,{body:`warranty`,type:`boolean`,id:`param-warranty`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` `,_jsx(_components.code,{children:`true`}),` when the car is sold with warranty. Leave it out when unknown: `,_jsx(_components.code,{children:`null`}),` is stored as `,_jsx(_components.code,{children:`false`}),`.`]})}),`\n`,_jsx(ParamField,{body:`warrantyMonths`,type:`integer`,id:`param-warranty-months`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Warranty duration in months, `,_jsx(_components.code,{children:`0`}),` or more.`]})}),`\n`,_jsx(ParamField,{body:`vehicleType`,type:`string`,default:`margin`,id:`param-vehicle-type`,children:_jsxs(_components.p,{children:[`Max 60 characters. VAT regime: `,_jsx(_components.code,{children:`margin`}),` (margin scheme, the default) or `,_jsx(_components.code,{children:`vat`}),` (VAT deductible; `,_jsx(_components.code,{children:`btw`}),` is also treated as VAT deductible). Other values are stored as sent.`]})}),`\n`,_jsx(ParamField,{body:`conditionTags`,type:`string[]`,id:`param-condition-tags`,children:_jsxs(_components.p,{children:[`Up to 6 tags of max 32 characters each, shown on the listing and used by the site’s condition filter. Free text. More than 6 tags or a longer tag gives `,_jsx(_components.code,{children:`422`}),`; empty tags are dropped.`]})}),`\n`,_jsx(ParamField,{body:`condition`,type:`string`,id:`param-condition`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 60 characters. Free text, for example `,_jsx(_components.code,{children:`Gebruikt`}),`. Stored as a single condition tag, and only when `,_jsx(_components.code,{children:`conditionTags`}),` is not sent.`]})}),`\n`,_jsx(ParamField,{body:`carPassUrl`,type:`string`,id:`param-car-pass-url`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Car-Pass of the car. Accepted: a URL on `,_jsx(_components.code,{children:`public.car-pass.be`}),` or `,_jsx(_components.code,{children:`car-pass.be`}),` (stored as sent), or a certificate number with exactly 11 digits (spaces and dashes are removed). Anything else gives `,_jsx(_components.code,{children:`422`}),`. The same value is also accepted under the names `,_jsx(_components.code,{children:`carPass`}),`, `,_jsx(_components.code,{children:`car_pass_url`}),` and `,_jsx(_components.code,{children:`carPassNumber`}),`; send only one of them. Read back as `,_jsx(_components.code,{children:`carPassUrl`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`features`,children:`Features`}),`\n`,_jsxs(ParamField,{body:`features`,type:`object[]`,id:`param-features`,children:[_jsxs(_components.p,{children:[`Equipment of the car. Leave it out to keep the current features; `,_jsx(_components.code,{children:`[]`}),` removes them all; otherwise the list replaces the current set. Items without a name are dropped, duplicates (same category and name, case-insensitive) are kept once, and only the first 50 are stored, without a warning.`]}),_jsxs(Expandable,{title:`item properties`,children:[_jsx(ParamField,{body:`name`,type:`string`,id:`param-name`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 120 characters. The feature as shown on the listing, for example `,_jsx(_components.code,{children:`Navigatiesysteem`}),`. `,_jsx(_components.code,{children:`feature`}),` is accepted as another name for this field.`]})}),_jsx(ParamField,{body:`category`,type:`string`,default:`other`,id:`param-category`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Max 32 characters (longer gives `,_jsx(_components.code,{children:`422`}),`). Free text, for example `,_jsx(_components.code,{children:`comfort`}),`, `,_jsx(_components.code,{children:`safety`}),`, `,_jsx(_components.code,{children:`interior`}),`, `,_jsx(_components.code,{children:`exterior`}),`, `,_jsx(_components.code,{children:`technology`}),`.`]})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`images`,children:`Images`}),`\n`,_jsxs(ParamField,{body:`images`,type:`array`,id:`param-images`,children:[_jsxs(_components.p,{children:[`Photos of the car, as URL strings or objects. Leave it out to keep the current photos; `,_jsx(_components.code,{children:`[]`}),` removes them all; otherwise the list replaces the current set, in the order of `,_jsx(_components.code,{children:`position`}),`. Empty entries are dropped and only the first 50 are used, without a warning. See `,_jsx(_components.a,{href:`/guides/image-handling`,children:`Image Handling`}),` for the download rules.`]}),_jsxs(Expandable,{title:`object properties`,children:[_jsx(ParamField,{body:`url`,type:`string`,id:`param-url`,children:_jsxs(_components.p,{children:[_jsx(_components.em,{children:`Nullable.`}),` Public HTTPS URL of the photo, max 2048 characters. `,_jsx(_components.code,{children:`imageUrl`}),` is accepted as another name for this field.`]})}),_jsx(ParamField,{body:`position`,type:`integer`,id:`param-position`,children:_jsxs(_components.p,{children:[`Sort order, `,_jsx(_components.code,{children:`0`}),` or more; the lowest position is the main photo. Defaults to the index in the array.`]})})]}),_jsxs(_components.p,{children:[`A photo Okasie cannot download is skipped and listed in `,_jsx(_components.code,{children:`warnings.skippedImages`}),`; the listing itself is still saved.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[`Every successful call returns `,_jsx(_components.strong,{children:`HTTP 200`}),`, for a new listing as well as for an update.`]}),`\n`,_jsx(ResponseField,{name:`data.listingId`,type:`string`,id:`param-data-listing-id`,children:_jsx(_components.p,{children:`Okasie listing UUID.`})}),`\n`,_jsx(ResponseField,{name:`data.externalReference`,type:`string`,id:`param-data-external-reference`,children:_jsx(_components.p,{children:`Your reference, trimmed.`})}),`\n`,_jsx(ResponseField,{name:`data.status`,type:`string`,id:`param-data-status`,children:_jsxs(_components.p,{children:[`The stored status: `,_jsx(_components.code,{children:`active`}),`, `,_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`sold`}),` or `,_jsx(_components.code,{children:`draft`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`data.listingUrl`,type:`string | null`,id:`param-data-listing-url`,children:_jsxs(_components.p,{children:[`The public page on okasie.be, for example `,_jsx(_components.code,{children:`https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi--0c52cae7-bcaa-4b37-be0d-1b78c92c5225`}),`. Only set when `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`active`}),`; `,_jsx(_components.code,{children:`null`}),` otherwise. The path changes with the title.`]})}),`\n`,_jsx(ResponseField,{name:`data.created`,type:`boolean`,id:`param-data-created`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` when this call created the listing, `,_jsx(_components.code,{children:`false`}),` when it replaced an existing one.`]})}),`\n`,_jsxs(ResponseField,{name:`data.warnings`,type:`object`,id:`param-data-warnings`,children:[_jsx(_components.p,{children:`Only present when photos were skipped.`}),_jsx(Expandable,{title:`properties`,children:_jsx(ResponseField,{name:`skippedImages`,type:`object[]`,id:`param-skipped-images`,children:_jsxs(_components.p,{children:[`One entry per skipped photo: `,_jsx(_components.code,{children:`source`}),` (the URL you sent, or `,_jsx(_components.code,{children:`null`}),`) and `,_jsx(_components.code,{children:`reason`}),`. `,_jsx(_components.code,{children:`reason`}),` is `,_jsx(_components.code,{children:`invalid-url`}),` (not an http or https URL), `,_jsx(_components.code,{children:`mirror_failed`}),`, or a short description in Dutch, such as `,_jsx(_components.code,{children:`Afbeelding ophalen mislukt (404)`}),` or `,_jsx(_components.code,{children:`Afbeeldings-URL is niet toegestaan`}),`.`]})})})]}),`\n`,_jsxs(_components.p,{children:[`The response carries the `,_jsx(_components.a,{href:`/rate-limiting`,children:`rate limit headers`}),`.`]}),`\n`,_jsxs(RequestExample,{children:[_jsx(CodeBlock,{filename:`Minimal`,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PUT`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://www.okasie.be/api/external/v1/listings/DV-123456\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_SECRET\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"dealerLocationCode\": \"OK-00148\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"status\": \"active\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"title\": \"Volkswagen Golf 1.5 TSI Life\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"price\": 21950,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"postalCode\": \"9000\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"city\": \"Gent\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Full`,numberOfLines:`57`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`57`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PUT`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://www.okasie.be/api/external/v1/listings/DV-123456\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer YOUR_API_SECRET\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"dealerLocationCode\": \"OK-00148\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"status\": \"active\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"title\": \"Volkswagen Golf 1.5 TSI Life\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"description\": \"First owner, full dealer maintenance.\\\\nNew tyres in 2026.\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"price\": 21950,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"EUR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"brand\": \"Volkswagen\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"model\": \"Golf\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"variant\": \"Life\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"year\": 2022,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"firstRegistration\": \"2022-03-15\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"mileage\": 38500,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fuelType\": \"Benzine\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"transmission\": \"Automatic\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bodyType\": \"Hatchback\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"engine\": \"1.5\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"powerKw\": 110,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"driveType\": \"FWD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"gears\": 7,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"doors\": 5,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"seats\": 5,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"weight\": 1310,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"color\": \"Grijs\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"paintType\": \"Metallic\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"interiorColor\": \"Zwart\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"interiorMaterial\": \"Stof\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"vin\": \"WVWZZZCDZNW000000\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"co2Emission\": 129,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"co2Type\": \"WLTP\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"emissionClass\": \"Euro 6d\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fuelConsumption\": 5.7,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"previousOwners\": 1,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"serviceHistory\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"warranty\": true,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"warrantyMonths\": 12,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"vehicleType\": \"margin\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"conditionTags\": [\"Gebruikt\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"carPassUrl\": \"https://public.car-pass.be/vhr/00000000-0000-0000-0000-000000000000\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"postalCode\": \"9000\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"city\": \"Gent\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"latitude\": 51.0543,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"longitude\": 3.7174,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"features\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {\"category\": \"comfort\", \"name\": \"Automatische airco\"},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {\"category\": \"technology\", \"name\": \"Apple CarPlay\"},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {\"category\": \"safety\", \"name\": \"Parkeersensoren\"}`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"images\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {\"url\": \"https://images.example.com/dv/123456/1.jpg\", \"position\": 0},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {\"url\": \"https://images.example.com/dv/123456/2.jpg\", \"position\": 1},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://images.example.com/dv/123456/3.jpg\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})]}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Created (200)`,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"listingId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"externalReference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DV-123456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"listingUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi-life--0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Updated, photo skipped (200)`,numberOfLines:`14`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"listingId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"externalReference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DV-123456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"listingUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi-life--0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"warnings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"skippedImages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://images.example.com/dv/123456/3.jpg\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Afbeelding ophalen mislukt (404)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Draft (200)`,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"listingId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"externalReference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DV-123456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"draft\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"listingUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`422 Validation failed`,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"VALIDATION_FAILED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Payload validation failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"issues\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"path\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"doors\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Number must be greater than or equal to 1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"too_small\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"path\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"carPassUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"carPassUrl must be a public car-pass.be URL or an 11-digit certificate number\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"custom\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`400 Missing location`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"INVALID_LOCATION\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"province, city en postalCode zijn verplicht voor een listing\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`409 Plan limit`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LISTING_LIMIT_REACHED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The dealer has reached the number of active listings of its Okasie plan; this listing was not published.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.p,{children:[`Errors use the body `,_jsx(_components.code,{children:`{\"error\": {\"code\", \"message\"}}`}),`. The checks run in this order, and the first one that fails is returned.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UNAUTHORIZED`})}),_jsxs(_components.td,{children:[`Missing or unknown API key, or the key lacks `,_jsx(_components.code,{children:`write:listings`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RATE_LIMITED`})}),_jsxs(_components.td,{children:[`Rate limit reached; the body has `,_jsx(_components.code,{children:`retryAt`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_REFERENCE`})}),_jsx(_components.td,{children:`The path reference is empty`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_JSON`})}),_jsx(_components.td,{children:`The body is not valid JSON`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_BODY`})}),_jsx(_components.td,{children:`The body is not a JSON object`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`422`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`VALIDATION_FAILED`})}),_jsxs(_components.td,{children:[`A field breaks a rule on this page, `,_jsx(_components.code,{children:`title`}),` is missing or empty, or both `,_jsx(_components.code,{children:`dealerProfileId`}),` and `,_jsx(_components.code,{children:`dealerLocationCode`}),` are missing; see `,_jsx(_components.code,{children:`issues`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_TITLE`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`title`}),` only contains spaces`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_PRICE`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`active`}),` or `,_jsx(_components.code,{children:`pending`}),` and `,_jsx(_components.code,{children:`price`}),` is missing or 0`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_PROFILE`})}),_jsxs(_components.td,{children:[`No dealer found for `,_jsx(_components.code,{children:`dealerProfileId`}),` / `,_jsx(_components.code,{children:`dealerLocationCode`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`PROFILE_FORBIDDEN`})}),_jsx(_components.td,{children:`The dealer is not linked to your key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_LOCATION`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`postalCode`}),` or `,_jsx(_components.code,{children:`city`}),` is missing, or `,_jsx(_components.code,{children:`province`}),` is missing for a postal code that is not a 4-digit Belgian code`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REFERENCE_OWNED_BY_OTHER_DEALER`})}),_jsx(_components.td,{children:`Keys limited to approved dealers only: this reference is already used by your key for a listing of another dealer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`LISTING_LIMIT_REACHED`})}),_jsxs(_components.td,{children:[`The resulting status is `,_jsx(_components.code,{children:`active`}),` and the dealer’s plan has no free place. Nothing was saved`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`DEALER_PLAN_REQUIRED`})}),_jsxs(_components.td,{children:[`The resulting status is `,_jsx(_components.code,{children:`active`}),` and the dealer has no active plan. Nothing was saved`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`FETCH_FAILED`}),` / `,_jsx(_components.code,{children:`UPSERT_FAILED`})]}),_jsx(_components.td,{children:`Okasie could not read or save the listing. Nothing was saved; retry later`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`FEATURES_FAILED`}),` / `,_jsx(_components.code,{children:`IMAGES_FAILED`})]}),_jsx(_components.td,{children:`The listing itself was saved, but its features or photos were not. Retry the same call`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A refused write leaves the listing as it was before the call (except after `,_jsx(_components.code,{children:`FEATURES_FAILED`}),` and `,_jsx(_components.code,{children:`IMAGES_FAILED`}),`), so it is always safe to send the same PUT again.`]}),`\n`,_jsx(Heading,{level:`2`,id:`value-mapping`,children:`Value mapping`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`fuelType`}),`, `,_jsx(_components.code,{children:`transmission`}),` and `,_jsx(_components.code,{children:`bodyType`}),` accept free text. Okasie compares your value without case, accents, spaces or punctuation (so `,_jsx(_components.code,{children:`Semi-automatic`}),`, `,_jsx(_components.code,{children:`semi automatic`}),` and `,_jsx(_components.code,{children:`SEMIAUTOMATIC`}),` are the same) against the inputs below and stores the Okasie label. A value that matches nothing is stored as sent, but then does not appear under the site’s search filters, so map your values to one of these inputs.`]}),`\n`,_jsx(Heading,{level:`3`,id:`fuel-type-values`,children:`Fuel type values`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stored label`}),_jsx(_components.th,{children:`Accepted inputs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Benzine`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Benzine`}),`, `,_jsx(_components.code,{children:`benzin`}),`, `,_jsx(_components.code,{children:`gasoline`}),`, `,_jsx(_components.code,{children:`petrol`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Diesel`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Diesel`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Hybride (Benzine)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Hybride (Benzine)`}),`, `,_jsx(_components.code,{children:`hybride`}),`, `,_jsx(_components.code,{children:`hybrid`}),`, `,_jsx(_components.code,{children:`hybride benzine`}),`, `,_jsx(_components.code,{children:`hybrid benzine`}),`, `,_jsx(_components.code,{children:`hybrid petrol`}),`, `,_jsx(_components.code,{children:`hybrid gasoline`}),`, `,_jsx(_components.code,{children:`hybride essence`}),`, `,_jsx(_components.code,{children:`hybrid essence`}),`, `,_jsx(_components.code,{children:`mild hybrid`}),`, `,_jsx(_components.code,{children:`mild hybrid benzine`}),`, `,_jsx(_components.code,{children:`full hybrid`}),`, `,_jsx(_components.code,{children:`full hybrid benzine`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Hybride (Diesel)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Hybride (Diesel)`}),`, `,_jsx(_components.code,{children:`hybride diesel`}),`, `,_jsx(_components.code,{children:`hybrid diesel`}),`, `,_jsx(_components.code,{children:`mild hybrid diesel`}),`, `,_jsx(_components.code,{children:`full hybrid diesel`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Plug-in Hybride (Benzine)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Plug-in Hybride (Benzine)`}),`, `,_jsx(_components.code,{children:`plug-in hybrid benzine`}),`, `,_jsx(_components.code,{children:`plug-in hybrid petrol`}),`, `,_jsx(_components.code,{children:`plug-in hybrid gasoline`}),`, `,_jsx(_components.code,{children:`hybride rechargeable essence`}),`, `,_jsx(_components.code,{children:`hybride rechargeable benzine`}),`, `,_jsx(_components.code,{children:`hybride rechargeable petrol`}),`, `,_jsx(_components.code,{children:`PHEV benzine`}),`, `,_jsx(_components.code,{children:`PHEV essence`}),`, `,_jsx(_components.code,{children:`PHEV petrol`}),`, `,_jsx(_components.code,{children:`PHEV gasoline`}),`, `,_jsx(_components.code,{children:`plug-in hybride opladen benzine`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Plug-in Hybride (Diesel)`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Plug-in Hybride (Diesel)`}),`, `,_jsx(_components.code,{children:`plug-in hybrid diesel`}),`, `,_jsx(_components.code,{children:`hybride rechargeable diesel`}),`, `,_jsx(_components.code,{children:`PHEV diesel`}),`, `,_jsx(_components.code,{children:`plug-in hybride oplad diesel`}),`, `,_jsx(_components.code,{children:`rechargeable hybrid diesel`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Elektrisch`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Elektrisch`}),`, `,_jsx(_components.code,{children:`electric`}),`, `,_jsx(_components.code,{children:`EV`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`LPG`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`LPG`}),`, `,_jsx(_components.code,{children:`autogas`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Anders`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Anders`}),`, `,_jsx(_components.code,{children:`other`}),`, `,_jsx(_components.code,{children:`overig`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`PHEV`}),` on its own, `,_jsx(_components.code,{children:`CNG`}),`, `,_jsx(_components.code,{children:`hydrogen`}),` and `,_jsx(_components.code,{children:`waterstof`}),` are not mapped.`]}),`\n`,_jsx(Heading,{level:`3`,id:`transmission-values`,children:`Transmission values`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stored label`}),_jsx(_components.th,{children:`Accepted inputs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Manueel`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Manueel`}),`, `,_jsx(_components.code,{children:`manual`}),`, `,_jsx(_components.code,{children:`handgeschakeld`}),`, `,_jsx(_components.code,{children:`handshift`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Automaat`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Automaat`}),`, `,_jsx(_components.code,{children:`automatic`}),`, `,_jsx(_components.code,{children:`automatisch`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Halfautomaat`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Halfautomaat`}),`, `,_jsx(_components.code,{children:`semi-automaat`}),`, `,_jsx(_components.code,{children:`semi-automatic`})]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`body-type-values`,children:`Body type values`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Stored label`}),_jsx(_components.th,{children:`Accepted inputs`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Stadswagen`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Stadswagen`}),`, `,_jsx(_components.code,{children:`citycar`}),`, `,_jsx(_components.code,{children:`citadine`}),`, `,_jsx(_components.code,{children:`anders`}),`, `,_jsx(_components.code,{children:`other`}),`, `,_jsx(_components.code,{children:`overig`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Hatchback`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Hatchback`}),`, `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`compacte`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SUV \u0026 Pick-up`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUV \u0026 Pick-up`}),`, `,_jsx(_components.code,{children:`SUV`}),`, `,_jsx(_components.code,{children:`sport utility vehicle`}),`, `,_jsx(_components.code,{children:`pickup`}),`, `,_jsx(_components.code,{children:`pick-up`}),`, `,_jsx(_components.code,{children:`pickup truck`}),`, `,_jsx(_components.code,{children:`SUV pickup`}),`, `,_jsx(_components.code,{children:`SUV and pickup`}),`, `,_jsx(_components.code,{children:`offroader`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Bestelwagen`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Bestelwagen`}),`, `,_jsx(_components.code,{children:`van`}),`, `,_jsx(_components.code,{children:`bestelbreak`}),`, `,_jsx(_components.code,{children:`bedrijfswagen`}),`, `,_jsx(_components.code,{children:`utilitaire`}),`, `,_jsx(_components.code,{children:`fourgon tole`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Cabriolet`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Cabriolet`}),`, `,_jsx(_components.code,{children:`cabrio`}),`, `,_jsx(_components.code,{children:`convertible`}),`, `,_jsx(_components.code,{children:`roadster`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Monovolume`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Monovolume`}),`, `,_jsx(_components.code,{children:`MPV`}),`, `,_jsx(_components.code,{children:`minivan`}),`, `,_jsx(_components.code,{children:`people carrier`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Berline`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Berline`}),`, `,_jsx(_components.code,{children:`sedan`}),`, `,_jsx(_components.code,{children:`saloon`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Break`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Break`}),`, `,_jsx(_components.code,{children:`estate`}),`, `,_jsx(_components.code,{children:`station wagon`}),`, `,_jsx(_components.code,{children:`stationwagen`}),`, `,_jsx(_components.code,{children:`wagon`}),`, `,_jsx(_components.code,{children:`combi`}),`, `,_jsx(_components.code,{children:`kombi`}),`, `,_jsx(_components.code,{children:`touring`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Coupé`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Coupé`}),`, `,_jsx(_components.code,{children:`coupe`}),`, `,_jsx(_components.code,{children:`sport coupe`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Note that `,_jsx(_components.code,{children:`other`}),`, `,_jsx(_components.code,{children:`anders`}),` and `,_jsx(_components.code,{children:`overig`}),` become `,_jsx(_components.code,{children:`Stadswagen`}),` (city car). Leave `,_jsx(_components.code,{children:`bodyType`}),` out when the body type is unknown.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create/Update Listing","api":"PUT /api/external/v1/listings/{externalReference}","description":"Create or replace a vehicle listing by your own reference","href":"/api-reference/listings/upsert"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Create or Update Listing","slug":"create-or-update-listing","depth":1,"children":[]},{"title":"How values are read","slug":"how-values-are-read","depth":2,"children":[]},{"title":"Path parameter","slug":"path-parameter","depth":2,"children":[]},{"title":"Dealer","slug":"dealer","depth":2,"children":[]},{"title":"Status and price","slug":"status-and-price","depth":2,"children":[]},{"title":"Title and description","slug":"title-and-description","depth":2,"children":[]},{"title":"Location","slug":"location","depth":2,"children":[]},{"title":"Vehicle","slug":"vehicle","depth":2,"children":[]},{"title":"Environment","slug":"environment","depth":2,"children":[]},{"title":"History, warranty and sale","slug":"history-warranty-and-sale","depth":2,"children":[]},{"title":"Features","slug":"features","depth":2,"children":[]},{"title":"Images","slug":"images","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]},{"title":"Value mapping","slug":"value-mapping","depth":2,"children":[{"title":"Fuel type values","slug":"fuel-type-values","depth":3,"children":[]},{"title":"Transmission values","slug":"transmission-values","depth":3,"children":[]},{"title":"Body type values","slug":"body-type-values","depth":3,"children":[]}]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"Minimal","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"11\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> PUT\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"https://www.okasie.be/api/external/v1/listings/DV-123456\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer YOUR_API_SECRET\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -d\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"dealerLocationCode\": \"OK-00148\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"status\": \"active\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"title\": \"Volkswagen Golf 1.5 TSI Life\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"price\": 21950,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"postalCode\": \"9000\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"city\": \"Gent\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Full","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"57\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> PUT\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"https://www.okasie.be/api/external/v1/listings/DV-123456\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer YOUR_API_SECRET\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -d\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"dealerLocationCode\": \"OK-00148\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"status\": \"active\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"title\": \"Volkswagen Golf 1.5 TSI Life\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"description\": \"First owner, full dealer maintenance.\\nNew tyres in 2026.\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"price\": 21950,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"EUR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"brand\": \"Volkswagen\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"model\": \"Golf\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"variant\": \"Life\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"year\": 2022,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"firstRegistration\": \"2022-03-15\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"mileage\": 38500,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"fuelType\": \"Benzine\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"transmission\": \"Automatic\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"bodyType\": \"Hatchback\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"engine\": \"1.5\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"powerKw\": 110,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"driveType\": \"FWD\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"gears\": 7,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"doors\": 5,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"seats\": 5,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"weight\": 1310,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"color\": \"Grijs\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"paintType\": \"Metallic\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"interiorColor\": \"Zwart\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"interiorMaterial\": \"Stof\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"vin\": \"WVWZZZCDZNW000000\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"co2Emission\": 129,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"co2Type\": \"WLTP\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"emissionClass\": \"Euro 6d\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"fuelConsumption\": 5.7,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"previousOwners\": 1,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"serviceHistory\": true,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"warranty\": true,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"warrantyMonths\": 12,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"vehicleType\": \"margin\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"conditionTags\": [\"Gebruikt\"],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"carPassUrl\": \"https://public.car-pass.be/vhr/00000000-0000-0000-0000-000000000000\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"postalCode\": \"9000\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"city\": \"Gent\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"latitude\": 51.0543,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"longitude\": 3.7174,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"features\": [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\"category\": \"comfort\", \"name\": \"Automatische airco\"},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\"category\": \"technology\", \"name\": \"Apple CarPlay\"},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\"category\": \"safety\", \"name\": \"Parkeersensoren\"}\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"images\": [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\"url\": \"https://images.example.com/dv/123456/1.jpg\", \"position\": 0},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\"url\": \"https://images.example.com/dv/123456/2.jpg\", \"position\": 1},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"https://images.example.com/dv/123456/3.jpg\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> ]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"Created (200)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"9\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"listingId\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"externalReference\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"DV-123456\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"active\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"listingUrl\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi-life--0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Updated, photo skipped (200)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"14\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"listingId\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"externalReference\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"DV-123456\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"active\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"listingUrl\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi-life--0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"warnings\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"skippedImages\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"source\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://images.example.com/dv/123456/3.jpg\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"reason\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Afbeelding ophalen mislukt (404)\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Draft (200)","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"9\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"listingId\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"0c52cae7-bcaa-4b37-be0d-1b78c92c5225\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"externalReference\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"DV-123456\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"draft\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"listingUrl\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"422 Validation failed","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"10\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"error\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"VALIDATION_FAILED\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Payload validation failed\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"issues\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"path\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"doors\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Number must be greater than or equal to 1\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"too_small\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"path\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"carPassUrl\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"carPassUrl must be a public car-pass.be URL or an 11-digit certificate number\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"custom\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"400 Missing location","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"6\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"error\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"INVALID_LOCATION\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"province, city en postalCode zijn verplicht voor een listing\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"409 Plan limit","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"6\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"error\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"LISTING_LIMIT_REACHED\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"The dealer has reached the number of active listings of its Okasie plan; this listing was not published.\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Create/Update Listing","path":"/api/external/v1/listings/{externalReference}","servers":[{"url":"https://www.okasie.be"}],"method":"put","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{"externalReference":{"schema":[{"type":"string","description":"Your own identifier for this car, for example the advertisement id in your system. It is unique per API key: the same reference always addresses the same Okasie listing. Leading and trailing spaces are removed. There is no fixed maximum length; keep it under 64 characters and URL-encode characters such as `/` , `?` and `#` . On a key limited to dealers Okasie approved, a reference that was used for one dealer can never be used for another dealer ( `409 REFERENCE_OWNED_BY_OTHER_DEALER` ), also not after the listing was deleted. On other keys, sending the same reference with another dealer moves the listing to that dealer.","required":true}]}}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"dealerLocationCode":[{"type":"string","description":"The dealer’s Okasie Dealer ID, for example `OK-00148` (max 120 characters, case-insensitive). The dealer finds it in the Okasie dashboard under Integraties . Required when `dealerProfileId` is not sent. The dealer must be linked to your API key, else `403 PROFILE_FORBIDDEN` . An unknown Dealer ID gives `400 INVALID_PROFILE` ."}],"dealerProfileId":[{"type":"string","description":"The dealer’s profile UUID (max 120 characters), as returned in `dealer.id` by List Listings or `id` by List Locations . Required when `dealerLocationCode` is not sent. A value that is not a UUID is looked up as a Dealer ID."}],"status":[{"type":"string","description":"One of `active` , `pending` , `sold` , `draft` (case-insensitive). Any other value gives `422` . `active` : published on okasie.be. Counts towards the dealer’s plan; refused with `409 LISTING_LIMIT_REACHED` or `409 DEALER_PLAN_REQUIRED` when the plan does not allow it. `pending` : saved, not shown on the site. `draft` : saved, not shown on the site. `sold` : marked as sold and taken offline about an hour later (60 to 75 minutes) (its status then becomes `inactive` ). Same effect as Delete Listing ."}],"price":[{"type":"number","description":"Asking price in euro, `0` or more, decimals allowed. Required and greater than 0 when `status` is `active` or `pending` ( `400 INVALID_PRICE` ). A negative price gives `422` ."}],"currency":[{"type":"string","description":"Exactly 3 characters, stored in upper case. Okasie shows every price in euro and the read endpoints always return `EUR` , so send `EUR` or leave it out."}],"title":[{"type":"string","description":"The heading of the listing, also used in its public URL. Must contain at least one non-space character: a missing or empty string gives `422` , a string of spaces gives `400 INVALID_TITLE` . No maximum is enforced; around 100 characters reads best.","required":true}],"description":[{"type":"string","description":"Nullable. Max 15,000 characters. Plain text; use `\\n` for line breaks. HTML is not rendered."}],"postalCode":[{"type":"string","description":"Max 32 characters. Where the car stands. For a 4-digit Belgian postal code Okasie derives `province` itself and ignores the `province` you send."}],"city":[{"type":"string","description":"Max 120 characters."}],"province":[{"type":"string","description":"Max 120 characters. Only needed when `postalCode` is not a 4-digit Belgian code. Derived values: `Brussel` , `Antwerpen` , `Limburg` , `Oost-Vlaanderen` , `West-Vlaanderen` , `Vlaams-Brabant` , `Waals-Brabant` , `Henegouwen` , `Luik` , `Luxemburg` , `Namen` ."}],"latitude":[{"type":"number","description":"Optional coordinate in decimal degrees. Not range-checked."}],"longitude":[{"type":"number","description":"Optional coordinate in decimal degrees. Not range-checked."}],"location":[{"type":"object","properties":{"postalCode":[{"type":"string","description":"Nullable. Max 32 characters."}],"city":[{"type":"string","description":"Nullable. Max 120 characters."}],"province":[{"type":"string","description":"Nullable. Max 120 characters."}],"latitude":[{"type":"number","description":"Decimal degrees."}],"longitude":[{"type":"number","description":"Decimal degrees."}]},"description":"Alternative place for the fields above. A non-empty value inside `location` wins over the top-level field."}],"brand":[{"type":"string","description":"Max 120 characters. Make, for example `Volkswagen` . A make from List Makes and Models , or a known variant of it, is stored with Okasie’s name ( `VW` becomes `Volkswagen` ); any other make is stored as sent."}],"model":[{"type":"string","description":"Max 120 characters. A model from List Makes and Models for that make is stored with Okasie’s spelling ( `XC 40` becomes `XC40` ); any other model is stored as sent."}],"variant":[{"type":"string","description":"Nullable. Max 120 characters. Version or trim, for example `GTI Clubsport` . Returned as `variant` by the read endpoints."}],"customType":[{"type":"string","description":"Max 60 characters. Same field as `variant` ; when both are sent, `customType` wins."}],"year":[{"type":"integer","description":"Model year, from 1900 up to next year. Outside that range, `0` and `null` give `422` ."}],"firstRegistration":[{"type":"string","description":"Max 10 characters. Date of first registration. Not validated and stored as sent; use `YYYY-MM-DD` (or `YYYY-MM` ) so the site can sort and filter on it."}],"mileage":[{"type":"integer","description":"Odometer reading in km, `0` or more. `0` is stored as empty."}],"fuelType":[{"type":"string","description":"Max 60 characters. Free text, mapped to an Okasie label: see Fuel type values ."}],"transmission":[{"type":"string","description":"Max 60 characters. Free text, mapped to an Okasie label: see Transmission values ."}],"bodyType":[{"type":"string","description":"Max 60 characters. Free text, mapped to an Okasie label: see Body type values ."}],"engine":[{"type":"string","description":"Max 60 characters. Engine displacement in litres, for example `1.6` . The site shows it followed by “L”, so send the number only."}],"powerKw":[{"type":"number","description":"Engine power in kW, `0` or more. Okasie stores metric horsepower (kW x 1.35962, rounded); the read endpoints convert it back to whole kW, so `110.3` reads back as `110` ."}],"driveType":[{"type":"string","description":"Nullable. Max 60 characters. Free text shown as sent, for example `FWD` , `RWD` , `AWD` , `4x4` ."}],"gears":[{"type":"integer","description":"Nullable. Number of gears, 1 to 12."}],"doors":[{"type":"integer","description":"Number of doors, 1 to 10. `0` and `null` give `422` ; leave it out when unknown."}],"seats":[{"type":"integer","description":"Number of seats, 1 to 10. `0` and `null` give `422` ; leave it out when unknown."}],"weight":[{"type":"integer","description":"Nullable. Weight in kg, `0` or more."}],"color":[{"type":"string","description":"Max 60 characters. Exterior colour, free text, for example `Grijs` ."}],"paintType":[{"type":"string","description":"Nullable. Max 60 characters. Free text, for example `Metallic` , `Parelmoer` , `Mat` , `Uni` ."}],"interiorColor":[{"type":"string","description":"Nullable. Max 60 characters. Free text."}],"interiorMaterial":[{"type":"string","description":"Nullable. Max 60 characters. Free text, for example `Leder` , `Stof` , `Alcantara` , `Kunstleder` ."}],"vin":[{"type":"string","description":"Max 32 characters. Chassis number. The format is not checked."}],"co2Emission":[{"type":"integer","description":"CO2 emission in g/km, `0` or more."}],"co2Type":[{"type":"string","description":"Nullable. Max 30 characters. Test cycle of the CO2 value, free text, for example `WLTP` or `NEDC` ."}],"emissionClass":[{"type":"string","description":"Max 30 characters. Euro norm, free text, for example `Euro 6d` . The site’s emission filter matches on part of this text."}],"fuelConsumption":[{"type":"number","description":"Nullable. Combined consumption in l/100 km, `0` or more, decimals allowed."}],"previousOwners":[{"type":"integer","description":"Nullable. Number of previous owners, `0` or more. `0` is stored as empty."}],"serviceHistory":[{"type":"boolean","description":"Nullable. `true` when a maintenance history is available. Leave it out when unknown: `null` is stored as `false` ."}],"warranty":[{"type":"boolean","description":"Nullable. `true` when the car is sold with warranty. Leave it out when unknown: `null` is stored as `false` ."}],"warrantyMonths":[{"type":"integer","description":"Nullable. Warranty duration in months, `0` or more."}],"vehicleType":[{"type":"string","description":"Max 60 characters. VAT regime: `margin` (margin scheme, the default) or `vat` (VAT deductible; `btw` is also treated as VAT deductible). Other values are stored as sent."}],"conditionTags":[{"type":"array","items":[{"type":"string"}],"description":"Up to 6 tags of max 32 characters each, shown on the listing and used by the site’s condition filter. Free text. More than 6 tags or a longer tag gives `422` ; empty tags are dropped."}],"condition":[{"type":"string","description":"Nullable. Max 60 characters. Free text, for example `Gebruikt` . Stored as a single condition tag, and only when `conditionTags` is not sent."}],"carPassUrl":[{"type":"string","description":"Nullable. Car-Pass of the car. Accepted: a URL on `public.car-pass.be` or `car-pass.be` (stored as sent), or a certificate number with exactly 11 digits (spaces and dashes are removed). Anything else gives `422` . The same value is also accepted under the names `carPass` , `car_pass_url` and `carPassNumber` ; send only one of them. Read back as `carPassUrl` ."}],"features":[{"type":"array","items":[{"type":"object","properties":{"name":[{"type":"string","description":"Nullable. Max 120 characters. The feature as shown on the listing, for example `Navigatiesysteem` . `feature` is accepted as another name for this field."}],"category":[{"type":"string","description":"Nullable. Max 32 characters (longer gives `422` ). Free text, for example `comfort` , `safety` , `interior` , `exterior` , `technology` ."}]}}],"description":"Equipment of the car. Leave it out to keep the current features; `[]` removes them all; otherwise the list replaces the current set. Items without a name are dropped, duplicates (same category and name, case-insensitive) are kept once, and only the first 50 are stored, without a warning."}],"images":[{"type":"array","items":[{"type":"object","properties":{"url":[{"type":"string","description":"Nullable. Public HTTPS URL of the photo, max 2048 characters. `imageUrl` is accepted as another name for this field."}],"position":[{"type":"integer","description":"Sort order, `0` or more; the lowest position is the main photo. Defaults to the index in the array."}]}}],"description":"Photos of the car, as URL strings or objects. Leave it out to keep the current photos; `[]` removes them all; otherwise the list replaces the current set, in the order of `position` . Empty entries are dropped and only the first 50 are used, without a warning. See Image Handling for the download rules. A photo Okasie cannot download is skipped and listed in `warnings.skippedImages` ; the listing itself is still saved."}]}}],"examples":{"example":{"value":{"dealerLocationCode":"\u003cstring>","dealerProfileId":"\u003cstring>","status":"\u003cstring>","price":123,"currency":"\u003cstring>","title":"\u003cstring>","description":"\u003cstring>","postalCode":"\u003cstring>","city":"\u003cstring>","province":"\u003cstring>","latitude":123,"longitude":123,"location":{"postalCode":"\u003cstring>","city":"\u003cstring>","province":"\u003cstring>","latitude":123,"longitude":123},"brand":"\u003cstring>","model":"\u003cstring>","variant":"\u003cstring>","customType":"\u003cstring>","year":123,"firstRegistration":"\u003cstring>","mileage":123,"fuelType":"\u003cstring>","transmission":"\u003cstring>","bodyType":"\u003cstring>","engine":"\u003cstring>","powerKw":123,"driveType":"\u003cstring>","gears":123,"doors":123,"seats":123,"weight":123,"color":"\u003cstring>","paintType":"\u003cstring>","interiorColor":"\u003cstring>","interiorMaterial":"\u003cstring>","vin":"\u003cstring>","co2Emission":123,"co2Type":"\u003cstring>","emissionClass":"\u003cstring>","fuelConsumption":123,"previousOwners":123,"serviceHistory":true,"warranty":true,"warrantyMonths":123,"vehicleType":"\u003cstring>","conditionTags":["\u003cstring>"],"condition":"\u003cstring>","carPassUrl":"\u003cstring>","features":[{"name":"\u003cstring>","category":"\u003cstring>"}],"images":[{"url":"\u003cstring>","position":123}]}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"data.listingId":[{"type":"string","description":"Okasie listing UUID."}],"data.externalReference":[{"type":"string","description":"Your reference, trimmed."}],"data.status":[{"type":"string","description":"The stored status: `active` , `pending` , `sold` or `draft` ."}],"data.listingUrl":[{"type":"object","properties":{},"description":"The public page on okasie.be, for example `https://www.okasie.be/aanbod/volkswagen-golf-1-5-tsi--0c52cae7-bcaa-4b37-be0d-1b78c92c5225` . Only set when `status` is `active` ; `null` otherwise. The path changes with the title."}],"data.created":[{"type":"boolean","description":"`true` when this call created the listing, `false` when it replaced an existing one."}],"data.warnings":[{"type":"object","properties":{"skippedImages":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"One entry per skipped photo: `source` (the URL you sent, or `null` ) and `reason` . `reason` is `invalid-url` (not an http or https URL), `mirror_failed` , or a short description in Dutch, such as `Afbeelding ophalen mislukt (404)` or `Afbeeldings-URL is niet toegestaan` ."}]},"description":"Only present when photos were skipped."}]}}],"examples":{"example":{"value":{"data.listingId":"\u003cstring>","data.externalReference":"\u003cstring>","data.status":"\u003cstring>","data.listingUrl":{},"data.created":true,"data.warnings":{"skippedImages":[{}]}}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"okasie","siteName":"Okasie Partner API","title":"Create/Update Listing - Okasie Partner API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T09:04:06.381Z","originalFileLocation":"api-reference/listings/upsert.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create or replace a vehicle listing by your own reference\">\u003cmeta data-mint-head name=\"application-name\" content=\"Okasie Partner API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create/Update Listing - Okasie Partner API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create or replace a vehicle listing by your own reference\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Okasie Partner API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://okasie.mintlify.app/api-reference/listings/upsert\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://okasie.mintlify.site/_mintlify/api/og/v2?division=Listings\u0026amp;title=Create%2FUpdate+Listing\u0026amp;description=Create+or+replace+a+vehicle+listing+by+your+own+reference\u0026amp;theme=d7d0dfc887ac30bb95f64423\u0026amp;signature=1b56c61be3e4e50a166e0c6a50db311271a07656e04f34e3846254338f895664\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create/Update Listing - Okasie Partner API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create or replace a vehicle listing by your own reference\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://okasie.mintlify.site/_mintlify/api/og/v2?division=Listings\u0026amp;title=Create%2FUpdate+Listing\u0026amp;description=Create+or+replace+a+vehicle+listing+by+your+own+reference\u0026amp;theme=d7d0dfc887ac30bb95f64423\u0026amp;signature=1b56c61be3e4e50a166e0c6a50db311271a07656e04f34e3846254338f895664\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/okasie/_RYJZvgDxBK3vsOH/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Okasie Partner API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF5001\">\u003clink data-mint-head rel=\"canonical\" href=\"https://okasie.mintlify.app/api-reference/listings/upsert\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/listings/upsert.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://okasie.mintlify.app/#organization\",\"name\":\"Okasie Partner API\",\"url\":\"https://okasie.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/okasie/Xrg9mpWuG2fZBeSf/logo/light.svg?fit=max\u0026auto=format\u0026n=Xrg9mpWuG2fZBeSf\u0026q=85\u0026s=b3fab5719f3cebf1d876b7161407a347\"}},{\"@type\":\"WebSite\",\"@id\":\"https://okasie.mintlify.app#website\",\"name\":\"Okasie Partner API\",\"url\":\"https://okasie.mintlify.app\",\"publisher\":{\"@id\":\"https://okasie.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://okasie.mintlify.app/api-reference/listings/upsert#webpage\",\"url\":\"https://okasie.mintlify.app/api-reference/listings/upsert\",\"name\":\"Create/Update Listing\",\"description\":\"Create or replace a vehicle listing by your own reference\",\"dateModified\":\"2026-11-12T09:04:06.381Z\",\"isPartOf\":{\"@id\":\"https://okasie.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://okasie.mintlify.app/api-reference/listings/upsert#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://okasie.mintlify.app/api-reference/listings/upsert#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Listings\",\"item\":\"https://okasie.mintlify.app/api-reference/listings/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create/Update Listing\",\"item\":\"https://okasie.mintlify.app/api-reference/listings/upsert\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://okasie.mintlify.app/api-reference/listings/upsert#apireference\",\"headline\":\"Create/Update Listing\",\"name\":\"Create/Update Listing\",\"description\":\"Create or replace a vehicle listing by your own reference\",\"url\":\"https://okasie.mintlify.app/api-reference/listings/upsert\",\"mainEntityOfPage\":{\"@id\":\"https://okasie.mintlify.app/api-reference/listings/upsert#webpage\"},\"dateModified\":\"2026-11-12T09:04:06.381Z\",\"publisher\":{\"@id\":\"https://okasie.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://okasie.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Okasie Partner API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Okasie Partner API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/listings/upsert.md","siteName":"Okasie Partner API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference Overview","href":"/api-reference/overview"}]},{"group":"Listings","pages":[{"title":"List Listings","api":"GET /api/external/v1/listings","description":"Read the listings of the dealers your key can reach","href":"/api-reference/listings/list"},{"title":"Create/Update Listing","api":"PUT /api/external/v1/listings/{externalReference}","href":"/api-reference/listings/upsert"},{"title":"Bulk Create/Update Listings","api":"POST /api/external/v1/listings/bulk-upsert","description":"Create or replace up to 100 listings in one request","href":"/api-reference/listings/bulk-upsert"},{"title":"Delete Listing","api":"DELETE /api/external/v1/listings/{externalReference}","href":"/api-reference/listings/delete"},{"title":"Change Listing Status","api":"POST /api/external/v1/listings/{externalReference}/status","href":"/api-reference/listings/status"}]},{"group":"Locations","pages":[{"title":"List Locations","api":"GET /api/external/v1/locations","href":"/api-reference/locations/list"},{"title":"Get Location Listings","api":"GET /api/external/v1/locations/{id}/listings","href":"/api-reference/locations/listings"}]},{"group":"Brands","pages":[{"title":"List Makes and Models","api":"GET /api/external/v1/brands","href":"/api-reference/brands/list"}]}]}]},"basePath":"","title":"Create/Update Listing - Okasie Partner API","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js"]}