Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Otomoto API page →
docs / otomoto

Otomoto

Otomoto

base /otomoto/v13 endpoints
post/otomoto/v1/listing/detail1 credit

The full otomoto offer record from an offer URL or its ID token: title, the price in PLN with otomoto's own VAT and invoice labels, the seller's type (private person or dealer), the dealer's trading name, page and how many ads it currently has, the city, voivodeship and country, the whole published specification grouped exactly as otomoto groups it (basic information, technical specification, condition and history, financing), every equipment item by category, every photo at full size, the seller's own description with its HTML stripped, the CEPiK history-check flag, the posting and last-update timestamps, the ad status, and whether the ad carries a paid promotion. Numbers otomoto publishes twice — mileage, year, engine power, engine capacity — are returned only when the site's own formatted string agrees with its raw value. Seller phone numbers and street addresses are deliberately not read and not returned. A withdrawn or unknown offer answers NOT_FOUND.

ParameterAllowed / rangeDescription
listingrequired—An otomoto offer URL, or the listing_id at the end of it (…-ID6IgtYL.html → ID6IgtYL; an ad cross-posted from OLX ends …-OLX_ID6IguOF.html → OLX_ID6IguOF, and the OLX_ part is required). Search rows carry both `url` and `listing_id`. The numeric `ad_id` is otomoto's internal id and does NOT address an offer page; passing it is refused rather than reported as missing.
Try in playground →
post/otomoto/v1/makes1 credit

The makes otomoto itself lists on a section's landing page, ranked by how many live ads each one carries, with the exact slug a search needs. This is otomoto's own published shortlist, not its full make register — it is as long as otomoto makes it (20 entries on the cars section, measured), and `count` says how many came back. Use it to get a slug right before searching, because otomoto silently ignores a make it does not recognise and answers with the whole section instead. Passing a make returns that make's model shortlist instead, each model with its slug and live ad count.

ParameterAllowed / rangeDescription
category = osoboweoptionalosobowe · dostawcze · motocykle-i-quadyWhich otomoto section to search. These are otomoto's own URL sections; the category id each one resolves to is returned in filters_applied.
makeoptional—A make exactly as otomoto spells it in its own URLs: bmw, audi, volkswagen, mercedes-benz, skoda. Case and spaces are normalised. If otomoto does not recognise the make the call is refused — it is NOT quietly widened to every car, which is what the site itself does.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.