OLX Brazil Scraper | $0.8/1K — Listings, Prices, Sellers avatar

OLX Brazil Scraper | $0.8/1K — Listings, Prices, Sellers

Pricing

from $0.80 / 1,000 listing scrapeds

Go to Apify Store
OLX Brazil Scraper | $0.8/1K — Listings, Prices, Sellers

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

Gangary

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

olx-brazil-scraper

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"
}
FieldMeaning
id / urlOLX listing ID and canonical link
titleListing title
price / oldPrice / priceTextCurrent 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 / categoryIdOLX category name and ID
city / neighborhood / state / locationWhere the item is — state is the two-letter UF
publishedAtWhen the listing was published or last renewed (ISO 8601)
attributes / attributesListCategory-specific details (rooms, size, IPTU, mileage, brand, model, condition, storage...) as a key-value object and as a label/value list
imageUrls / imageCountUp to 20 photo links and the total number of photos
isProfessional / sellerNametrue for store, dealer and agency ads. The seller name is returned only for professional advertisers — it is always null for individuals
isFeatured / olxPayEnabled / olxDeliveryEnabledHighlighted ad, OLX Pay and OLX delivery flags
searchUrlThe search that produced the row
errorSet 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: oldPrice is filled when the listing shows a previous price, so you can list every reduced ad in a search.
  • Professional sellers: filter isProfessional and sellerName to see which stores, dealers and agencies dominate a category or region.

How to use it

  1. 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".
  2. Optionally set State (UF) to restrict keyword searches to one state (e.g. SP). Without it, keywords search all of Brazil.
  3. 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.
  4. 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.

InputTypeDefaultNotes
searchUrlsarray of URLs—Search/listing pages copied from OLX, filters kept; up to 50 per run
queriesarray of strings—Keywords, one search each; up to 50 per run, duplicates removed
statestring (UF)empty = all of BrazilApplies to keywords only, e.g. SP
maxItemsPerSearchinteger1001 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.

ScenarioApproximate 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 ApifyClient
client = 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


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.