OLX Brazil Scraper | Listings, Prices & Seller Data
Pricing
from $1.00 / 1,000 results
OLX Brazil Scraper | Listings, Prices & Seller Data
[💰 $1.0 / 1K] Scrape OLX Brazil listings at scale. Extract titles, prices, descriptions, photos, seller details, location, and category data from Brazil's largest classifieds marketplace by keyword or URL.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(2)
Developer
SolidCode
Maintained by CommunityActor stats
4
Bookmarked
145
Total users
56
Monthly active users
14 hours
Issues response
20 days ago
Last modified
Categories
Share
OLX Brazil Scraper
Pull classifieds from OLX Brazil at scale — every title, price in Brazilian Reais, photos, seller details, neighbourhood, CEP postal code, and listing timestamp from Brazil's largest classifieds marketplace. Built for real-estate aggregators, price-arbitrage resellers, lead-generation teams, and Brazilian-market analysts who need fresh OLX data without juggling regional subdomains or building their own pipeline.
Why This Scraper?
- All 27 Brazilian states, strict-validated — every official UF code (AC through TO) is supported as a path-segment filter; invalid codes get an actionable error instead of silent all-Brazil results.
- Four sort orders applied at the source — Most Relevant, Newest First, Price: Low to High, and Price: High to Low — encoded into the OLX query itself so paging order is consistent.
- Native min/max price filter in Brazilian Reais — clamps results at OLX's own query layer; no wasted rows on out-of-budget ads.
- Business-only toggle for B2B prospecting — isolate professional sellers (lojas e profissionais) and exclude private individuals in one click.
- Opt-in deep records: full description, seller name and CEP postal code — the three fields OLX publishes only on a listing's own page. Off by default and priced separately, so browse-only runs never pay for them.
- URL passthrough plus plain-text queries in one run — paste any olx.com.br URL (search, category, or state path like
/imoveis/venda/estado-sp) and mix it with keyword searches; results are combined and de-duplicated by listing ID. - High-fidelity records straight from OLX's own data layer — every field matches what the OLX product page shows, with prices parsed to integers + currency code and timestamps emitted as ISO 8601 plus epoch seconds.
- Up to 5,000 listings per search URL — the actor walks OLX's paging ceiling, detects the server-side clamp, and surfaces a friendly "split by state or category" hint when you hit it.
- Actionable zero-result hint — when a filter combo returns nothing, the run reports the exact keyword, state, and price range you used so you can adjust without guessing.
Use Cases
Real Estate Market Research
- Track apartment and house inventory across São Paulo, Rio de Janeiro, and Minas Gerais
- Compare median asking prices by state, city, and neighbourhood
- Spot new construction launches by sorting "Newest First"
- Map regional price compression by combining
imoveisURLs across UF codes
Property & Auto Lead Generation
- Build prospect lists of business sellers (
includeBusinessOnly: true) — auto dealerships, real-estate agencies, and electronics resellers - Capture seller name and phone-availability flag for every active listing
- Target one state at a time with
state: "SP"for regional sales teams
Price Intelligence for Resale
- Monitor iPhone, PlayStation, and laptop pricing in BRL across the country
- Identify under-priced listings with a tight
maxPricecap - Compare private-seller vs. business-seller pricing on the same model
Cross-Border Investment Scouting
- Surface vacation rentals and second homes in Florianópolis, Búzios, or Trancoso
- Quantify entry prices for foreign buyers exploring the Brazilian market
- Track price-history shifts week-over-week by re-running the same URL
Demand & Category Trend Tracking
- Map listing volume by category across
imoveis,autos-e-pecas,eletronicos-e-celulares, and more - Detect seasonal spikes in regional categories (air conditioners in summer, heaters in winter)
- Feed time-series dashboards with
postedAtISO timestamps
Data Enrichment & Aggregation
- Augment internal CRMs with current OLX prices and photos
- Power classifieds aggregators that compete with OLX-only feeds
- Build alerting systems for new listings under a price threshold
Getting Started
Search by URL
The simplest possible run — paste any olx.com.br URL with your filters already applied:
{"searchUrls": ["https://www.olx.com.br/imoveis/venda/estado-sp"],"maxResults": 100}
Plain-Text Search with State Filter
Run a keyword across one Brazilian state and sort by newest first:
{"searchQueries": ["iPhone 13"],"state": "RJ","sortBy": "newest","maxResults": 200}
Price-Filtered Business Listings
Find apartments under R$500,000 from business sellers only, sorted cheapest first:
{"searchUrls": ["https://www.olx.com.br/imoveis/venda/estado-mg"],"minPrice": 100000,"maxPrice": 500000,"sortBy": "price_asc","includeBusinessOnly": true,"maxResults": 500}
Combined Multi-Source Run with Full Enrichment
Mix multiple URLs and keyword queries, pull descriptions, seller names, and CEPs:
{"searchUrls": ["https://www.olx.com.br/autos-e-pecas/carros-vans-e-utilitarios/estado-sp","https://www.olx.com.br/autos-e-pecas/carros-vans-e-utilitarios/estado-rj"],"searchQueries": ["Honda Civic", "Toyota Corolla"],"state": "SP","minPrice": 30000,"maxPrice": 80000,"sortBy": "price_asc","enrichDetails": true,"maxResults": 1000}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | string[] | ["https://www.olx.com.br/imoveis/venda/estado-sp"] | Paste one or more OLX Brazil URLs. Search pages, category pages, and state path URLs (/imoveis/venda/estado-sp) are all supported. |
searchQueries | string[] | [] | Plain-text search terms — for example iPhone 13, Gol G5, or Apartamento. Each query runs on OLX Brazil and returns matching listings. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum number of listings to collect across all URLs and queries. Set to 0 for unlimited (capped internally at 50,000). OLX itself limits results to roughly 5,000 listings per search URL — split larger queries by state or category to scale beyond that. |
sortBy | select | Most Relevant | Order in which listings are collected. Options: Most Relevant, Newest First, Price: Low to High, Price: High to Low. If a Search URL already specifies a sort order, that URL's sort wins and this setting is ignored for it. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
state | select | (any) | Restrict plain-text Search Queries to one of the 27 Brazilian states by UF code (e.g. SP, RJ, MG). Search URLs already carry their own state and take precedence. |
minPrice | integer | (none) | Only include listings priced at or above this amount in Brazilian Reais. Applied at OLX's native query layer. |
maxPrice | integer | (none) | Only include listings priced at or below this amount in Brazilian Reais. Applied at OLX's native query layer. |
includeBusinessOnly | boolean | false | When enabled, only include ads posted by business sellers (lojas / profissionais) and exclude private individuals. |
enrichDetails | boolean | false | Turn on to also collect each listing's full description, seller name and CEP postal code. These listings are billed at the higher enriched rate (see Pricing), and only when the details are actually found. |
Output
Every row is a single OLX listing with prices in BRL, photos, seller details, and posting timestamps. Here is a representative result with enrichDetails turned on:
{"listingId": "1419837622","title": "Apartamento 2 quartos no Centro de São Paulo","description": "Apartamento mobiliado, 2 quartos, 1 vaga de garagem, próximo ao metrô.\n\nÁrea: 65m². Sol da manhã. Aceita financiamento.","url": "https://sp.olx.com.br/sao-paulo-e-regiao/imoveis/apartamento-2-quartos-centro-sp-1419837622","price": 420000,"priceDisplay": "R$ 420.000","currency": "BRL","city": "São Paulo","state": "SP","neighborhood": "Centro","locationDisplay": "São Paulo, SP","zipcode": "01001000","categoryId": "1020","categoryName": "Apartamentos","parentCategoryName": "Imóveis","photos": ["https://img.olx.com.br/images/01/example1.jpg","https://img.olx.com.br/images/02/example2.jpg"],"thumbnailUrl": "https://img.olx.com.br/images/01/example1.jpg","imageCount": 12,"videoCount": 0,"properties": [{ "name": "Quartos", "value": "2" },{ "name": "Área útil", "value": "65" }],"seller": {"name": "Imobiliária Central","type": "business","id": "8472193","phoneAvailable": true},"isBusiness": true,"isFeatured": false,"postedAt": "2026-05-12T14:22:00+00:00","postedAtTimestamp": 1747059720,"lastBumpAgeSecs": 86400,"ddd": "11","searchUrl": "https://www.olx.com.br/imoveis/venda/estado-sp","searchQuery": null,"scrapedAt": "2026-05-16T10:30:00+00:00"}
Core Fields
| Field | Type | Description |
|---|---|---|
listingId | string | Unique OLX listing identifier |
title | string | Listing headline as shown on OLX |
description | string | Full description text (populated when enrichDetails: true) |
url | string | Direct OLX listing URL on the regional subdomain |
categoryId | string | OLX category ID |
categoryName | string | Category label (e.g. Apartamentos, Carros) |
parentCategoryName | string | Top-level category (e.g. Imóveis, Autos e peças) |
properties | object[] | Category-specific attributes (bedrooms, area, mileage, year, etc.) |
isFeatured | boolean | Whether the ad was promoted to a featured slot |
postedAt | string | ISO 8601 timestamp of when the ad was first listed |
postedAtTimestamp | number | Epoch seconds of the post time |
lastBumpAgeSecs | number | Seconds since the seller last bumped the listing |
scrapedAt | string | ISO 8601 timestamp of data collection |
searchUrl | string | The OLX URL this row came from |
searchQuery | string | The plain-text query that produced this row, when applicable |
Price
| Field | Type | Description |
|---|---|---|
price | number | Numeric price in Brazilian Reais (integer) |
priceDisplay | string | Price as shown on OLX (e.g. R$ 420.000, À combinar) |
currency | string | Always BRL |
Location
| Field | Type | Description |
|---|---|---|
city | string | City name |
state | string | Two-letter UF code (e.g. SP, RJ) |
neighborhood | string | Neighbourhood name |
locationDisplay | string | OLX's combined location string |
zipcode | string | CEP postal code (populated when enrichDetails: true) |
ddd | string | Brazilian area code for the listing region |
Seller
| Field | Type | Description |
|---|---|---|
seller.name | string | Seller name (populated when enrichDetails: true) |
seller.type | string | business for professional sellers, private for individuals |
seller.id | string | OLX seller identifier |
seller.phoneAvailable | boolean | Whether OLX exposes a contact method on the ad |
seller.imageUrl | string | Seller avatar URL when available |
isBusiness | boolean | Convenience flag mirroring seller.type == "business" |
Photos
| Field | Type | Description |
|---|---|---|
photos | string[] | Every image URL on the listing in original resolution |
thumbnailUrl | string | First image, suitable for previews |
imageCount | number | Total number of listing photos |
videoCount | number | Total number of attached videos |
Tips for Best Results
- Start small. Set
maxResultsto 30–100 on your first run to verify the data matches your needs, then scale up. - Use UF codes for state filtering. The
statefield accepts the 27 official two-letter codes — combine with broad keywords likeapartamentoorcasarather than long-tail terms; OLX matches fuzzily and tight phrases drop too many real ads. - Native price filters are free. Setting
minPriceandmaxPricefilters at the OLX query layer, so you never pay for listings outside your budget. Prefer this over post-filtering in your own pipeline. - Leave
enrichDetailsoff unless you need the description text. Title, price, photos, location, category and seller type all come from the search results at the standard rate. Only switch it on when full descriptions, seller names or postal codes are genuinely part of your workflow — those runs are billed at the higher enriched rate and take longer. - Pageable ceiling is ~5,000 per URL. If you need every apartment in São Paulo state, split the run by city URLs or category sub-paths instead of one mega query — the actor will surface a friendly message when it hits the cap.
- Mix URLs and keyword queries in one run. You can paste category URLs from olx.com.br and add free-text queries together; results are de-duplicated by listing ID so there are no double-counts.
- Many sources are processed sequentially. Adding many URLs queues them one after another with a short pause between each — useful if you want predictable ordering, but for very large batches consider grouping by category instead of pasting dozens of individual URLs.
- For listings under a tight budget, set
maxPricerather than trusting sort. OLX's "Price: Low to High" order is not strictly ascending — combinesortBy: "price_asc"withmaxPricefor the cleanest cheap-end sweep.
Pricing
$1.00 per 1,000 listings — pay per result. You only pay for listings actually returned to your dataset.
| Listings | Estimated Cost |
|---|---|
| 100 | $0.10 |
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |
Optional: full descriptions, seller names and postal codes
Descriptions, seller names and CEP postal codes are the one thing OLX keeps off its search pages — each listing has to be opened individually to read them. That extra work is priced separately, so you never subsidise it when you don't need it:
| What you collect | Price per 1,000 |
|---|---|
| Standard listing (title, price, photos, location, category, seller type) | $1.00 |
| Listing plus full description, seller name and postal code | $2.80 |
Turn it on with Add Full Description, Seller Name & Postal Code in the input. It's off by default, and you're only charged the higher rate for listings that actually come back with those details — if OLX doesn't serve them for a listing, you pay the standard rate.
No compute or time-based charges. A "result" is any listing row in the output dataset. Platform fees (storage, optional bandwidth) are additional and depend on your Apify plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access via SDK or REST
Legal & Ethical Use
This actor is designed for legitimate market research, price intelligence, lead generation, and data aggregation. Users are responsible for complying with applicable Brazilian and international laws and OLX Brazil's terms of service, including making reasonable-rate requests and only collecting publicly accessible classified-ad data. Do not use extracted data for spam, harassment, fraud, or any illegal purpose. Be mindful of the LGPD (Lei Geral de Proteção de Dados) when handling any personal information that appears in seller profiles.