Getting started
Limits at a glance
| What | Limit | Above the limit |
|---|---|---|
/search page size | perPage 2–50, default 50 | 422 |
/search depth | page × perPage ≤ 10,000 | 422 "Max num of offset is 10k" |
/search meta.total | Capped at 10,000 | Use /search/count |
/cars batch size | limit 1–500, default 500 | 400 with your_value |
/cars cursor lifetime | scroll_time 1–15 min, default 10 | 400; expired cursor 403/404 |
| VIN lookup | 16–19 letters and digits | 422 |
/brands | 10,000 without query, 50 with | Truncated |
/models/{brand_id} | Up to 1,000 models | Truncated |
/countries, /locations | per_page 1–1,000, default 100; ids[] ≤ 100 | 422 |
/car-options | per_page 1–100, default 25; page × per_page ≤ 10,000 | Clamped; 422 past 10,000 |
| Daily allowance | Set per key; see Requests today on the dashboard | Contact support to raise it |
| Request rate | No fixed per-minute limit on public routes | 429/503: honor Retry-After |
Automobile and motorcycle dictionaries
per_page is 1–100, default 100. Use page or after_id, never both. Offset: page × per_page ≤ 10000. For complete traversal, send next_after_id as after_id with page omitted until has_more=false. total then counts remaining matches.
Without pagination parameters, /brands and /models keep their legacy arrays and limits. Send per_page=100 for {data,meta}. Embedded generations keep {name,from,to}; use /generations/{model_id} for IDs.
Get API access
Connect your key to run every request on these pages against your own data. No key yet? Ask us for a demo key: the same JSON as the paid plans.