OLX Brazil Scraper
Pricing
from $2.00 / 1,000 listing scrapeds
OLX Brazil Scraper
Scrape OLX Brazil (olx.com.br) listings from any search URL: price, location, rooms, area, condo fee, mileage, photos, listing date, seller type. Real estate, cars and all categories.
Pricing
from $2.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape OLX Brazil (olx.com.br) classified listings from any search or category URL: price, old price, title, city, neighbourhood and state, category-specific attributes (rooms, bathrooms, area, condo fee, IPTU for real estate; brand, model, year, mileage, fuel, gearbox for vehicles), photos, listing date and seller type. Works for imóveis, autos e peças, eletrônicos e celulares and every other OLX category.
Paste any olx.com.br search page (with whatever filters and sort you picked in the browser) or just pick a category, a state and a keyword, and get every ad as clean JSON, CSV or Excel, or straight into your app through the API. Built for reliability: it reads the structured data OLX embeds in every page instead of scraping the visual layout, uses browser-grade TLS fingerprints, throttles itself and retries on a fresh proxy session, so runs finish instead of failing halfway. You pay only for the listings you get.
What data does OLX Brazil Scraper extract?
Every ad from the search results gives you:
| Field | Description |
|---|---|
id, url | OLX listing id and the ad URL |
title | Ad title |
price, priceCurrency, priceText | Numeric price in BRL (sale price or monthly rent) and the text as shown ("R$ 1.490.000") |
oldPrice, hasPriceReduction | Previous price when OLX shows a price drop |
category, categoryId | Top-level category: Imóveis, Autos e peças, Eletrônicos e celulares, ... |
subcategory, subcategoryId, adCategory | e.g. "Venda - casas e apartamentos" / "Apartamentos", "Carros, vans e utilitários", "Celulares e Smartphones" |
location | {city, neighbourhood, state, ddd} (plus zipcode, zipcodePrefix, street, region, zone with details) |
dealType | Real estate: sale, rent or vacation |
propertyType, rooms, bathrooms, parkingSpaces, areaSqm, condoFee, iptu, features, complexFeatures | Real-estate columns parsed from the ad attributes |
brand, model, year, mileageKm, fuel, gearbox, color, doors, vehicleType, enginePower, features | Vehicle columns parsed from the ad attributes |
attributes | Every category attribute OLX shows, as {name: value} (e.g. electronics_model, cellphone_storage, end_tag, re_types, exchange) |
images, imageCount, videoCount | Full-size photo URLs |
publishedAt | When the ad was listed (ISO 8601, UTC) |
sellerType, sellerBusinessName | professional or private; the business name for professional accounts (agencies, dealerships, stores). Private sellers' names are never exported. |
isFeatured, olxPayEnabled, olxDeliveryEnabled, hasInspectionReport, has360View | Ad flags |
sourceUrl, scrapedAt | The search URL the ad came from and the scrape timestamp |
Turn on Include listing details to also open each ad page and add:
| Field | Description |
|---|---|
description | Full ad text (plain text) |
attributes | The complete attribute list from the ad page (more fields than the search card) |
location.zipcode, location.zipcodePrefix, location.street, location.region, location.zone | CEP, street (when the seller shows it), OLX region and zone |
latitude, longitude | Map coordinates (real-estate ads; OLX sends none for other categories) |
condoFee, iptu, iptuPeriod, priceLabel | Condo fee and IPTU as shown in the price box ("Venda" / "Aluguel") |
financing | {isFinanceable, installment, upfrontPayment, acceptsConsortium, acceptsLoan} |
fipePrice, marketPriceReference | Vehicles: FIPE table price and OLX's market reference {min, p25, median, p75, max, sampleSize, monthRef} |
highlights, tags | "Único dono", "IPVA pago", "Aceita troca", ... |
videos, images | Video URLs and the full photo set |
sellerId, phoneAvailable, chatEnabled | Professional account id; whether the ad shows a phone button / chat (the number itself is never collected) |
How to scrape OLX listings
- Open olx.com.br, run the search you want (category, state, city, price range, rooms, brand, sort) and copy the URL from the address bar into Start URLs. Or fill Category (
imoveis/venda,autos-e-pecas/carros-vans-e-utilitarios,celulares, ...), State (sp,rj,mg, ...) and an optional Search query, price range and sort. - Set Max items (cost cap). Optionally turn on Include listing details.
- Click Start. Results appear in the Dataset tab; export as JSON, CSV or Excel, or read them through the API.
Use www.olx.com.br URLs for searches. Regional sub-domains (sp.olx.com.br/...) are fine for single ad URLs, which return one fully detailed listing.
Input example
{"startUrls": [{ "url": "https://www.olx.com.br/imoveis/venda/apartamentos/estado-rj?ps=200000&pe=600000&sf=1" }],"maxItems": 500,"includeDetails": false}
or, by category:
{"category": "autos-e-pecas/carros-vans-e-utilitarios","state": "sp","searchQuery": "honda civic","minPrice": 40000,"maxPrice": 120000,"sort": "newest","maxItems": 200,"includeDetails": true}
Output example
{"id": "1533858908","url": "https://sp.olx.com.br/grande-campinas/imoveis/vendo-apartamento-1533858908","title": "Vendo apartamento","price": 190000,"priceCurrency": "BRL","priceText": "R$ 190.000","oldPrice": null,"category": "Imóveis","subcategory": "Venda - casas e apartamentos","adCategory": "Apartamentos","location": { "city": "Sumaré", "neighbourhood": "Jardim Santa Maria (Nova Veneza)", "state": "SP", "ddd": "19" },"dealType": "sale","propertyType": "Padrão","rooms": 2,"bathrooms": 1,"parkingSpaces": 1,"areaSqm": 48,"condoFee": 377,"iptu": null,"features": ["Academia", "Armários na cozinha", "Armários no quarto", "Piscina"],"complexFeatures": ["Academia", "Condomínio fechado", "Permitido animais", "Piscina", "Portaria", "Salão de festas", "Segurança 24h"],"attributes": { "real_estate_type": "Venda - apartamento padrão", "condominio": "R$ 377", "size": "48m²", "rooms": "2", "bathrooms": "1", "garage_spaces": "1", "re_types": "Padrão" },"images": ["https://img.olx.com.br/images/12/126668798559786.jpg"],"imageCount": 9,"publishedAt": "2026-09-09T16:25:47+00:00","sellerType": "private","sellerBusinessName": null,"isFeatured": true,"hasPriceReduction": false,"sourceUrl": "https://www.olx.com.br/imoveis/estado-sp","scrapedAt": "2026-09-09T16:43:35+00:00"}
A vehicle ad has brand, model, year, mileageKm, fuel, gearbox, color, doors, vehicleType instead of the real-estate columns; with details it also carries fipePrice, marketPriceReference, financing.installment and highlights.
How many listings can I get per search?
OLX shows 50 ads per page and serves at most 100 pages, so one search URL yields up to 5,000 listings. To go beyond that, split the search: by state (estado-sp, estado-rj), by region or city path (/imoveis/venda/estado-sp/sao-paulo-e-regiao/zona-sul), by subcategory (/imoveis/venda/apartamentos, /autos-e-pecas/motos) or by price band (ps= / pe=). Run several URLs in one run; results are de-duplicated by listing id. Sorting by newest (sf=1, or Sort: Newest first) is the best way to collect fresh ads on a schedule.
Does it work for cars, phones and other categories, not just real estate?
Yes. Every OLX category is supported: paste the category or search URL, or set Category to its path. The attributes object always carries every attribute OLX shows for that category; the real-estate and vehicle columns are filled in whenever the attributes exist.
Does it collect seller phone numbers or names?
No. This Actor collects public listing data only. Business names of professional accounts (imobiliárias, concessionárias, lojas) are exported as sellerBusinessName; names of private sellers and all phone numbers are never collected. phoneAvailable only tells you whether the ad shows a phone button.
Do I need a proxy?
Apify Proxy is enabled by default. OLX sits behind Cloudflare; datacenter proxies worked in testing, and the Actor retries on a fresh proxy session when it sees 403/429. If a run logs many retries, switch the proxy to the RESIDENTIAL group.
Pricing
Pay per result: a small fee for every listing saved from a search page, plus a small fee per ad page opened when Include listing details is on (see the Pricing tab). There is no subscription and no start fee; Apify's free plan is enough to try it.
Integrations and API
Use the run in Zapier, Make, n8n, Google Sheets, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets.
Is it legal to scrape OLX Brasil?
This Actor collects only publicly available, non-personal listing data (no phone numbers, no names of private sellers). You are responsible for how you use the data and for complying with OLX's terms, the LGPD and other applicable law.
Support
Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.