ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Quick StartAPI & SDKsEcosystem

OLX

OLX Search API

Search OLX classifieds on the seven OLX Europe sites (olx.pl, olx.ro, olx.pt, olx.bg, olx.ua, olx.kz, olx.uz) by keyword, category or both: sort by newest or price; filter by price range, condition, private or business seller, OLX delivery, photos, region / city / district with a radius, and the category's own filters (rooms, area, year, mileage, from the filters endpoint). Each ad carries id, title, price (with the site's conversion where it converts), condition, every parameter, category, location, dates, promoted and delivery flags, photos and the seller id (business name for business sellers only). Promoted ads are interleaved and flagged with their slot. Up to 1,000 results per search, as OLX allows. Costs 1 credit per request.

POST/api/v1/olx/search

Authorizations

Authorizationstringheaderrequired

Bearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).

Body

application/json
querystring

Search keywords, 1-200 characters, in any language. query, category_id or both. A query with no exact match returns OLX's closest ads, not an empty list.

Example: iphone

category_idinteger

Search inside one category: categories[].id of the categories endpoint or an item's category_id (84 = cars on olx.pl, 14 = flats for sale). query, category_id or both.

Example: 84

countryenum<string>default:pl

The OLX site. Titles, parameters and labels come back in the site's language (Polish on pl; Russian by default on kz and uz), prices in its currency. When you send a url, the market follows the url.

Example: pl

  • pl — olx.pl, PLN, Polish. The default.
  • ro — olx.ro, RON, Romanian.
  • pt — olx.pt, EUR, Portuguese.
  • bg — olx.bg, EUR, Bulgarian.
  • ua — olx.ua, UAH, Ukrainian.
  • kz — olx.kz, KZT, Russian by default, Kazakh with language kk.
  • uz — olx.uz, UZS, Russian by default, Uzbek with language uz.
languageenum<string>

kz and uz only. olx.kz and olx.uz answer in Russian by default; kk returns Kazakh on kz and uz returns Uzbek (Latin) on uz. A 400 on the other five sites, which answer in their own language.

Example: kk

  • ru — Russian, the default on kz and uz.
  • kk — Kazakh, kz only.
  • uz — Uzbek, uz only.
pageinteger

Results page, 1-based. Defaults to 1. OLX serves the first 1,000 results of a search only, so page x page_size may not exceed 1,000 (25 pages at the default page size).

Example: 2

page_sizeintegerdefault:40

Ads per page, 1-50. Promoted ads come on top of these: 40 asks return about 52 items.

Example: 40

sortenum<string>default:relevance

The order of the ads. Promoted ads are not sorted.

  • relevance — The site's own order. The default.
  • newest — Most recently posted or refreshed first, approximately: neighbouring ads can be a few minutes out of order. Sellers can refresh an ad to the top, so this is last refresh, not first posting.
  • price_low_to_high — Cheapest first.
  • price_high_to_low — Most expensive first.
min_pricenumber

Lowest price, in the site's currency.

Example: 500

max_pricenumber

Highest price, in the site's currency.

Example: 2000

conditionenum<string>

Item condition, in categories that have one.

  • new — New.
  • used — Used.
  • refurbished — Refurbished.
  • damaged — Damaged.
seller_typeenum<string>

Private individuals or business sellers.

  • private — Private sellers.
  • business — Business sellers.
olx_deliveryboolean

Only ads that can be bought with OLX delivery (shipped through OLX). pl, ro, pt, bg and ua; a 400 on kz and uz, which have no OLX delivery.

Example: true

with_photosboolean

Only ads with photos.

Example: true

region_idinteger

Only ads in this region: region_id of the locations endpoint or of an item's location.

Example: 2

city_idinteger

Only ads in this city: city_id of the locations endpoint or of an item's location.

Example: 17871

district_idinteger

Only ads in this district of a city: district_id of the locations endpoint.

Example: 381

distance_kminteger

With city_id: include ads within this many km of the city. One of 0, 2, 5, 10, 15, 30, 50, 75, 100.

Example: 30

filtersobject

The category's own filters, as the filters endpoint lists them (filters[].send_as): a range as filter_float_<name>:from / :to with a number (filter_float_year:from 2018, filter_float_milage:to 100000, filter_float_m:from 40), a choice as filter_enum_<name> with one value id or a list (filter_enum_rooms ["two", "three"]). Up to 20 keys; other keys are a 400.

Example: {"filter_float_m:from": 40, "filter_enum_rooms": ["two"]}

include_promotedbooleandefault:true

Keep the promoted ads the site places on each page. Each is flagged is_promoted with promoted_position, its slot on the page.

Example: false

Request

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# Used cars on olx.pl, 2018 or newer, under 100,000 km, newest first.
res = client.olx.search(
    category_id=84,
    sort="newest",
    filters={"filter_float_year:from": 2018, "filter_float_milage:to": 100000},
)["data"]
print(res["total"], "ads")
for ad in res["items"]:
    if ad["is_promoted"]:
        continue  # paid slots are not in sort order
    print(ad["id"], ad["refreshed_at"], ad["price"] and ad["price"]["value"], ad["title"])

Response

"query": "iphone",
"category_id": null,
"sort": "relevance",
"applied_filters": {},
"total": 159080,
"total_capped": true,
"page": 1,
"page_size": 40,
"total_pages": 25,
"has_next_page": true,
"count": 52,
"promoted_count": 12,
"country": "pl",
"language": "pl",
"currency": "PLN"
},
"response_time": 7006
}
PreviousAllegro CategoryNextOLX Ad Details
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

Ask AI about Scavio

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy