OLX Poland Classifieds Scraper
Pricing
Pay per event
OLX Poland Classifieds Scraper
Scrape listings from OLX.pl — Poland's largest classifieds marketplace. Extract titles, prices, locations, images, and attributes from any category.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
OLX Poland Classifieds Scraper 🇵🇱
Extract listings from OLX.pl — Poland's largest classifieds marketplace — without writing a single line of code. Scrape cars, real estate, electronics, jobs, furniture, and more from any category or keyword search.
What does it do?
OLX Poland Classifieds Scraper uses the OLX.pl public JSON API to collect structured listing data from any category, region, or keyword search. You provide one or more OLX.pl URLs (category pages, search results) or a search query, and the actor returns clean, structured data ready for export to spreadsheets, databases, or downstream integrations.
Each result includes the listing title, price (numeric + formatted label), seller type, location (city, region, GPS coordinates), all listing photos, category-specific attributes (e.g. mileage for cars, floor for apartments), promotion flags, and timestamps — everything visible on the OLX.pl listing card.
Who is it for?
- 🚗 Car dealerships and auto traders monitoring the used-car market in Poland — track prices, availability, and competitor listings
- 🏠 Real estate analysts and property investors tracking apartment and house prices across Polish cities
- 🛒 E-commerce entrepreneurs sourcing wholesale products, monitoring competitor prices on electronics, clothing, and household goods
- 📊 Market researchers and data analysts building price indices or demand datasets for the Polish classifieds market
- 🤖 Developers and data engineers building price comparison tools, lead generation pipelines, or inventory trackers powered by OLX.pl data
Why use OLX Poland Classifieds Scraper?
OLX.pl hosts millions of active listings across dozens of categories and is one of the most visited websites in Poland. The platform doesn't offer a public data export, and manually copying listings is impractical at scale. This actor:
- ✅ Returns structured JSON instead of raw HTML — every field is typed and cleaned
- ✅ Handles pagination automatically — extract up to 1,000 results per search
- ✅ Supports all OLX.pl categories — cars, real estate, jobs, electronics, fashion, pets, and more
- ✅ Accepts direct OLX.pl URLs — paste a category URL and the actor detects the right parameters
- ✅ Extracts all listing attributes — category-specific params like mileage, fuel type, floor, and number of rooms
- ✅ Provides GPS coordinates — map each listing to an exact location
- ✅ Uses efficient HTTP requests with no browser overhead — fast and cost-effective
Data you can extract
| Field | Type | Description |
|---|---|---|
id | number | Unique OLX listing ID |
title | string | Full listing title |
description | string | Listing description (plain text) |
price | number | Numeric price in PLN |
currency | string | Currency (PLN) |
priceLabel | string | Formatted price (e.g. "114 900 zł") |
negotiable | boolean | Whether the price is negotiable |
priceArranged | boolean | Whether price is "do uzgodnienia" (TBD) |
city | string | City where the listing is located |
region | string | Polish province/region |
latitude | number | GPS latitude |
longitude | number | GPS longitude |
categoryId | number | OLX category ID |
categoryType | string | Category type (e.g. automotive, real_estate) |
condition | string | Item condition (Nowe / Używane) |
sellerName | string | Seller display name |
isBusiness | boolean | True if posted by a business |
photos | array | Image URLs (800×600 resolution) |
params | object | Category-specific attributes (mileage, fuel, floor, etc.) |
isHighlighted | boolean | Whether the ad is highlighted (promoted) |
isUrgent | boolean | Whether the ad is marked Urgent |
isTopAd | boolean | Whether the ad is a Top Ad |
createdTime | string | ISO 8601 creation timestamp |
lastRefreshTime | string | ISO 8601 last refresh timestamp |
validToTime | string | ISO 8601 expiry timestamp |
url | string | Direct URL to the listing on OLX.pl |
How much does it cost to scrape OLX Poland listings?
The actor uses pay-per-result (PPE) pricing. You only pay for the listings you extract.
| Volume | Approximate cost |
|---|---|
| 100 listings | ~$0.10 |
| 500 listings | ~$0.50 |
| 1,000 listings | ~$1.00 |
The FREE plan on Apify includes $5 of usage per month — enough for approximately 5,000 listings at no charge. Most users run this actor as part of a scheduled workflow and stay comfortably within the free tier.
Costs are always billed at the per-result rate listed in the actor pricing section. The start event ($0.005) covers infrastructure setup per run regardless of result count.
How to scrape OLX Poland listings (step by step)
- Open the actor on Apify and click Try for free (no credit card required for the free tier).
- Paste an OLX.pl URL into the Start URLs field — for example,
https://www.olx.pl/motoryzacja/samochody/for cars orhttps://www.olx.pl/nieruchomosci/mieszkania/for apartments. - Alternatively, type a search keyword into the Search query field (e.g.,
laptop,sofa,iPhone). - (Optional) Set a Category ID to narrow results to a specific subcategory, or a Region ID to filter by Polish province.
- Choose your sort order — newest first, recently refreshed, or by price.
- Set Max results (up to 1,000 per run).
- Click Start and wait a few seconds for results.
- Download your data as JSON, CSV, Excel, or HTML from the dataset view.
Input parameters
🔍 What to scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | — | OLX.pl category or search URLs to scrape |
searchQuery | string | — | Keyword search (used when no startUrls provided) |
categoryId | integer | — | OLX category ID for direct filtering |
regionId | integer | — | OLX region ID for geographic filtering |
⚙️ Limits & settings
| Parameter | Type | Default | Description |
|---|---|---|---|
sortBy | select | created_at:desc | Newest / Refreshed / Price ascending / Price descending |
maxResults | integer | 100 | Maximum listings to return (1–1,000) |
maxRequestRetries | integer | 3 | Retry attempts for failed HTTP requests |
Common OLX category IDs:
| Category | URL slug | ID |
|---|---|---|
| All Motors | motoryzacja | 5 |
| Cars & Motorcycles | motoryzacja/samochody | 658 |
| Real Estate (all) | nieruchomosci | 3 |
| Apartments | nieruchomosci/mieszkania | 14 |
| Houses | nieruchomosci/domy | 15 |
| Electronics | elektronika | 6 |
| Home & Garden | dom-ogrod | 4 |
| Fashion | moda | 87 |
| Sport & Hobby | sport-hobby | 10 |
| Animals | zwierzeta | 20 |
Polish region IDs:
| Region | ID |
|---|---|
| Dolnośląskie | 2 |
| Kujawsko-Pomorskie | 15 |
| Lubelskie | 6 |
| Łódzkie | 9 |
| Małopolskie | 10 |
| Mazowieckie | 11 |
| Podkarpackie | 14 |
| Pomorskie | 5 |
| Śląskie | 17 |
| Wielkopolskie | 7 |
Output format
Each listing is stored as a JSON object in the default dataset. Example output for a car listing:
{"id": 1072603156,"url": "https://www.olx.pl/d/oferta/volvo-xc-60-CID5-ID1aAx4U.html","title": "Volvo XC 60 FULLED B4D Pakiet Czerń Kamera Virtual Panorama","description": "Witaj w firmie NEDERLAND AUTO. Rok 2024. Bezwypadkowy 100%. Przebieg autentyczny.","price": 219900,"currency": "PLN","priceLabel": "219 900 zł","negotiable": false,"priceArranged": false,"city": "Warszawa","region": "Mazowieckie","latitude": 52.2297,"longitude": 21.0122,"categoryId": 1383,"categoryType": "automotive","condition": "Używane","sellerName": "NEDERLAND AUTO","isBusiness": true,"photos": ["https://ireland.apollo.olxcdn.com:443/v1/files/abc123-PL/image;s=800x600"],"params": {"year": "2024","engine_capacity": "2000 cm3","fuel_type": "Diesel","mileage": "35000 km","color": "Czarny","car_type": "SUV"},"isHighlighted": true,"isUrgent": false,"isTopAd": true,"createdTime": "2026-05-11T18:22:53+02:00","lastRefreshTime": "2026-05-11T18:22:53+02:00","validToTime": "2026-06-10T18:21:40+02:00"}
Tips for getting the best results
- 🔗 Paste OLX URLs directly — the actor automatically detects the category from the URL for the most common categories
- 📂 Use Category IDs for precise filtering — look up the category ID from the table in this README for any OLX subcategory
- 📍 Combine region filter with keyword — e.g., search for "mieszkanie" with
regionId: 11(Mazowieckie) to get Warsaw apartments - 📄 OLX caps results at 1,000 per search — to get more than 1,000 listings from a large category, split your scrape by region or price range
- 🔄 Schedule runs daily or weekly to track price changes over time using Apify's scheduler
- 💰 Use price:asc sort to find the cheapest listings first — great for bargain hunters
- 🏷️ Filter promoted vs organic in post-processing using the
isHighlighted,isUrgent, andisTopAdfields
Integrations
Export scraped data to spreadsheets: Connect the actor to Google Sheets or Airtable via Apify's native integration or Zapier. Every new run automatically appends fresh OLX listings to your spreadsheet.
Build a price alert pipeline: Schedule the actor to run daily, compare prices using Apify's dataset API, and send Slack/email alerts when a listing drops below a target price.
Feed a real estate dashboard: Combine OLX apartment data with a BI tool like Google Looker Studio or Metabase to visualize price trends by city, region, or property type.
Lead generation for B2B: Scrape OLX job listings or business ads to identify companies actively hiring or purchasing in specific categories.
Power a price comparison site: Use the actor as a data source for a consumer-facing price comparison tool for Polish secondhand goods.
API usage
Node.js (Apify client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/olx-poland-classifieds-scraper').call({startUrls: [{ url: 'https://www.olx.pl/motoryzacja/samochody/' }],maxResults: 100,sortBy: 'created_at:desc',});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("automation-lab/olx-poland-classifieds-scraper").call(run_input={"startUrls": [{"url": "https://www.olx.pl/motoryzacja/samochody/"}],"maxResults": 100,"sortBy": "created_at:desc",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item.get("priceLabel"))
cURL
# Start the actor runcurl -X POST "https://api.apify.com/v2/acts/automation-lab~olx-poland-classifieds-scraper/runs" \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.olx.pl/motoryzacja/samochody/"}],"maxResults": 100}'# Fetch results (replace DATASET_ID with the run's defaultDatasetId)curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN"
Use with Claude Code and AI assistants (MCP)
You can use this actor directly from Claude Code, Claude Desktop, Cursor, or any MCP-compatible AI assistant:
Claude Code (terminal):
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/olx-poland-classifieds-scraper"
Claude Desktop / Cursor / VS Code — add to your MCP config file:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/olx-poland-classifieds-scraper","headers": { "Authorization": "Bearer YOUR_API_TOKEN" }}}}
Once connected, you can ask your AI assistant:
- "Scrape the 50 newest car listings from OLX Poland and give me a price breakdown"
- "Find all apartments under 500,000 PLN in Kraków on OLX"
- "What's the average price of a used iPhone 14 on OLX Poland today?"
Legality and terms of service
This actor scrapes publicly accessible data from OLX.pl — the same information any visitor can see in their browser. It does not circumvent authentication, scrape private user data, or violate any login-gated content.
Web scraping of publicly available data is generally permissible under Polish and EU law. Users are responsible for complying with OLX.pl's terms of service and applicable data protection regulations (GDPR) when processing personal data such as seller names.
This actor is intended for market research, price analysis, and business intelligence purposes. Do not use it for spam, harassment, or any activity that violates OLX.pl's terms.
FAQ
What categories can I scrape? All publicly visible OLX.pl categories: cars, motorcycles, real estate (buy/rent), electronics, computers, furniture, clothing, sports, animals, agriculture, jobs, and more. See the category ID table above for the most common ones.
Why do I get up to 1,000 results maximum?
OLX.pl's search API limits results to 1,000 per search query. To collect more listings from a large category (e.g., all Polish car listings), split your scrape across multiple searches: by region (use regionId), by price range, or by subcategory.
Why are some listings from unexpected categories?
OLX.pl's search algorithm may return results from all categories when the query is very broad. Use categoryId or more specific Start URLs to filter to a specific category.
The actor extracted fewer results than I requested — why?
OLX.pl may have fewer active listings than your maxResults limit in that category/query. The actor returns all available results.
Can I get contact details (phone numbers)? OLX.pl hides phone numbers behind a click-to-reveal interaction that requires user authentication. This actor does not extract phone numbers.
I'm getting an error: "Input schema is not valid"
Make sure startUrls entries are objects with a url key: [{ "url": "https://www.olx.pl/..." }], not plain strings.
Related scrapers
- automation-lab/amazon-asin-scraper — Amazon product data for Polish market sellers
- automation-lab/google-maps-lead-finder — Local business leads from Google Maps
Built and maintained by Automation Lab — professional web scraping tools for business intelligence.