SITE API

OLX

OLX.pl is Poland’s largest classifieds site, read through the public JSON API its own web app calls. Search any category — flats, cars, phones, furniture, jobs, free items — by words, place and radius, price, condition, seller type and category attributes like area or mileage. Prices keep their meaning: negotiable stays a price, “to be agreed” is null rather than zero, and a rental rate says whether it’s per day or per hour. Open any offer in full (no contact details), or ask which category fits a search term.

3 tools <1 s cache: 5 min PLN OLX.pl public JSON API, direct

Thirty seconds, any client.

claude mcp add --transport http olx https://mcp.wondel.ai/olx/mcp

One command in your terminal — the server is available in every Claude Code session.

This server works with Claude, Claude Code, Claude Desktop, Claude Cowork, Cursor, VS Code, Windsurf — and any other MCP client. Stdio-only clients connect through npx mcp-remote.

3 tools, fully typed.

Parameters below are transcribed from the server’s own zod schemas — what you see is what the tool validates.

olx_search Offers in any category — property, cars, electronics, jobs, free items — filtered by words, category, place and radius or voivodeship, price, condition, seller type and category attributes. Promoted slots are left out by default.
Param Type Description
query string Search words, matched loosely against titles and descriptions. Polish terms work best ("rower górski", "kawalerka"). Omit to browse a category or place.
category_id integer OLX category id, e.g. 15 = flats for rent, 14 = flats for sale, 84 = passenger cars, 1839 = smartphones, 1151 = free items. Find others with olx_categories.
location string Polish name of a city, town or village, optionally with a district: "Kraków", "Warszawa Mokotów". English names aren’t recognized; a partial name returns suggestions.
region enum Voivodeship. Alone, it searches the whole voivodeship; with location, it picks among same-name places. dolnoslaskiekujawsko-pomorskielubelskielubuskielodzkiemalopolskiemazowieckieopolskiepodkarpackiepodlaskiepomorskieslaskieswietokrzyskiewarminsko-mazurskiewielkopolskiezachodniopomorskie
distance_km integer Also include offers within this radius of location, 0–200 km (OLX offers 2, 5, 10, 15, 30, 50, 75, 100).
price_from number Minimum price in PLN (monthly rent for rentals).
price_to number Maximum price in PLN (monthly rent for rentals).
condition enum Item condition — goods categories only. newused
owner_type enum Private individuals only, or companies and agencies only. privatebusiness
sort_by enum Result order. Omit for OLX’s own. relevancenewestprice_ascprice_desc
filters object Category-specific filters (needs category_id), keyed by an offer’s params keys: "filter_float_<key>:from" / ":to" for numbers, "filter_enum_<key>" for choices — e.g. { "filter_float_m:from": 40, "filter_enum_rooms": ["two", "three"] }. OLX rejects a key the category lacks.
include_promoted boolean
= false
Also return OLX’s paid top-ad slots (flagged promoted: true). They repeat across pages and ignore sort_by.
offset integer
= 0
Skip this many results, 0–1000 (OLX pages through the first 1000 only).
limit integer
= 20
Results per call, 1–50.
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.
olx_offer One offer in full: price or salary, every attribute with its Polish name, the full description, all photos, location with map coordinates, seller type and public name, OLX delivery, and the otodom.pl original for partner listings. Never contact details.
Param Type Description
id * string | integer The offer’s numeric id (e.g. 1100381308) or its OLX URL, from olx_search.
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.
olx_categories Find a category_id: OLX’s 19 top-level categories, one category’s sub-categories, or — with query — which categories a search term’s offers fall in, with live counts.
Param Type Description
parent_id integer List this category’s sub-categories (e.g. 3 = Nieruchomości). With query, scopes the counts to it.
query string Search words; returns the categories their offers fall in, with counts (one live request).
no_cache boolean
= false
Force a fresh fetch, bypassing this server’s 5-minute result cache.

Prompts that just work.

A used mountain bike in Kraków under 2,000 zł — cheapest first, private sellers only.

olx_search

Two- or three-room flats to rent in Gdańsk, 40–60 m², furnished, under 3,500 zł a month.

olx_search

Which OLX category should I search for “iphone 13”? Then show the five newest offers there.

olx_categories + olx_search

What comes back

olx_search · live response, captured 2026-09-23 from production, abridged

{
  "source": "direct+firecrawl+brightdata+zenrows",
  "fetchedAt": "2026-09-23T23:40:28.202Z",
  "query": { "query": "rower górski", "location": "Kraków", "price_to": 2000, "condition": "used", "limit": 5, … },
  "resolved_location": { "city": "Kraków", "city_id": 8959, "region": "Małopolskie", … },
  "total_count": 449,
  "offset": 0,
  "limit": 5,
  "next_offset": 5,
  "count": 5,
  "offers": [
    {
      "id": 1099176083,
      "url": "https://www.olx.pl/d/oferta/rower-gorski-giant-CID767-ID1co1Uw.html",
      "title": "Rower górski Giant",
      "price": { "value": 200, "currency": "PLN", "negotiable": false, "type": "price", "label": "200 zł" },
      "params": { "state": "Używane" },
      "city": "Kraków",
      "district": "Bronowice",
      "category": "Sport i Hobby > Rowery > Rowery górskie",
      "seller_type": "private",
      "photos_count": 8,
      …
    },
    …
  ]
}

Fetching tools share one envelope — source says where the data came from, fetchedAt says when, query echoes what you asked. price.value is null when there is no amount (to be agreed, swap) — never read it as 0 PLN. Compact JSON in one text block, exactly how agents like it.

Add OLX
to your agent.

mcp.wondel.ai/olx/mcp

Authless · Read-only public data · Streamable HTTP at /mcp