OLX Brazil Scraper — Any Category, Any Keyword
Pricing
from $1.00 / 1,000 results
OLX Brazil Scraper — Any Category, Any Keyword
Searches any category on olx.com.br - real estate, cars, electronics, anything - and returns priced listings with structured attributes (area, bedrooms, mileage, color, engine) parsed from the site's own detail chips. No seller identity is ever collected.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
reventadata
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Unofficial. This Actor is not affiliated with, authorised by, endorsed by, or in any way officially connected to OLX. "OLX" is a trademark of its respective owner and is used here only to describe what this tool reads. It reads the same public pages a browser does.
OLX Brazil Scraper searches any category on olx.com.br — real estate, cars, electronics, anything the site lists — and returns priced listings with the structured attributes OLX itself publishes on the search card (area, bedrooms, bathrooms, mileage, color, engine size), plus a raw catch-all for any category-specific attribute this Actor's recon pass did not name.
What data can you extract from OLX Brazil (olx.com.br)?
olx.com.br is a Next.js App Router site with no clean embedded JSON on its search-results page, so this Actor reads the rendered HTML tiles directly, the same way a browser paints them. You point it at any OLX BR category path — copied straight from the site's own address bar — with an optional keyword to narrow inside it, and it walks pages until the results run out, the 100-page site ceiling is hit, or your row cap is reached.
Why scrape OLX Brazil (olx.com.br)?
- Truly generic — one Actor, any category.
categoryPathis free text: paste inimoveis,autos-e-pecas/carros-vans-e-utilitarios, a specific city/UF path, or a category this Actor was never specifically tested against. Chips it doesn't recognise are still returned raw inattributes, not dropped. - No category enum to fall out of date. OLX BR's full slug list was never independently enumerated (a lot of it is regional and dynamic); a free-text path avoids inventing one and breaking when the site adds a category.
- Real estate and autos get typed fields.
areaM2/bedrooms/bathrooms/parkingSpacesfor imóveis,mileageKm/color/engineSize/bodyTypefor autos, parsed from the site's ownaria-labeldetail chips — not free-text mining, so there is nothing to hallucinate. - The phantom-results trap is handled. A keyword with zero real matches still renders up to 8 unrelated "Mais recentes" fallback cards under the exact same markup as a genuine result. This Actor keys off the page's own "0 - 0 de 0 resultados" text, never off how many cards are on the page, so a bad search reports zero rows instead of eight wrong ones.
- No seller identity, ever. OLX BR's search tiles carry no seller name, phone, e-mail or profile link anywhere in the markup — that data exists only on individual listing pages, which this Actor never fetches. There is nothing to redact because nothing is collected.
How to scrape OLX Brazil (olx.com.br)
- Paste a category path from OLX BR's own address bar into
categoryPath— or leave it empty to search all of olx.com.br nationwide. - Optionally add
searchQueriesto narrow inside that category, a price range, and (for autos) a mileage range or "accepts trade-ins" filter. - Run it. Results land in the dataset.
Input
| Field | Type | Meaning |
|---|---|---|
categoryPath | string | OLX BR's own URL path segments — category, transaction type, location, and (autos) registration year all live here. E.g. imoveis/aluguel/apartamentos/estado-df/distrito-federal-e-regiao/brasilia or autos-e-pecas/carros-vans-e-utilitarios/2019. Empty = nationwide. |
searchQueries | array | Optional keywords. Each narrows within categoryPath — confirmed not to replace it. Empty is a valid, fully generic "browse this category" run. |
sortBy | string | relevance | newest | priceAsc | priceDesc. |
minPrice / maxPrice | integer | Optional, in R$. Omitted from the request entirely when empty — never defaulted to 0. |
minMileageKm / maxMileageKm | integer | Autos category only; confirmed genuinely bounded there. |
acceptsTradeOnly | boolean | Autos category only ("Aceita trocas" badge). Confirmed genuinely filtered. |
requireKeywordMatch | boolean | A defensive second pass after OLX's own q narrowing. Default on. |
maxItems | integer | Hard cap on rows pushed. Default 300 (lowered from 1000 on 2026-08-22 — see below). |
maxPages | integer | Clamped to OLX's own confirmed ceiling of 100. |
proxyConfiguration | object | Apify Unblocker by default. olx.com.br blocks plain HTTP and the Apify datacenter/residential proxy groups outright. |
{"categoryPath": "autos-e-pecas/carros-vans-e-utilitarios","searchQueries": ["civic"],"minPrice": 60000,"maxPrice": 120000,"maxItems": 200}
Output
{"id": "1516661625","title": "Honda Civic Sedan EXL 2019","url": "https://sp.olx.com.br/sp/autos-e-pecas/honda-civic-sedan-exl-2019-1516661625","imageUrl": "https://img.olx.com.br/thumbs700x500/99/991595642999302.webp","price": 89900,"currency": "BRL","location": "São Luís - MA","postedAt": "Hoje, 15:30","areaM2": null,"bedrooms": null,"bathrooms": null,"parkingSpaces": null,"mileageKm": 133,"color": "Vermelho","engineSize": "1.3","bodyType": "Sedã","year": 2019,"acceptsTrade": true,"isSellerOnline": true,"attributes": [],"matchedKeyword": "civic"}
For a real-estate search, areaM2/bedrooms/bathrooms/parkingSpaces are filled from the
site's own chips and the autos-only fields come back null. A land listing carries only
areaM2; the other property fields are null, never 0 — absence of a chip is not zero.
Notes and limits
- The default
maxItemsis 300, not 1000. A category-less, keyword-less nationwide browse (this Actor's own daily auto-test input) measured 244s at 991 rows against Apify's 5-minute auto-test window — too little headroom. The same run at 300 rows finished in 50s. RaisemaxItemsexplicitly if you need more and can accept a longer run. - Page 100 is a hard clamp. Pages 101 through at least 1000 serve byte-identical content
to page 100 — confirmed by comparing the first AND last listing on each. At 50 rows/page
that is roughly 5,000 listings per distinct filter combination. Narrow with
categoryPathor a price range to get past it, the same mitigation the Gumtree sibling recommends. - Only Apify Unblocker and Bright Data reach this site. Plain HTTP, Apify datacenter and Apify residential all return the identical ~5.8 KB block page — measured 25/25 failures on two separate verticals. There is no "cheap, no-proxy" mode here.
yearis a best-effort guess, not a published field. OLX BR never puts registration year in a chip — it is read from the trailing token of the title, and only on tiles a real vehicle chip (mileage/color/engine/body type) already confirms as an auto, to avoid mistaking a real-estate street number for a year.attributesis a catch-all. Any detail chip that doesn't match one of the eight recognised patterns (area, bedrooms, bathrooms, parking, mileage, color, engine, body type) is kept here as raw text instead of being silently dropped — useful for a category this Actor's recon pass never specifically covered.- A run that returns zero rows fails rather than succeeding empty. If every page came back empty or every row was filtered out, the Actor raises instead of writing an empty dataset, so a silent misconfiguration cannot look like "no stock today".
minMileageKm/maxMileageKm/acceptsTradeOnlywere only verified on the autos category. Setting them elsewhere is unlikely to error, but whether OLX BR honours them outside autos was not tested.categoryPathis not validated against a slug list. An invalid path segment was not confirmed to redirect anywhere (no Milanuncios-style silent-redirect trap was found in testing), but this Actor setsfollow_redirects=Falsedefensively regardless, so any redirect surfaces as a visible failure rather than silently returning an unfiltered page.- Reads the same public page a browser does. See the disclaimer at the top.
How much does it cost to scrape OLX Brazil (olx.com.br)?
Pricing is pay-per-event: $0.001 per result written to the dataset ($1.00 per 1,000 results), plus $0.00005 charged once when the run starts. There is no subscription — you pay only for what you get.
FAQ
Is a proxy required to scrape OLX Brazil? Yes. Plain HTTP, Apify's datacenter proxy and Apify's residential proxy all returned the identical block page — measured 25/25 failures on two separate verticals. Only Apify Unblocker and Bright Data reach this site, and this Actor defaults to Unblocker.
Is seller identity collected? No. OLX BR's search tiles carry no seller name, phone, e-mail or profile link anywhere in the markup, and this Actor never fetches individual listing pages.
How many listings can one search return? Up to page 100, roughly 5,000 listings per distinct filter combination — OLX BR's own hard clamp. Pages beyond 100 re-serve page 100's content rather than erroring.
More second-hand marketplace scrapers
| Actor | What it scrapes |
|---|---|
| Wallapop Scraper | Wallapop, Spain — any keyword, phone mode with battery-health parsing |
| Wallapop + Vinted + Milanuncios Scraper — Spain | Wallapop, Vinted and Milanuncios in Spain — one keyword, one merged table |
| Cash Converters Spain Scraper | Cash Converters Spain — graded second-hand stock with price when new |
| Milanuncios Scraper | Milanuncios — 17 categories, condition, storage and battery-health filters |
| Gumtree UK Scraper | Gumtree UK — any category, vehicle and phone details parsed from the ad's own text |
| OLX Romania Scraper | OLX Romania (olx.ro) — any keyword, no proxy required |
| Vinted Spain Scraper | Vinted Spain (vinted.es) — any keyword or category, no proxy required |
| Todocolección Scraper | Todocolección — collectibles, antiques and auctions, fixed-price and bidding modelled apart |
| Back Market Spain Scraper | Back Market Spain — refurbished phones, laptops and tablets, priced against new |
| eBay Spain Scraper | eBay Spain (ebay.es) — active listings with seller type |