Extract used-parts listings from an Ovoko search page. Returns { results, pagination } with the same listing keys on every market: SKU, title, price, currency, OEM codes, seller name, and source-vehicle text.
Only search pages are accepted. Category, catalog, and offer pages return 400.
HTML cards, __NEXT_DATA__, and marketplace XHR JSON are normalized to this schema. There is no name field: the title is always title.
GET https://api.piloterr.com/v2/ovoko/search?query=https://ovoko.pl/szukaj?q=Porsche+Macan+uszczelka+klapy+bagaznika&exact=1
GET https://api.piloterr.com/v2/ovoko/search?query=https://ovoko.fr/chercher?q=filtre
GET https://api.piloterr.com/v2/ovoko/search?query=https://ovoko.es/buscar?q=filtro
GET https://api.piloterr.com/v2/ovoko/search?query=https://rrr.lt/en/search?q=filter
| Parameter |
Type |
Required |
Description |
query |
string |
yes |
Full Ovoko search URL |
| Market |
Host |
Search path |
Product path |
| France |
ovoko.fr |
/chercher |
/les-pieces/ |
| Poland |
ovoko.pl |
/szukaj |
/czesci-samochodowe/ |
| Germany |
ovoko.de |
/suche |
/gebrauchte-ersatzteile/ |
| Spain |
ovoko.es |
/buscar |
/parte/ |
| Italy |
ovoko.it |
/ricerca |
/parte/ |
| Finland |
ovoko.fi |
/haku |
/osat/ |
| Romania |
ovoko.ro |
/cautare |
/piesa-uzata/ |
| Lithuania |
rrr.lt |
/paieska |
/autodalis/ |
| United Kingdom |
rrr.lt |
/en/search |
/en/used-part/ |
| Latvia |
rrr.lt |
/lv/meklesana |
/lv/auto-dalas/ |
| Russia |
rrr.lt |
/ru/poisk |
/ru/zapchasti/ |
Also accepted: www.ovoko.fr, ovoko.lt (maps to rrr.lt), ovoko.lv (maps to rrr.lt/lv).
Rejected: about.ovoko.com, ovoko.pt, ovoko.ee, and catalog/offer paths such as /oferta/ or /katalog-czesci/.
| Field |
Type |
Description |
results |
array |
Listing cards |
results[].id |
string |
Lowercase listing SKU (qbb17557). Matches Ad id / sku |
results[].url |
string |
Absolute listing URL (pass this to Ovoko Ad) |
results[].title |
string |
Card title |
results[].image |
string |
Thumbnail URL |
results[].price |
number |
Float price (70, 200.01). Not { amount, currency } |
results[].currency |
string |
PLN, EUR, or RON |
results[].part_number |
string | null |
First OEM code that contains a digit |
results[].part_numbers |
array |
Deduplicated OEM codes (label chips without digits are dropped) |
results[].seller.name |
string |
Seller name |
results[].vehicle |
string |
Vehicle text without the local prefix (Porsche Macan (95C) ...) |
pagination.page |
integer |
Current page |
pagination.per_page |
integer |
Page size (typically 15) |
pagination.total_results |
integer | null |
Displayed floor (10 000+ becomes 10000), not an exact count |
pagination.total_pages |
integer | null |
Page count when known |
pagination.next |
string | null |
Next-page URL, or null |
- Paginate with
&page=2 or ?page=2. Follow pagination.next when present.
- Use each result
url with Ovoko Ad for the full listing.
- Search
id and Ad id / sku are the same lowercase SKU.
| Code |
When |
400 |
Empty query, unsupported host, or a listing URL sent to search |
404 |
Search page not found or no listing cards |
500 |
Fetch and parse both failed |
- Compare used-part prices across Ovoko markets
- Collect OEM codes and listing URLs for a query
- Feed procurement pipelines from paginated search