GET /v1/catalog/search
Search the EU used-car catalogue (natural language and/or filters)
Search the EU used-car catalogue (natural language and/or filters)
Searches the continuously crawled catalogue of European listings (deduplicated across sites, prices in EUR, landed cost in Ukraine without delivery, deal score). Pass text (natural language) and/or structured filters; structured filters override what was parsed from text. Returns cards, the executed query, how text was understood and a link to the same search on the tenant public site catalogue. Requires scope read:listings.
- Автентифікація: заголовок
Authorization: Bearer rv_live_...(API-ключі та scopes) - Потрібний scope:
read:listings
openapi.json) і подається англійською, як у самому API.Параметри
| Поле | Де | Тип | Обов’язк. | Опис |
|---|---|---|---|---|
text | query | string | ні | Natural-language query. Structured parameters below override what is parsed from text. |
make | query | string | ні | Comma-separated make slugs, e.g. bmw,audi. |
model | query | string | ні | Comma-separated "<make>/<model>" slugs, e.g. bmw/x5,volkswagen/golf. |
year_from | query | integer | ні | |
year_to | query | integer | ні | |
price_from_eur | query | integer | null | ні | |
price_to_eur | query | integer | null | ні | |
mileage_from_km | query | integer | null | ні | |
mileage_to_km | query | integer | null | ні | |
power_from_kw | query | integer | null | ні | |
power_to_kw | query | integer | null | ні | |
fuel | query | string | ні | Comma-separated: petrol,diesel,hybrid,phev,ev,lpg,cng,hydrogen,other. |
gearbox | query | string | ні | Comma-separated: manual,automatic,cvt,robot,other. |
body | query | string | ні | Comma-separated: sedan,hatchback,wagon,suv,crossover,coupe,convertible,minivan,van,pickup,... |
drive | query | string | ні | Comma-separated: fwd,rwd,awd,4wd. |
color | query | string | ні | Comma-separated: black,white,grey,silver,blue,red,green,brown,beige,yellow,orange,other. |
country | query | string | ні | Comma-separated lowercase ISO-3166 codes of EU catalogue markets, e.g. de,nl,be. |
seller | query | string | ні | Comma-separated: dealer,private. |
vat | query | string | ні | deductible (VAT reclaimable, net price available) and/or included (margin scheme). |
posted_within_days | query | integer | ні | |
sort | query | "relevance" | "newest" | "price_asc" | "price_desc" | "mileage_asc" | "year_desc" | "landed_asc" | "deal_score" | ні | |
locale | query | "uk" | "pl" | "en" | ні | Language of chip labels. |
page | query | integer | ні | |
page_size | query | integer | ні |
Відповіді
200
Catalogue search result.
application/json · Схема: CatalogSearchResponse
| Поле | Тип | Обов’язк. | Опис |
|---|---|---|---|
query | object | так | Filters that were actually executed. |
query.q | string | ні | |
query.make | string[] | ні | |
query.model | string[] | ні | |
query.yearFrom | integer | null | ні | |
query.yearTo | integer | null | ні | |
query.priceFrom | integer | null | ні | |
query.priceTo | integer | null | ні | |
query.mileageFrom | integer | null | ні | |
query.mileageTo | integer | null | ні | |
query.powerFrom | integer | null | ні | |
query.powerTo | integer | null | ні | |
query.fuel | "petrol" | "diesel" | "hybrid" | "phev" | "ev" | "lpg" | "cng" | "hydrogen" | "other"[] | ні | |
query.gearbox | "manual" | "automatic" | "cvt" | "robot" | "other"[] | ні | |
query.body | "sedan" | "hatchback" | "wagon" | "suv" | "crossover" | "coupe" | "convertible" | "minivan" | "van" | "pickup" | "truck" | "motorcycle" | "other"[] | ні | |
query.drive | "fwd" | "rwd" | "awd" | "4wd"[] | ні | |
query.color | string[] | ні | |
query.country | "de" | "at" | "nl" | "be" | "lu" | "fr" | "dk" | "se" | "no" | "fi" | "ee" | "lv" | "lt" | "pl" | "cz" | "sk" | "it" | "es"[] | ні | |
query.source | string[] | ні | |
query.sellerType | "dealer" | "private" | "unknown"[] | ні | |
query.vat | "deductible" | "included" | "unknown"[] | ні | |
query.withPhotos | boolean | null | ні | |
query.postedWithinDays | integer | null | ні | |
query.features | "tow_hitch" | "heat_pump" | "panorama_roof" | "apple_carplay" | "android_auto" | "camera" | "camera_360" | "heated_seats" | "heated_steering" | "ventilated_seats" | "head_up" | "adaptive_cruise" | "navigation" | "keyless" | "electric_tailgate" | "leather"[] | ні | |
query.batteryFrom | integer | null | ні | |
query.batteryTo | integer | null | ні | |
query.sort | "relevance" | "newest" | "price_asc" | "price_desc" | "mileage_asc" | "year_desc" | "landed_asc" | "deal_score" | ні | |
parsed | object | так | How text was understood (null when no text was sent). |
parsed.query | object | так | Catalog filters (contract catalog-search). Prices are EUR, mileage km, power kW. |
parsed.chips | object[] | так | What was understood, in reading order. |
parsed.understood | boolean | так | At least one filter (or a sort) was recognised. |
parsed.method | "rules" | "ai" | "ai_cache" | так | rules — deterministic parser; ai — Claude (merged with rules); ai_cache — cached model parse. |
parsed.demo | boolean | так | true — no AI model is configured, the rule-based parser only (demo mode). |
parsed.ai_skipped | "not_configured" | "disabled" | "not_needed" | "rate_limited" | "budget_exhausted" | "timeout" | "error" | "invalid" | "refusal" | null | так | Why the model was not used (null when it was). |
parsed.ignored | string[] | так | Words that could not be turned into a filter. |
parsed.unsupported_markets | string[] | так | Markets outside the EU catalogue the query asked for (us, kr, cn ...): not searchable here. |
parsed.price_original | object | так | Price as written in the query (before conversion to EUR at the ECB/NBU rate). |
parsed.catalog_url | string | null | так | Public site catalogue page with these filters (null if not configured). |
items | object[] | так | |
items[].id | string | ні | |
items[].slug | string | ні | |
items[].title | string | ні | |
items[].make | string | ні | |
items[].makeSlug | string | ні | |
items[].model | string | ні | |
items[].modelSlug | string | ні | |
items[].trim | string | null | ні | |
items[].year | integer | null | ні | |
items[].firstRegistration | string | null | ні | |
items[].mileageKm | integer | null | ні | |
items[].powerKw | integer | null | ні | |
items[].engineCc | integer | null | ні | |
items[].batteryKwh | number | null | ні | |
items[].fuel | "petrol" | "diesel" | "hybrid" | "phev" | "ev" | "lpg" | "cng" | "hydrogen" | "other" | null | ні | |
items[].gearbox | "manual" | "automatic" | "cvt" | "robot" | "other" | null | ні | |
items[].body | "sedan" | "hatchback" | "wagon" | "suv" | "crossover" | "coupe" | "convertible" | "minivan" | "van" | "pickup" | "truck" | "motorcycle" | "other" | null | ні | |
items[].drive | "fwd" | "rwd" | "awd" | "4wd" | null | ні | |
items[].color | string | null | ні | |
items[].priceEur | integer | null | ні | |
items[].netPriceEur | integer | null | ні | |
items[].vat | "deductible" | "included" | "unknown" | ні | |
items[].landedEur | integer | null | ні | |
items[].dealScore | number | null | ні | |
items[].country | "de" | "at" | "nl" | "be" | "lu" | "fr" | "dk" | "se" | "no" | "fi" | "ee" | "lv" | "lt" | "pl" | "cz" | "sk" | "it" | "es" | ні | |
items[].city | string | null | ні | |
items[].sellerType | "dealer" | "private" | "unknown" | ні | |
items[].photos | string (uri)[] | ні | |
items[].photoCount | integer | ні | |
items[].publicationsCount | integer | ні | |
items[].sourceKeys | string[] | ні | |
items[].firstSeenAt | string | ні | |
items[].lastSeenAt | string | ні | |
items[].listedAt | string | ні | |
items[].priceDrop | object | ні | |
items[].cloneCount | integer | ні | |
total | integer | так | |
page | integer | так | |
page_size | integer | так | |
catalog_url | string | null | так | Public site catalogue page with these filters. |
freshness | object[] | так | |
freshness[].sourceKey | string | ні | |
freshness[].lastCrawlAt | string | null | ні | |
freshness[].health | string | ні | |
took_ms | integer | так |
400
Invalid request parameters or body (code validation_error).
application/problem+json · Схема: Problem
401
Missing, malformed, unknown, revoked or expired API key (code unauthorized).
application/problem+json · Схема: Problem
403
The API key lacks the scope required by this endpoint (code insufficient_scope).
application/problem+json · Схема: Problem
429
Rate limit exceeded for the tenant plan (code rate_limited). Wait Retry-After seconds.
application/problem+json · Схема: Problem
503
The catalogue (search index) is not configured or unavailable.
application/problem+json · Схема: Problem