OLX Product Search Scraper
Pricing
from $2.99 / 1,000 product search results
OLX Product Search Scraper
Search and scrape classified product listings from OLX across multiple country domains. Supports keyword search, category filtering, location, and sort order. Extracts title, price, location, seller name, and listing URL — ideal for C2C marketplace research and second-hand market analysis.
Pricing
from $2.99 / 1,000 product search results
Rating
0.0
(0)
Developer
w3crawler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape product listings from public OLX pages across multiple countries using bounded, browser-compatible HTML requests and JSON-LD/card parsing. It does not use login, private APIs, or CAPTCHA bypass.
Features
- Multi-country support — scrape
olx.pl,olx.pt,olx.ro,olx.bg,olx.ua,olx.kz,olx.in, and more - Keyword search — find listings by product name or category keyword
- Compatible inputs — accepts legacy category, location, and sort fields while using the selected public URL or current country search route
- Configurable result limit — set
maxItemsto control how many listings to collect - Cloud-ready — runs on Apify with scheduling, optional standard proxy configuration, and webhook support
Use Cases
- Cross-country price comparison for second-hand goods
- Market research on buyer demand and listing volumes
- Competitor monitoring for classified ad sellers
- Automated inventory and pricing alerts
Input
| Field | Type | Default | Required | Description |
|---|---|---|---|---|
domain | string | olx.pl | OLX country domain, e.g. olx.pl, olx.in, olx.ro | |
query | string | — | Keyword to search for (e.g. "laptop", "phone", "furniture") | |
categoryId | integer | — | OLX category numeric ID (optional filter). Varies by country | |
location | string | — | Optional public location slug used when no query is supplied | |
sortBy | string | created_at:desc | Compatibility preference retained in run input and output context | |
maxItems | integer | 50 | Maximum number of listings to scrape | |
maxPages | integer | 1 | Bounded number of page variants requested per source URL | |
proxyConfiguration | object | direct | Optional standard Apify Proxy settings; enabled runs reuse one valid session ID and never expose credentials in output |
Example Input
{"domain": "olx.pl","query": "laptop","sortBy": "created_at:desc","maxItems": 25,"proxyConfiguration": {"useApifyProxy": true}}
Output
Each scraped listing includes:
| Field | Description |
|---|---|
productName | Listing title |
price | Price as displayed (e.g. "3 500 zł") |
location | City or region of the listing |
listingUrl | Direct URL to the OLX listing |
postedAt | Date the ad was posted |
productDescription | Short listing description when public structured data provides it |
category | Category name |
query | Search keyword used |
listingId | OLX internal listing ID |
scrapedAt | ISO timestamp when the listing was scraped |
Notes
- Public page structure and access controls vary by country. Blocked pages produce diagnostic rows; the Actor does not bypass access controls.
categoryIdvalues differ by country — check the public OLX category URL for your domain.
categoryId and sortBy are applied to the public search URL, and location participates in the search route. With scrapeDetails: true, the Actor follows each public listing URL once and merges additional structured fields while retaining the bounded global item limit.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. requestDelayMs, maxRequestRetries, and fixturePath provide bounded retry pacing and explicit checked-in local QA without silently replacing live access.