Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the OLX API page →
Classifieds & Second-hand

OLX API & Scraper

The OLX API returns live classified-ad listings from OLX marketplaces across 7 countries as clean JSON — no scraping, proxies or logins to manage.

10 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 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.

Reference

The seven OLX marketplaces this covers

OLX is not one site. Each country runs its own marketplace with its own categories, currency and listing ids, and the country parameter picks which one you are calling. Anything you get back — offer ids, category ids, region and city ids, seller ids — belongs to that country only.

countryMarketplaceLocal currency
plOLX Poland (default)PLN
uaOLX UkraineUAH
roOLX RomaniaRON
ptOLX PortugalEUR
bgOLX BulgariaBGN
kzOLX KazakhstanKZT
uzOLX UzbekistanUZS

OLX Brazil, India and Turkey run on entirely different platforms and are deliberately not supported here — we would rather name the gap than return half-broken data for them.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "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"
  }
}
Captured response
{
  "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
  }
}
Actions

What the OLX API does

ActionDescriptionConcrete use caseKey params
searchSearch OLX classifieds by keyword and/or category with sort, condition, price, delivery and location filters. Offset pagination (limit=40). Promoted ads filtered out.Price-intelligence 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, ...
countLightweight result count for a query/category/filter combination — total matching listings without fetching the offers. Useful for market sizing.Classifieds aggregators call count to get lightweight result count for a query/category/filter combination.query, country, category_id, condition, region_id, ...
locationsGEO 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.Resale and arbitrage tools call locations to get gEO resolver.country, query, region_id, city_id
offerOffer detail by numeric id (no trailing slash on upstream path).Lead-generation teams call offer to get offer detail by numeric id (no trailing slash on upstream path)..id, country
categoriesCategory facets + filter suggestions from search metadata, plus global filter definitions.Price-intelligence teams call categories to get category facets + filter suggestions from search metadata, plus global filter definitions..query, country, category_id
user_offersActive offers for a seller user_id with offset pagination.Classifieds aggregators call user_offers to get active offers for a seller user_id with offset pagination..user_id, country, offset, limit
suggestedRelated/suggested offers for a given offer id.Resale and arbitrage tools call suggested to get related/suggested offers for a given offer id..id, country
breadcrumbsCategory or offer breadcrumb trail.Lead-generation teams call breadcrumbs to get category or offer breadcrumb trail..country, category_id, id
userPublic seller profile by user id.Price-intelligence teams call user to get public seller profile by user id..user_id, country
filtersGlobal filter attribute definitions keyed by filter_enum/filter_float names.Classifieds aggregators call filters to get global filter attribute definitions keyed by filter_enum/filter_float names..country
Code samples

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"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.olx.search with {"query":"iphone","country":"pl"}.
Use cases

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.
FAQ

Questions developers ask before integrating

Which OLX countries can I call, and does OLX Brazil work?

Seven: Poland (the default), Ukraine, Romania, Portugal, Bulgaria, Kazakhstan and Uzbekistan. OLX Brazil, India and Turkey run on separate platforms and are not covered — we name that rather than quietly return nothing. Each country is a fully separate marketplace, so a category id or offer id from one will not resolve on another.

Are promoted or sponsored OLX ads included in search results?

No. Search strips OLX's promoted slots before returning, so what you get is the real organic inventory for your query. That matters for price analytics: paid placements skew toward dealers and would drag your averages up.

How do I count OLX listings without paging through all of them?

Call count with the same filters you would send to search. It returns the total match count in one request instead of walking every page — the cheap way to answer questions like how many apartments are listed in a city right now, or how supply for a model moved week over week.

Where do OLX category, region and city ids come from?

They are OLX's own numeric ids, and you discover them rather than guess them: categories returns the category tree, filters returns the region, city and district ids valid for a search, and breadcrumbs resolves the path for a category you already have. Feed those ids back into search as category_id, region_id, city_id or district_id.

How do I page through OLX search results?

Search returns up to 40 results per call (50 is the hard cap; larger values are clamped silently). Page forward with meta.next_offset — but the ceiling is an offset of 1,000, and it is a QUIET one: past it the call still succeeds and returns zero rows with no error (measured 2026-08-27 at offsets 1001 through 9960). One query therefore reaches about 1,040 listings however large count says the market is; narrow by category, region or price band to reach the rest. A search needs either a query or a category_id — sending neither is rejected outright rather than returning an empty list you might mistake for no inventory.

Can I pull every listing from one OLX seller?

Yes. Take seller_id from a search result or an offer and call user_offers with it — that returns the seller's active listings with the same offset pagination. user adds the profile behind that id. This is how resale and dealer-monitoring tools track one shop's inventory over time.

What is the OLX API?

OLX API is a ReefAPI endpoint group for olx It returns live JSON through POST requests under /olx/v1.

Is the OLX API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. OLX calls use the same shared credit balance as every other ReefAPI engine.

Do I need an OLX login or account?

No login to OLX 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 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 use?

OLX 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 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 an OLX scraper?

It is the managed alternative to a DIY OLX 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 back as clean JSON.

Why does my OLX scraper keep getting blocked?

Most OLX 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.

docs / olx

OLX

OLX

base /olx/v110 endpoints
post/olx/v1/count1 credit

Lightweight result count for a query/category/filter combination — total matching listings without fetching the offers. Useful for market sizing.

ParameterAllowed / rangeDescription
queryoptionalFree-text keyword search. (search needs query OR category_id.)
category_idoptionalOLX numeric category id (discover via the categories / breadcrumbs actions). (search needs query OR category_id.)
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
conditionoptionalnew · usedItem condition filter.
region_idoptionalLocation filter: OLX numeric region id (discover via the filters action).
city_idoptionalLocation filter: OLX numeric city id (discover via the filters action).
district_idoptionalLocation filter: OLX numeric district id (discover via the filters action).
price_fromoptionalMinimum price filter (in the marketplace's local currency).
price_tooptionalMaximum price filter (in the marketplace's local currency).
filtersoptionalAdvanced escape hatch: extra raw OLX filter params as a key->value map (e.g. {"filter_enum_state[0]": "used"}); keys come from the filters action. Most users won't need this — use condition / with_photos / courier instead.
Try in playground →
post/olx/v1/locations1 credit

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.

ParameterAllowed / rangeDescription
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
queryoptionalPlace name to look up (city/region). Optional — omit to list all regions for the country.
region_idoptionalList the cities inside this region id (region ids come from the same locations action with no params).
city_idoptionalLook up this city's detail + districts (city ids come from a region's city list).
Try in playground →
post/olx/v1/offer1 credit

Offer detail by numeric id (no trailing slash on upstream path).

ParameterAllowed / rangeDescription
idrequiredOLX offer numeric id (the digits in an offer URL / a search result's id).
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
Try in playground →
post/olx/v1/categories1 credit

Category facets + filter suggestions from search metadata, plus global filter definitions.

ParameterAllowed / rangeDescription
queryoptionalFree-text keyword search. (search needs query OR category_id.)
category_idoptionalOLX numeric category id (discover via the categories / breadcrumbs actions). (search needs query OR category_id.)
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
Try in playground →
post/olx/v1/user_offers1 credit

Active offers for a seller user_id with offset pagination.

ParameterAllowed / rangeDescription
user_idrequiredOLX seller numeric id (an offer's seller_id / search result user.id).
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
offset = 0optional0–Pagination offset (skip N results). Page forward with meta.next_offset.
limit = 40optional1–50Results per page (1-50, default 40). Larger values are clamped to 50.
Try in playground →
post/olx/v1/suggested1 credit

Related/suggested offers for a given offer id.

ParameterAllowed / rangeDescription
idrequiredOLX offer numeric id (the digits in an offer URL / a search result's id).
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
Try in playground →
post/olx/v1/breadcrumbs1 credit

Category or offer breadcrumb trail.

ParameterAllowed / rangeDescription
category_idoptionalOLX numeric category id (discover via the categories / breadcrumbs actions). (search needs query OR category_id.)
idoptionalOLX offer numeric id (alternative to category_id for breadcrumbs).
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
Try in playground →
post/olx/v1/user1 credit

Public seller profile by user id.

ParameterAllowed / rangeDescription
user_idrequiredOLX seller numeric id (an offer's seller_id / search result user.id).
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
Try in playground →
post/olx/v1/filters1 credit

Global filter attribute definitions keyed by filter_enum/filter_float names.

ParameterAllowed / rangeDescription
country = ploptionalpl · ua · bg · ro · pt · kz · uzOLX country edition — each TLD is a fully separate marketplace. br/in/tr run on different stacks and are not supported.
Try in playground →