OLX Poland Classifieds Scraper avatar

OLX Poland Classifieds Scraper

Pricing

Pay per event

Go to Apify Store
OLX Poland Classifieds Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

FieldTypeDescription
idnumberUnique OLX listing ID
titlestringFull listing title
descriptionstringListing description (plain text)
pricenumberNumeric price in PLN
currencystringCurrency (PLN)
priceLabelstringFormatted price (e.g. "114 900 zł")
negotiablebooleanWhether the price is negotiable
priceArrangedbooleanWhether price is "do uzgodnienia" (TBD)
citystringCity where the listing is located
regionstringPolish province/region
latitudenumberGPS latitude
longitudenumberGPS longitude
categoryIdnumberOLX category ID
categoryTypestringCategory type (e.g. automotive, real_estate)
conditionstringItem condition (Nowe / Używane)
sellerNamestringSeller display name
isBusinessbooleanTrue if posted by a business
photosarrayImage URLs (800×600 resolution)
paramsobjectCategory-specific attributes (mileage, fuel, floor, etc.)
isHighlightedbooleanWhether the ad is highlighted (promoted)
isUrgentbooleanWhether the ad is marked Urgent
isTopAdbooleanWhether the ad is a Top Ad
createdTimestringISO 8601 creation timestamp
lastRefreshTimestringISO 8601 last refresh timestamp
validToTimestringISO 8601 expiry timestamp
urlstringDirect 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.

VolumeApproximate 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)

  1. Open the actor on Apify and click Try for free (no credit card required for the free tier).
  2. Paste an OLX.pl URL into the Start URLs field — for example, https://www.olx.pl/motoryzacja/samochody/ for cars or https://www.olx.pl/nieruchomosci/mieszkania/ for apartments.
  3. Alternatively, type a search keyword into the Search query field (e.g., laptop, sofa, iPhone).
  4. (Optional) Set a Category ID to narrow results to a specific subcategory, or a Region ID to filter by Polish province.
  5. Choose your sort order — newest first, recently refreshed, or by price.
  6. Set Max results (up to 1,000 per run).
  7. Click Start and wait a few seconds for results.
  8. Download your data as JSON, CSV, Excel, or HTML from the dataset view.

Input parameters

🔍 What to scrape

ParameterTypeDefaultDescription
startUrlsarrayOLX.pl category or search URLs to scrape
searchQuerystringKeyword search (used when no startUrls provided)
categoryIdintegerOLX category ID for direct filtering
regionIdintegerOLX region ID for geographic filtering

⚙️ Limits & settings

ParameterTypeDefaultDescription
sortByselectcreated_at:descNewest / Refreshed / Price ascending / Price descending
maxResultsinteger100Maximum listings to return (1–1,000)
maxRequestRetriesinteger3Retry attempts for failed HTTP requests

Common OLX category IDs:

CategoryURL slugID
All Motorsmotoryzacja5
Cars & Motorcyclesmotoryzacja/samochody658
Real Estate (all)nieruchomosci3
Apartmentsnieruchomosci/mieszkania14
Housesnieruchomosci/domy15
Electronicselektronika6
Home & Gardendom-ogrod4
Fashionmoda87
Sport & Hobbysport-hobby10
Animalszwierzeta20

Polish region IDs:

RegionID
Dolnośląskie2
Kujawsko-Pomorskie15
Lubelskie6
Łódzkie9
Małopolskie10
Mazowieckie11
Podkarpackie14
Pomorskie5
Śląskie17
Wielkopolskie7

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, and isTopAd fields

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 ApifyClient
client = 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 run
curl -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.


Built and maintained by Automation Lab — professional web scraping tools for business intelligence.