OLX APIm.olx.pl ↗
Access OLX.pl product listings via API. Search by keyword or category, retrieve titles, prices, locations, images, and pagination across millions of Polish classifieds.
What is the OLX API?
The OLX.pl API provides 2 endpoints for searching classified listings on Poland's largest general marketplace. The search_listings endpoint returns paginated arrays of listing objects — each containing id, title, description, price, location, photos, and category_id — across all categories. A dedicated search_books endpoint narrows results to the Books category (ID 751) and accepts a subject parameter for topic-level filtering.
curl -X GET 'https://api.parse.bot/scraper/c0d9829b-5dc0-40b0-b4e2-acf62d7af522/search_listings?limit=5&query=laptop&offset=0&category_id=99' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace m-olx-pl-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.olx_pl_scraper_api import OLX, Listing, Book
olx = OLX()
# Search for laptop listings
for listing in olx.listings.search(query="laptop", offset=0):
print(listing.title, listing.price, listing.location.city)
# Search for math books
for book in olx.books.search(subject="matematyka"):
print(book.title, book.price, book.created_time)
Search for product listings on OLX.pl with optional query and category filtering. Returns paginated results sorted by relevance. Each listing includes title, description, price, location, creation time, category, and photo URLs. The total count is capped at 1000 by the upstream API regardless of the actual number of matches.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of results to return per page. |
| query | string | Search keyword to filter listings. |
| offset | integer | Pagination offset. |
| category_id | integer | Category ID to filter results (e.g., 751 for Books, 99 for Computers). |
{
"type": "object",
"fields": {
"items": "array of listing objects with id, title, description, price, url, location, created_time, category_id, photos",
"limit": "integer current page size",
"total": "integer total number of matching listings (capped at 1000)",
"offset": "integer current pagination offset"
},
"sample": {
"data": {
"items": [
{
"id": 1070595240,
"url": "https://www.olx.pl/d/oferta/laptop-lenovo-t16-i5-16-ssd-512-320-16-ips-wuxga-thunderbolt-4-w11-dowoz-gratis-CID99-ID1as6Ja.html",
"price": "2 950 zł",
"title": "Laptop Lenovo T16 i5/ 16/ SSD 512+320/ 16\" IPS WUXGA/ Thunderbolt 4/ W11/ dowóz gratis",
"photos": [
"https://ireland.apollo.olxcdn.com:443/v1/files/11ah5g72sbuv-PL/image;s=1000x750"
],
"location": {
"city": "Poznań",
"region": "Wielkopolskie"
},
"category_id": 3108,
"description": "SOLIDNY i LEKKI LAPTOP...",
"created_time": "2026-05-01T19:49:40+02:00"
}
],
"limit": 5,
"total": 1000,
"offset": 0
},
"status": "success"
}
}About the OLX API
Endpoints and Coverage
The API exposes two GET endpoints. search_listings accepts a query string, an integer category_id, and pagination controls (limit and offset). It returns a top-level total count alongside an items array, each element carrying a unique listing id, title, description, price, url, location, created_time, category_id, and a photos array of image URLs. Known category IDs include 751 for Books and 99 for Computers, though any valid OLX.pl category ID is accepted.
Book-Specific Search
search_books targets category 751 directly and adds a subject parameter for keyword filtering within book listings — useful for narrowing to topics like 'history', 'science', or 'fiction'. The response shape is identical to search_listings, with the same items, limit, total, and offset fields. Both endpoints support pagination through limit and offset, making it straightforward to walk through large result sets programmatically.
Response Fields and Freshness
Every listing object includes a created_time timestamp, allowing consumers to sort or filter by recency on the client side. The photos field is an array, so a single listing can expose multiple image URLs. Location data reflects the city or region entered by the seller. Descriptions are unstructured free text as written by the poster — no structured condition, brand, or SKU fields are currently parsed out.
The OLX API is a managed, monitored endpoint for m.olx.pl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when m.olx.pl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official m.olx.pl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor price trends for a specific product category by querying
search_listingswith a fixedcategory_idon a schedule - Build a Polish book price comparison tool using
search_bookswith subject-level filtering - Aggregate secondhand electronics listings by querying category 99 (Computers) and extracting price and location
- Alert users when new listings matching a keyword appear by comparing
created_timevalues across polling intervals - Analyze geographic distribution of listings using the
locationfield returned per item - Collect training data for secondhand goods pricing models using title, description, and price fields
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OLX.pl have an official developer API?+
What does the `photos` field contain, and are full-resolution image URLs returned?+
photos field is an array of URL strings per listing. The URLs point to the images uploaded by the seller. Resolution and format depend on what was posted; the API returns the URLs as-is and does not provide separate thumbnail versus full-resolution variants.Does the API return seller contact details or phone numbers?+
Is there a way to filter results by price range or sort by date?+
query, category_id, subject, limit, and offset as inputs. Price-range filtering and server-side date sorting are not exposed as parameters. The created_time and price fields are returned per listing, so client-side filtering is possible. You can fork this API on Parse and revise it to add price or date filter parameters.How does pagination work, and is there a maximum `limit` value?+
limit and offset parameters. The response includes a total field indicating the full result count, which you can use to determine how many pages exist. The documentation does not specify a hard maximum for limit; staying within typical values (20–100) is advisable to avoid incomplete responses.