Search listings

One row per LISTING — cross-listings included. A vehicle listed by several locations of one dealer group returns once per location, and total counts listings, not vehicles (856,200 listings describe 618,078 vehicles). This is deliberate and unchanged: deduplicate on vin if you want one row per vehicle, or use the MCP server's search_listings tool, which is deduplicated for you.

Paging: follow next_cursor until it is null. Offset paging is supported for shallow pages only.

Rate limits: every authenticated response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds until the bucket refills), so you can self-throttle instead of discovering the ceiling as a 429.

get/v1/listings

Request

  • Base URL: https://api.omniaauto.ca
  • URL: https://api.omniaauto.ca/v1/listings
  • Auth: HTTP bearer

Query parameters

makestring
modelstring
trimstring
trim_standardstring

Canadian standardized trim (from trim_canada); more reliable than raw trim for filtering.

yearinteger
year_mininteger
year_maxinteger
condition'New' | 'Used' | 'Certified' | 'Demo'
body_typestring
drivetrainstring
fuel_typestring
provincestring
citystring
nearstring

Proximity anchor: a Canadian city ("Edmonton"), a postal code or FSA ("T5J 0N3", "T5J"), or explicit coordinates ("53.5461,-113.4938"). Use this for any distance question instead of guessing which towns surround a city — one call covers the whole circle. Pair with radius_km. Every result carries distance_km, and the response's geo block reports the anchor actually used and the share of the corpus that has dealer coordinates at all (~99.2%); listings without them cannot match a radius and are excluded.

radius_kmnumber

Search radius in kilometres around near. Default 25, maximum 500 — past that use province=. Requires near.

oemstring
price_minnumber
price_maxnumber
mileage_minnumber
mileage_maxnumber
sort'price' | 'mileage' | 'year' | 'last_seen' | 'first_seen' | 'distance'

Each column carries its own default direction, which order overrides: price and mileage return the LOWEST first, year/last_seen/first_seen the NEWEST first, distance the NEAREST first. distance requires near. CHANGED 2026-09-23: price and mileage previously defaulted to descending, which contradicted both this endpoint's documented cross-listing behaviour and the MCP tool's description. order was, and remains, authoritative whenever it is supplied.

order'asc' | 'desc'

Overrides the sort column's default direction. This parameter has never declared a default in this spec and still does not — the direction you get when you omit it is the one documented on sort.

limitinteger

Page size. Defaults to 25 when omitted, or your plan's max if that is lower. Plan maximums: Starter 10, Team 50, Growth 100; the MCP-only plans (Personal, Pro) return at most 10 listings per tool call. Pages larger than 25 records cost proportionally more (a 100-record page is 4 calls). Only row-level records count — an aggregate or a result count is not limited.

offsetinteger

Row offset for shallow paging. Capped at 1000 — past that use cursor, which is faster and has no depth limit. Ignored when cursor is supplied.

expandstring

Comma-separated enrichments: decode, valuation, recalls, payment. decode/valuation/recalls are billed per expanded row; payment is arithmetic on fields already in the row and is not billed separately. recalls is capped at the first 25 rows of a page, valuation likewise. payment requires a rate — pass apr or rate_source alongside.

cursorstring

Keyset pagination token. Pass the next_cursor from the previous response to get the next page. Pages at any depth in constant time and never skips or repeats a row when inventory changes mid-walk — unlike offset, which stops at 1000. Keep sort and order identical for the whole walk; a cursor replayed under a different sort is rejected. next_cursor is null on the last page.

listed_sincestring date

Only listings first seen on or after this ISO date (YYYY-MM-DD). This is the delta-sync filter: poll it with your last sync date to pull just what is new.

listed_beforestring date

Only listings first seen on or before this ISO date (YYYY-MM-DD).

fieldsstring

Comma-separated subset of listing columns to return, e.g. fields=vin,price,Make,model. Case-insensitive. Trims the payload to what you actually read; decode/valuation expansion blocks are always kept. An unknown field returns 400 naming it.

Response

Matching listings + total count

Changes

No recorded changes to this operation across all 1 revision of this API.