OLX API scraper API
The OLX API returns live classified-ad listings from OLX marketplaces across 7 countries as clean JSON — no scraping, proxies or logins to manage.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary search endpoint pulls normalized offers (promoted slots filtered out) plus a search_id, a total count and a pagination cursor, so you can page through an entire category. OLX spans cars, real estate, electronics, jobs and second-hand goods, and the API also resolves categories, locations, a single offer and a seller's other listings. Reach for it when you need marketplace inventory, pricing or seller data from emerging-market classifieds without building a country-by-country scraper. Every call uses one ReefAPI key, one shared credit pool and the standard { ok, data, meta, error } envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/olx/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "iphone",
"country": "pl"
}
}{
"ok": true,
"meta": {
"api": "olx",
"endpoint": "search",
"mode": "live",
"latency_ms": 1637.5,
"record_count": 40,
"bytes": 203957,
"cache_hit": false,
"method": "public_json_api_v1",
"country": "pl",
"url": "https://www.olx.pl/api/v1/offers/?limit=40&offset=0&query=iphone",
"offset": 0,
"limit": 40,
"has_more": true,
"total": 1000,
"next_offset": 40,
"promoted_filtered": 12,
"search_id": "962E2CE19D73E182BF16D6811490C523"
},
"data": {
"offers": [
{
"id": 1086126943,
"url": "https://www.olx.pl/d/oferta/apple-iphone-11-mietowy-CID99-ID1bwhew.html",
"title": "Apple iPhone 11 - miętowy",
"description": "Używany miętowy iPhone 11.<br />\n<br />\nPosiada uszkodzony mikrofon (rozmówca słabo/bądź w ogóle nie słyszy)<br />\n<br />\nPoza tym w pełni sprawny.<br />\n<br />\nKondycja baterii 88%.<br />\n<br />\nWylogowany z konta iCloud.<br />\n<br />\nW zestawie z ładowarką.<br />\n<br />\nWysyłka do paczkomatu w kwocie 25zł.<br />\n<br />\nNie wysyłam przez olx/pobranie/vintend/ gotowe etykiety.",
"created_time": "[redacted-phone]T19:12:59+02:00",
"last_refresh_time": "[redacted-phone]T19:15:22+02:00",
"valid_to_time": "[redacted-phone]T19:12:59+02:00",
"pushup_time": null,
"status": "active",
"offer_type": "offer",
"price": {
"value": 0,
"type": "free",
"arranged": false,
"budget": false,
"currency": "PLN",
"negotiable": false,
"converted_value": null,
"previous_value": null,
"converted_previous_value": null,
"converted_currency": null,
"label": "Za darmo",
"previous_label": null
},
"price_label": {
"value": 0,
"type": "free",
"arranged": false,
"budget": false,
"currency": "PLN",
"negotiable": false,
"converted_value": null,
"previous_value": null,
"converted_previous_value": null,
"converted_currency": null,
"label": "Za darmo",
"previous_label": null
},
"negotiable": null,
"condition": {
"key": "used",
"label": "Używane"
},
"params": [
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
}
],
"key_params": [],
"location": {
"city": {
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"normalized_name": "[trimmed-depth]"
},
"region": {
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"normalized_name": "[trimmed-depth]"
}
},
"city": "Rudawka",
"district": null,
"region": "Podlaskie",
"city_id": 35993,
"region_id": 18,
"map": {
"zoom": 12,
"lat": 53.42937,
"lon": 23.28455,
"radius": 0,
"show_detailed": false
},
"photos": [
"https://ireland.apollo.olxcdn.com:443/v1/files/mi24lqqnv92a1-PL/image;s={width}x{height}",
"https://ireland.apollo.olxcdn.com:443/v1/files/w45okts6bbsz-PL/image;s={width}x{height}",
"https://ireland.apollo.olxcdn.com:443/v1/files/fiwvcgazjmrc-PL/image;s={width}x{height}"
],
"photo_count": 6,
"category": {
"id": 2298,
"type": "electronics"
},
"category_id": 2298,
"category_type": "electronics",
"user": {
"id": 2548344054,
"created": "[redacted-phone]T23:08:16+02:00",
"other_ads_enabled": true,
"name": "[redacted]",
"logo": null,
"logo_ad_page": null,
"social_network_account_type": null,
"photo": null,
"banner_mobile": "[redacted-phone]",
"banner_desktop": "",
"company_name": "",
"about": "",
"b2c_business_page": false,
"is_online": true,
"last_seen": "[redacted-phone]T19:18:16+02:00",
"seller_type": null,
"uuid": "627d3ed2-3bc8-4b05-92a0-11c2c8c63139"
},
"seller_id": 2548344054,
"seller_name": null,
"contact": {
"name": "[redacted]",
"phone": false,
"chat": true,
"negotiation": false,
"courier": false
},
"delivery": {
"rock": {
"offer_id": "[trimmed-depth]",
"active": "[trimmed-depth]",
"mode": "[trimmed-depth]"
}
},
"safedeal": {
"weight": 0,
"weight_grams": 0,
"status": "unactive",
"safedeal_blocked": false,
"allowed_quantity": []
},
"shop": {
"subdomain": null
},
"business": false,
"promotion": {
"highlighted": false,
"urgent": false,
"top_ad": false,
"options": [],
"b2c_ad_page": false,
"premium_ad_page": false
},
"partner": null,
"protect_phone": true,
"is_gpsr_available": true
},
{
"id": 1086061159,
"url": "https://www.olx.pl/d/oferta/iphone-14-pro-max-CID99-ID1bw07t.html",
"title": "Iphone 14 pro max",
"description": "Używany telefon iPhone 14 Pro Max w bardzo dobrym stanie. Ekran nienaruszony i bez rys, od samego początku chroniony szkłem hartowanym. Widać ślady użytkowania (widać na zdjęciach). Aparaty sprawne i bez rys i pęknięć. Kondycja baterii 86%. W zestawie 2 kable doładowania, etui oraz pudełko.",
"created_time": "[redacted-phone]T12:40:51+02:00",
"last_refresh_time": "[redacted-phone]T12:59:44+02:00",
"valid_to_time": "[redacted-phone]T12:40:51+02:00",
"pushup_time": null,
"status": "active",
"offer_type": "offer",
"price": {
"value": 1200,
"type": "price",
"arranged": false,
"budget": false,
"currency": "PLN",
"negotiable": false,
"converted_value": null,
"previous_value": null,
"converted_previous_value": null,
"converted_currency": null,
"label": "1 200 zł",
"previous_label": null
},
"price_label": {
"value": 1200,
"type": "price",
"arranged": false,
"budget": false,
"currency": "PLN",
"negotiable": false,
"converted_value": null,
"previous_value": null,
"converted_previous_value": null,
"converted_currency": null,
"label": "1 200 zł",
"previous_label": null
},
"negotiable": null,
"condition": {
"key": "used",
"label": "Używane"
},
"params": [
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
}
],
"key_params": [],
"location": {
"city": {
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"normalized_name": "[trimmed-depth]"
},
"region": {
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"normalized_name": "[trimmed-depth]"
}
},
"city": "Krotoszyn",
"district": null,
"region": "Wielkopolskie",
"city_id": 66605,
"region_id": 1,
"map": {
"zoom": 12,
"lat": 51.69865,
"lon": 17.44274,
"radius": 4,
"show_detailed": false
},
"photos": [
"https://ireland.apollo.olxcdn.com:443/v1/files/n56nz9td4cbe-PL/image;s={width}x{height};r=90",
"https://ireland.apollo.olxcdn.com:443/v1/files/in406wfkofca1-PL/image;s={width}x{height}",
"https://ireland.apollo.olxcdn.com:443/v1/files/kxqxnzb87jy82-PL/image;s={width}x{height}"
],
"photo_count": 8,
"category": {
"id": 2298,
"type": "electronics"
},
"category_id": 2298,
"category_type": "electronics",
"user": {
"id": 15873189,
"created": "[redacted-phone]T12:01:45+02:00",
"other_ads_enabled": true,
"name": "[redacted]",
"logo": null,
"logo_ad_page": null,
"social_network_account_type": null,
"photo": null,
"banner_mobile": "[redacted-phone]",
"banner_desktop": "",
"company_name": "",
"about": "",
"b2c_business_page": false,
"is_online": false,
"last_seen": "[redacted-phone]T13:43:46+02:00",
"seller_type": null,
"uuid": "672e2770-b359-42c7-9164-ab863c84670a"
},
"seller_id": 15873189,
"seller_name": null,
"contact": {
"name": "[redacted]",
"phone": false,
"chat": true,
"negotiation": false,
"courier": false
},
"delivery": {
"rock": {
"offer_id": "[trimmed-depth]",
"active": "[trimmed-depth]",
"mode": "[trimmed-depth]"
}
},
"safedeal": {
"weight": 0,
"weight_grams": 0,
"status": "unactive",
"safedeal_blocked": false,
"allowed_quantity": []
},
"shop": {
"subdomain": null
},
"business": false,
"promotion": {
"highlighted": false,
"urgent": false,
"top_ad": false,
"options": [],
"b2c_ad_page": false,
"premium_ad_page": false
},
"partner": null,
"protect_phone": true,
"is_gpsr_available": true
},
{
"id": 1086111069,
"url": "https://www.olx.pl/d/oferta/iphone-stary-oddam-CID99-ID1bwd6t.html",
"title": "Iphone stary oddam",
"description": "Używany iPhone stary jest oddam za darmo nie wiem ile wart nie znam się działa ładuje się i można dzwonić, pisac oglądać itd pęknięte jest szkiełko na ekranie nie sam ekran",
"created_time": "[redacted-phone]T17:23:51+02:00",
"last_refresh_time": "[redacted-phone]T17:26:16+02:00",
"valid_to_time": "[redacted-phone]T17:23:51+02:00",
"pushup_time": null,
"status": "active",
"offer_type": "offer",
"price": {
"value": 0,
"type": "free",
"arranged": false,
"budget": false,
"currency": "PLN",
"negotiable": false,
"converted_value": null,
"previous_value": null,
"converted_previous_value": null,
"converted_currency": null,
"label": "Za darmo",
"previous_label": null
},
"price_label": {
"value": 0,
"type": "free",
"arranged": false,
"budget": false,
"currency": "PLN",
"negotiable": false,
"converted_value": null,
"previous_value": null,
"converted_previous_value": null,
"converted_currency": null,
"label": "Za darmo",
"previous_label": null
},
"negotiable": null,
"condition": {
"key": "used",
"label": "Używane"
},
"params": [
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
},
{
"key": "[trimmed-depth]",
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"value": "[trimmed-depth]"
}
],
"key_params": [],
"location": {
"city": {
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"normalized_name": "[trimmed-depth]"
},
"district": {
"id": "[trimmed-depth]",
"name": "[trimmed-depth]"
},
"region": {
"id": "[trimmed-depth]",
"name": "[trimmed-depth]",
"normalized_name": "[trimmed-depth]"
}
},
"city": "Katowice",
"district": "Murcki",
"region": "Śląskie",
"city_id": 7691,
"region_id": 6,
"map": {
"zoom": 13,
"lat": 50.20017,
"lon": 19.04254,
"radius": 6,
"show_detailed": false
},
"photos": [
"https://ireland.apollo.olxcdn.com:443/v1/files/ztkiponirptr1-PL/image;s={width}x{height}"
],
"photo_count": 1,
"category": {
"id": 2298,
"type": "electronics"
},
"category_id": 2298,
"category_type": "electronics",
"user": {
"id": 1920192034,
"created": "[redacted-phone]T14:52:38+01:00",
"other_ads_enabled": true,
"name": "[redacted]",
"logo": null,
"logo_ad_page": null,
"social_network_account_type": null,
"photo": null,
"banner_mobile": "[redacted-phone]",
"banner_desktop": "",
"company_name": "",
"about": "",
"b2c_business_page": false,
"is_online": false,
"last_seen": "[redacted-phone]T17:23:51+02:00",
"seller_type": null,
"uuid": "0997ad80-76d5-4a0b-9cd[redacted-phone]"
},
"seller_id": 1920192034,
"seller_name": null,
"contact": {
"name": "[redacted]",
"phone": false,
"chat": true,
"negotiation": false,
"courier": false
},
"delivery": {
"rock": {
"offer_id": "[trimmed-depth]",
"active": "[trimmed-depth]",
"mode": "[trimmed-depth]"
}
},
"safedeal": {
"weight": 0,
"weight_grams": 0,
"status": "unactive",
"safedeal_blocked": false,
"allowed_quantity": []
},
"shop": {
"subdomain": null
},
"business": false,
"promotion": {
"highlighted": false,
"urgent": false,
"top_ad": false,
"options": [],
"b2c_ad_page": false,
"premium_ad_page": false
},
"partner": null,
"protect_phone": true,
"is_gpsr_available": true
}
],
"search_id": "962E2CE19D73E182BF16D6811490C523",
"promoted_indices": [
0,
1,
2
],
"offset": 0,
"limit": 40,
"has_more": true,
"total": 1000,
"next_offset": 40
}
}What the OLX API scraper API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search OLX classifieds by keyword and/or category with sort, condition, price, delivery and location filters. Offset pagination (limit=40). Promoted ads filtered out. | Ops teams call search to search OLX classifieds by keyword and/or category with sort, condition, price, delivery and l…. | query, country, category_id, sort_by, condition, ... |
| count | Lightweight result count for a query/category/filter combination — total matching listings without fetching the offers. Useful for market sizing. | Developer tools call count to get lightweight result count for a query/category/filter combination. | query, country, category_id, condition, region_id, ... |
| locations | GEO resolver: turn a place name into OLX region/city/district ids for the location filters. No params -> all regions; region_id -> its cities; city_id -> city detail + districts; query -> match a city by name across regions. | Validation workflows call locations to get gEO resolver. | country, query, region_id, city_id |
| offer | Offer detail by numeric id (no trailing slash on upstream path). | Data-quality teams call offer to get offer detail by numeric id (no trailing slash on upstream path).. | id, country |
| categories | Category facets + filter suggestions from search metadata, plus global filter definitions. | Ops teams call categories to get category facets + filter suggestions from search metadata, plus global filter definitions.. | query, country, category_id |
| user_offers | Active offers for a seller user_id with offset pagination. | Developer tools call user_offers to get active offers for a seller user_id with offset pagination.. | user_id, country, offset, limit |
| suggested | Related/suggested offers for a given offer id. | Validation workflows call suggested to get related/suggested offers for a given offer id.. | id, country |
| breadcrumbs | Category or offer breadcrumb trail. | Data-quality teams call breadcrumbs to get category or offer breadcrumb trail.. | country, category_id, id |
| user | Public seller profile by user id. | Ops teams call user to get public seller profile by user id.. | user_id, country |
| filters | Global filter attribute definitions keyed by filter_enum/filter_float names. | Developer tools call filters to get global filter attribute definitions keyed by filter_enum/filter_float names.. | country |
Call search from your stack
curl -X POST https://api.reefapi.com/olx/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"iphone","country":"pl"}'import requests
r = requests.post(
"https://api.reefapi.com/olx/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "iphone",
"country": "pl"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/olx/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "iphone",
"country": "pl"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.olx.search with {"query":"iphone","country":"pl"}.Who uses this API and why
- Price-intelligence teams call search to track used-car and electronics prices across OLX countries.
- Marketplace and lead-gen tools use user_offers to pull every active listing from one seller.
- Classifieds aggregators use categories and locations to mirror OLX's taxonomy before ingesting listings.
- Analysts use count to size supply for a query (how many apartments in a city) without paging every result.
Questions developers ask before integrating
What is the OLX API scraper API?
OLX API scraper API is a ReefAPI endpoint group for olx api scraper It returns live JSON through POST requests under /olx/v1.
Is the OLX API scraper API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. OLX API scraper calls use the same shared credit balance as every other ReefAPI engine.
Do I need a OLX API scraper login or account?
No login to OLX API scraper is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the OLX API scraper data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the OLX API scraper API use?
OLX API scraper actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call OLX API scraper from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call olx actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the OLX API scraper API a OLX API scraper scraper?
It is the managed alternative to a DIY OLX API scraper scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same olx api scraper back as clean JSON.
Why does my OLX API scraper scraper keep getting blocked?
Most OLX API scraper scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.