OLX category listings
An OLX category page in Poland, Ukraine, Romania, Bulgaria, Portugal, Kazakhstan or Uzbekistan: the category (id, name, path, link, listing count, page title), its parent categories and subcategories with their listing counts, the city or region when the page has one, and its listings (40 per page plus promoted ones) with the same fields as /olx/v1/search, including raw. Give the category's path or page link, or its category_id; with none, the top-level categories are returned. Sort, price range, region/city and condition filters apply. Pass next_page back as page; null on the last page (the site serves at most 1,000 results per listing).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
path | string | Category slugs as in the site's addresses, e.g. elektronika/telefony (a city slug may follow, e.g. elektronika/telefony/warszawa). Example: elektronika/telefony |
url | string | A category page link instead of path and country, e.g. https://www.olx.pl/elektronika/telefony/. |
country | PL | UA | RO | BG | PT | KZ | UZ | Site country (default PL). Example: PL |
category_id | string | Numeric category id instead of path (category ids appear in results as category_id). |
sort | relevance | newest | price_asc | price_desc | Sort order (default relevance). |
price_min | number | Minimum price. |
price_max | number | Maximum price. |
region_id | string | Region id. |
city_id | string | City id. |
condition | string | Item condition, e.g. new, used, damaged. |
page | integer | Page number (default 1, max 25). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/olx/v1/category?path=elektronika%2Ftelefony" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/olx/v1/category",
params={"path": "elektronika/telefony"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/olx/v1/category");
url.searchParams.set("path", "elektronika/telefony");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).