OLX Brazil Scraper | $0.8/1K — Listings, Prices, Sellers
Pricing
from $0.80 / 1,000 listing scrapeds
OLX Brazil Scraper | $0.8/1K — Listings, Prices, Sellers
Scrape OLX Brasil by keyword, state or search URL: title, price and previous price, category, city, neighborhood, attributes (rooms, mileage, brand), photos and professional seller. Cars, real estate, electronics, furniture. Up to 5,000 per search. $0.80 per 1,000 listings, blocked pages free.
Pricing
from $0.80 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Gangary
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

OLX Brazil Scraper | $0.8/1K — Listings, Prices, Sellers
US$0.80 per 1,000 listings + US$0.005 per run. Brazilian residential proxies and retries are included; blocked pages, failed searches and invalid URLs are never charged.
Search OLX, Brazil's largest classifieds marketplace, by keyword, state or search URL and get every listing back as structured data: price, previous price, category, city and neighborhood, state, publish date, attributes (rooms, size, mileage, brand, condition...), photos and the seller name of professional advertisers. One run covers cars, real estate, electronics, furniture and every other OLX category.
- Up to 50 search URLs + 50 keywords in one run, each one followed through OLX pagination.
- Up to 5,000 listings per search (100 pages of 50), the most OLX itself serves.
- Each listing delivered and charged once per run, even when several of your searches overlap.
Em português: raspe a OLX por palavra-chave, estado (UF) ou link de busca e receba preço, preço anterior (queda de preço), categoria, cidade, bairro, características (quartos, área, IPTU, marca, estado de conservação), fotos e nome do anunciante profissional em tabela pronta pra planilha. Até 5.000 anúncios por busca, com proxy residencial brasileiro incluído. Feito pra monitorar preços e pesquisar mercado de usados, imóveis e eletrônicos. Custa US$0,80 por 1.000 anúncios mais US$0,005 por execução; página bloqueada não é cobrada.
What you get
One row per listing, real output from an OLX real-estate search (photos shortened to 3 for readability):
{"id": "1548058874","url": "https://sp.olx.com.br/baixada-santista-e-litoral-sul/imoveis/vendo-casa-guaruja-1548058874","title": "Vendo casa Guaruja","price": 1190000,"oldPrice": null,"priceText": "R$ 1.190.000","category": "Casas","categoryId": "1001","city": "Guarujá","neighborhood": "Enseada","state": "SP","location": "Guarujá, Enseada","publishedAt": "2026-10-27T22:07:02.000Z","isProfessional": false,"isFeatured": false,"olxPayEnabled": false,"olxDeliveryEnabled": false,"attributes": {"category": "Casas","real_estate_type": "Venda - casa em vila","iptu": "R$ 1.750","size": "284m²","rooms": "4","bathrooms": "5 ou mais","garage_spaces": "4","re_types": "Casa de vila"},"attributesList": [{ "label": "Tipo", "value": "Venda - casa em vila" },{ "label": "IPTU", "value": "R$ 1.750" },{ "label": "Área construída", "value": "284m²" },{ "label": "Quartos", "value": "4" },{ "label": "Banheiros", "value": "5 ou mais" },{ "label": "Vagas na garagem", "value": "4" }],"imageUrls": ["https://img.olx.com.br/images/48/487642571234814.jpg","https://img.olx.com.br/images/49/494632572473519.jpg","https://img.olx.com.br/images/31/316672690856626.jpg"],"imageCount": 20,"sellerName": null,"searchUrl": "https://www.olx.com.br/imoveis/venda/estado-sp","scrapedAt": "2026-10-27T20:15:00.000Z"}
| Field | Meaning |
|---|---|
id / url | OLX listing ID and canonical link |
title | Listing title |
price / oldPrice / priceText | Current price and previous price in BRL as numbers (null when the listing has none), plus the price text as shown ("R$ 1.190.000") |
category / categoryId | OLX category name and ID |
city / neighborhood / state / location | Where the item is — state is the two-letter UF |
publishedAt | When the listing was published or last renewed (ISO 8601) |
attributes / attributesList | Category-specific details (rooms, size, IPTU, mileage, brand, model, condition, storage...) as a key-value object and as a label/value list |
imageUrls / imageCount | Up to 20 photo links and the total number of photos |
isProfessional / sellerName | true for store, dealer and agency ads. The seller name is returned only for professional advertisers — it is always null for individuals |
isFeatured / olxPayEnabled / olxDeliveryEnabled | Highlighted ad, OLX Pay and OLX delivery flags |
searchUrl | The search that produced the row |
error | Set only on failed searches — those rows are not charged |
Use cases
- Used cars and motorcycles: collect asking prices by model and state, with the vehicle details OLX shows in
attributes, to price a trade-in or a dealer's stock. - Real estate: pull houses and apartments for sale or rent with rooms, area, IPTU and neighborhood, and compare asking prices in the same area.
- Electronics and resale: track second-hand prices of phones, consoles or notebooks to spot listings below the market.
- Price drops:
oldPriceis filled when the listing shows a previous price, so you can list every reduced ad in a search. - Professional sellers: filter
isProfessionalandsellerNameto see which stores, dealers and agencies dominate a category or region.
How to use it
- Paste one or more OLX search URLs (any category, with the filters you want applied on olx.com.br), and/or type Search keywords such as "iphone 13".
- Optionally set State (UF) to restrict keyword searches to one state (e.g. SP). Without it, keywords search all of Brazil.
- Set Max listings per search (default 100, up to 5,000). The actor follows OLX pagination — 50 listings per page, up to 100 pages — until the limit or the last page.
- Run and export — the Listings dataset view gives you price, category, location and seller type in one table.
Example input:
{"queries": ["iphone 13"],"state": "SP","searchUrls": ["https://www.olx.com.br/imoveis/venda/estado-sp"],"maxItemsPerSearch": 100}
Each search URL and each keyword is a separate search. A listing that shows up in more than one search is delivered (and charged) only once per run.
| Input | Type | Default | Notes |
|---|---|---|---|
searchUrls | array of URLs | — | Search/listing pages copied from OLX, filters kept; up to 50 per run |
queries | array of strings | — | Keywords, one search each; up to 50 per run, duplicates removed |
state | string (UF) | empty = all of Brazil | Applies to keywords only, e.g. SP |
maxItemsPerSearch | integer | 100 | 1 to 5,000 per search URL or keyword |
Two more inputs you can copy:
{ "queries": ["civic 2018", "corolla 2020"], "state": "PR", "maxItemsPerSearch": 500 }
{ "searchUrls": ["https://www.olx.com.br/imoveis/venda/estado-sp"], "maxItemsPerSearch": 5000 }
Pricing
Pay per event: a small start fee opens the Brazilian residential session, then a flat fee per listing delivered: $0.005 per run + $0.80 per 1,000 listings. Blocked pages, failed searches and invalid URLs are never charged — and every run respects the maxTotalChargeUsd budget you set on Apify.
| Scenario | Approximate cost |
|---|---|
| 100 listings (1 search) | ~US$ 0.085 |
| 1,000 listings | ~US$ 0.81 |
| 5,000 listings (max per search) | ~US$ 4.01 |
Run it from code
Replace <YOUR_APIFY_TOKEN> with your token from Apify Console → Settings → API & Integrations.
cURL (waits for the run and returns the items):
curl -X POST "https://api.apify.com/v2/acts/gangary~olx-brazil-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"queries": ["iphone 13"], "state": "SP", "maxItemsPerSearch": 100}'
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("gangary~olx-brazil-scraper").call(run_input={"queries": ["iphone 13"], "state": "SP", "maxItemsPerSearch": 100})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("price"), item.get("city"), item.get("title"))
Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('gangary~olx-brazil-scraper').call({queries: ['iphone 13'],state: 'SP',maxItemsPerSearch: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, items[0]);
The synchronous endpoint waits up to 300 seconds; for big runs (thousands of listings) start the run asynchronously and read the dataset when it finishes.
Integrations
Everything below is built into Apify, no extra setup on our side:
- Schedules: rerun the same searches daily to catch new listings and price drops.
- Webhooks: get a call to your own endpoint when a run finishes.
- Make, n8n and Zapier: send each run's rows to Google Sheets, a database, Slack or your CRM.
- Google Drive: drop each run's export into a shared folder.
- Exports: JSON, CSV, Excel, XML or HTML from the dataset, or straight from the API.
Use with AI agents (MCP)
Apify runs a hosted MCP server, so Claude, Cursor, VS Code and other MCP clients can call this actor as a tool. Add this server URL to your client (it signs in with OAuth on first use, or send Authorization: Bearer <YOUR_APIFY_TOKEN>):
https://mcp.apify.com?tools=gangary/olx-brazil-scraper
Then ask in plain words, e.g. "List used Honda Civic 2018 ads in Paraná on OLX and give me the median price." Setup details for each client: Apify MCP server docs.
FAQ
Is scraping OLX legal? The actor reads publicly listed search results — no login and no paywall bypass. It does not collect phone numbers, e-mails or personal data: the seller name is returned only for professional advertisers (stores, dealers, agencies), never for individuals.
Can I filter by category, price or city? Yes — apply the filters on olx.com.br, copy the resulting URL into OLX search URLs, and the actor keeps every filter in the link while it paginates.
Why can't I get more than 5,000 listings from one search? OLX itself serves at most 100 pages of 50 listings per search. For more volume, split the search into narrower URLs (by state, category or price range) and run them together.
Why do some searches come back with an error row?
OLX runs anti-bot protection. When a session gets blocked, the actor drops it, opens a fresh Brazilian residential IP and retries the same page — up to 3 times. If it still fails, the search is abandoned with an error row and you are not charged for it.
Is proxy included? Yes — Brazilian residential proxies are included in the price. Nothing to configure.
Does a listing found by two searches cost twice? No. Each listing ID is delivered and charged once per run, even when your searches overlap.
How do I see price drops?
oldPrice holds the previous price when the listing shows one (null otherwise). Compare it with price, or schedule the same search and compare runs by id.
Why is sellerName empty?
OLX shows the advertiser name only for professional sellers (stores, dealers, agencies). For private sellers it is always null; no phone numbers or e-mails are collected for anyone.
Can I search by keyword in one state only?
Yes. Fill State (UF) with the two-letter code (e.g. SP). It applies to keywords; search URLs keep whatever location they already have.
What does a run with no results cost? Only the US$0.005 start fee. Listings are charged one by one as they are delivered, and error rows are free. You can also cap any run with Max total charge on Apify.
Honest limitations
- Only search/listing URLs from www.olx.com.br are accepted. Old regional subdomains (like sp.olx.com.br) redirect to the home page, so they are skipped with a free error row, as is anything outside OLX.
- OLX exposes at most 100 pages (about 5,000 listings) per search.
- Attributes depend on the category: a car has mileage and fuel, a house has rooms and IPTU. Fields the listing does not show come back empty.
- Prices are the ones displayed on the listing; "negotiable" or price-less ads return
price: null.
Changelog
- 2026-10-31: lower price: US$0.80 per 1,000 listings and US$0.005 per run (was US$1.50 and US$0.02).
- 2026-10-28: first public release.
From the same maker
- Mercado Livre Scraper — search results, prices and sales from Brazil's largest marketplace.
- Zap Imóveis Scraper — Brazilian real-estate listings for sale and rent.
- VivaReal Scraper — sale and rent listings with condo fee, IPTU and agency CRECI.
- QuintoAndar Scraper — rent and sale listings with total monthly cost and rental yield.
If this actor helped you, a rating on its Store page helps others find it. Something broke or a field is missing? Open an issue on the actor's Issues tab.
Keywords: olx scraper, olx brasil scraper, raspar olx, olx price scraper, preços olx, anúncios olx, used car prices brazil, real estate brazil scraper, classifieds scraper brazil, price monitoring brazil, competitor tracking, market research brazil.