ImportOS · Документація
Довідник API

GET /v1/listings/search

Normalized search across listing sources

Normalized search across listing sources

Search by natural language (q) and/or structured filters. Combines the platform listings cache with a live fan-out to healthy sources (per-source timeout; a failing or blocked source is reported in errors[] and never fails the request). Results are deduplicated across sources and ranked. Requires scope read:listings.

  • Автентифікація: заголовок Authorization: Bearer rv_live_... (API-ключі та scopes)
  • Потрібний scope: read:listings
Опис операції, параметрів і полів походить зі специфікації OpenAPI (openapi.json) і подається англійською, як у самому API.

Параметри

ПолеДеТипОбов’язк.Опис
qquerystringніNatural-language query, e.g. "BMW X5 2019-2021 up to 35 000 EUR, diesel, under 150k km". Structured params below override what is parsed from q.
makequerystringні
modelquerystringні
year_fromqueryintegerні
year_toqueryintegerні
price_min_eurquerynumber | nullні
price_max_eurquerynumber | nullні
mileage_max_kmquerynumber | nullні
fuelquerystringніComma-separated: petrol,diesel,hybrid,phev,ev,lpg,cng,hydrogen,other.
countryquerystringніComma-separated ISO-3166 alpha-2 codes of the car location, e.g. DE,PL.
marketquerystringніComma-separated: us,eu,cn,kr,ua,ge.
sourcesquerystringніComma-separated source keys to restrict the search to (e.g. mobile_de,otomoto).
no_accidentsquery"true" | "false"ніExclude salvage/rebuilt/flood titles.
limitqueryintegerні
livequery"true" | "false"ніtrue: also query healthy live sources (slower, bounded by a timeout). false: only the platform cache.

Відповіді

200

Normalized listings.

application/json · Схема: SearchListingsResponse

ПолеТипОбов’язк.Опис
queryobjectтакThe structured query that was actually executed.
query.textstringні
query.makestringні
query.modelstringні
query.yearFromintegerні
query.yearTointegerні
query.priceMinobjectні
query.priceMaxobjectні
query.mileageMaxKmnumberні
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.markets"us" | "eu" | "cn" | "kr" | "ua" | "ge"[]ні
query.countriesstring[]ні
query.noAccidentsbooleanні
query.sourceKeysstring[]ні
query.limitintegerні
query.pageintegerні
query_parser"structured" | "rules" | "llm"такHow q was interpreted: structured (no q), rules (rule-based) or llm.
resultsobject[]так
results[].sourceKeystringні
results[].externalIdstringні
results[].urlstring (uri)ні
results[].titlestringні
results[].makestring | nullні
results[].modelstring | nullні
results[].trimstring | nullні
results[].yearinteger | nullні
results[].vinstring | nullні
results[].priceobjectні
results[].priceEurnumber | nullні
results[].priceType"fixed" | "current_bid" | "buy_now" | "estimate" | "unknown"ні
results[].mileageKmnumber | nullні
results[].fuel"petrol" | "diesel" | "hybrid" | "phev" | "ev" | "lpg" | "cng" | "hydrogen" | "other" | nullні
results[].gearbox"manual" | "automatic" | "cvt" | "robot" | "other" | nullні
results[].drive"fwd" | "rwd" | "awd" | "4wd" | nullні
results[].body"sedan" | "hatchback" | "wagon" | "suv" | "crossover" | "coupe" | "convertible" | "minivan" | "van" | "pickup" | "truck" | "motorcycle" | "other" | nullні
results[].engineCcnumber | nullні
results[].powerKwnumber | nullні
results[].batteryKwhnumber | nullні
results[].colorstring | nullні
results[].damageobjectні
results[].titleStatus"clean" | "salvage" | "rebuilt" | "flood" | "junk" | "parts_only" | "certificate" | "unknown" | nullні
results[].locationobjectні
results[].market"us" | "eu" | "cn" | "kr" | "ua" | "ge"ні
results[].sellerobjectні
results[].photosstring (uri)[]ні
results[].auctionobjectні
results[].listedAtstring | null (date-time)ні
results[].fetchedAtstring (date-time)ні
results[].completenessnumberні
results[].detailsobjectні
results[].sourcesobject[]ніAll sources where this car was found (deduplicated by VIN / photo / fuzzy match).
results[].scorenumberніRank score 0..1 (data completeness, freshness, multi-source confirmation).
totalintegerтакNumber of deduplicated results before the limit was applied.
sourcesobjectтак
sources.cacheobjectтак
sources.liveobjectтак
errorsobject[]такPer-source problems. A failing source never fails the whole search.
errors[].source_keystringні
errors[].code"timeout" | "blocked" | "failed" | "unhealthy" | "aborted"ні
errors[].messagestringні
errors[].blocked_reasonstringні
took_msintegerтак

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

502

FX provider unavailable.

application/problem+json · Схема: Problem

Приклад

curl -s "https://api.importos.app/v1/listings/search?q=BMW%20X5%202019-2021%20%D0%B4%D0%BE%2035000%20EUR%20%D0%B4%D0%B8%D0%B7%D0%B5%D0%BB%D1%8C&limit=5" \
  -H "Authorization: Bearer $IMPORTOS_API_KEY"

На цій сторінці