OLX Brazil Classified Ads & Price Scraper
Pricing
from $6.15 / 1,000 results
OLX Brazil Classified Ads & Price Scraper
Scrape OLX Brazil classified ads across every category and region. Extract title, price, currency, category, condition, location, seller name, attributes and images. Export to JSON, CSV or Excel. No login or API key.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
0
Monthly active users
20 hours ago
Last modified
Categories
Share
OLX Brazil Classified Ads & Price Scraper
Here is one real result, with every field the actor returns:
{"imageUrl": "https://img.olx.com.br/images/87/874647904990474.jpg","title": "iPhone 13 128 GB, preto, estado de novo","price": 1750,"oldPrice": 1900,"currency": "BRL","category": "Celulares e Smartphones","categoryId": "3060","condition": "Usado - Excelente","location": "Curitiba - PR","city": "Curitiba","neighbourhood": "Agua Verde","state": "PR","ddd": "41","url": "https://pr.olx.com.br/regiao-de-curitiba-e-paranagua/celulares/iphone-13-128-gb-preto-estado-de-novo-1519898634","listingId": "1519898634","publishedDate": "2026-08-10T14:21:43.000Z","isProfessional": false,"sellerRating": null,"imageCount": 6,"featured": true,"description": "Deslumbre-se com o iPhone 13! Design elegante, desempenho incrivel e fotos espetaculares. Perfeito para quem busca tecnologia de ponta e um estilo unico. Leve o seu com voce e transforme seu dia a dia!","attributes": [{ "name": "electronics_brand", "label": "Marca", "value": "APPLE" },{ "name": "electronics_model", "label": "Modelo", "value": "IPHONE 13 PRO MAX" },{ "name": "cellphone_storage", "label": "Memoria interna", "value": "128GB" },{ "name": "electronics_color", "label": "Cor", "value": "Preto" },{ "name": "electronics_battery_health", "label": "Saude da bateria", "value": "Boa (80% ate 94%)" },{ "name": "exchange", "label": "Aceita trocas", "value": "Nao" }],"sellerName": "Luiz S.","sellerId": "6ea4cf9c-cc1c-40d2-9cdc-d7701a9b1242","storeName": null,"images": ["https://img.olx.com.br/images/87/874647904990474.jpg","https://img.olx.com.br/images/90/906657306428491.jpg"],"observedAt": "2026-08-10T14:39:18.686Z","error": null}
The most complete OLX Brazil classifieds scraper available. It returns every field an OLX listing exposes, including price, old price, condition, location down to neighbourhood and DDD area code, seller, and every item attribute, and lets you paste any OLX search or category URL to target exactly the ads you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor takes an OLX Brazil search or category URL, paginates through the results, and writes one normalized record per classified ad to the run's dataset. When detail scraping is on, it also opens each ad's detail page to add the description, full image gallery, seller name, and item attributes. Prices are returned in Brazilian reais (BRL), missing source values are returned as null, and listings are de-duplicated by listing ID.
Data covers ads on olx.com.br only. The source is bot protected, so the actor routes requests through Brazilian residential proxies and clears the challenge before parsing; all values shown here are real listing data.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 10 iPhone listings with full details.
{"maxListings": 10,"withDetails": true,"startUrl": "https://www.olx.com.br/brasil?q=iphone"}
Apply any filters you want on olx.com.br (region, category, price, condition), then paste the resulting URL into startUrl. It is the only required field.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | string | yes | https://www.olx.com.br/brasil?q=iphone | An OLX Brazil search or category URL. Apply any filters on olx.com.br and paste the resulting URL, for example https://www.olx.com.br/brasil?q=iphone or https://www.olx.com.br/autos-e-pecas/carros-vans-e-utilitarios. |
maxListings | integer | no | 10 | Maximum number of listings to collect. |
withDetails | boolean | no | true | When enabled, each listing's detail page is fetched to add description, full image gallery, sellerName, and item attributes. Charged as the details add-on event. |
proxyConfiguration | object | no | (none) | Standard Apify proxy configuration. Brazilian residential proxy is used by default. |
Output reference
One dataset item per ad. Types: string, number, integer, boolean, object[], string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
imageUrl | string | Primary listing image URL. |
title | string | Ad title. |
price | number | Current asking price in BRL, or null when not published. |
oldPrice | number | Previous price when the seller reduced it, else null. |
currency | string | Currency code. Always BRL. |
category | string | Category name. |
categoryId | string | OLX numeric category ID. |
condition | string | Item condition as listed, for example Usado - Excelente. |
location | string | Full location label (city and state). |
city | string | City of the listing. |
neighbourhood | string | Neighbourhood of the listing, or null. |
state | string | Two-letter Brazilian state code. |
ddd | string | Brazilian DDD (area) code of the listing. |
url | string | Direct link to the ad detail page. |
listingId | string | OLX listing ID (unique per ad). |
publishedDate | string | Date the ad was published (ISO 8601). |
isProfessional | boolean | true when the seller is a professional or store. |
sellerRating | number | Seller rating when published, else null. |
imageCount | integer | Number of images on the listing. |
featured | boolean | true when the ad is a featured/promoted listing. |
description | string | Full ad description. Present when withDetails is on. |
attributes | object[] | Item attributes: name, label, value (brand, model, storage, color, and more). Present when withDetails is on. |
sellerName | string | Seller display name. Present when withDetails is on. |
sellerId | string | Seller identifier. |
storeName | string | Store name when the seller is a store, else null. |
images | string[] | All listing image URLs. Present when withDetails is on. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed listing or detail fetch, an item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"startUrl":"https://www.olx.com.br/brasil?q=iphone","withDetails":true,"maxListings":10}):
{"imageUrl": "https://img.olx.com.br/images/87/874647904990474.jpg","title": "iPhone 13 128 GB, preto, estado de novo","price": 1750,"oldPrice": 1900,"currency": "BRL","category": "Celulares e Smartphones","categoryId": "3060","condition": "Usado - Excelente","location": "Curitiba - PR","city": "Curitiba","neighbourhood": "Agua Verde","state": "PR","ddd": "41","url": "https://pr.olx.com.br/regiao-de-curitiba-e-paranagua/celulares/iphone-13-128-gb-preto-estado-de-novo-1519898634","listingId": "1519898634","publishedDate": "2026-08-10T14:21:43.000Z","isProfessional": false,"sellerRating": null,"imageCount": 6,"featured": true,"sellerName": "Luiz S.","sellerId": "6ea4cf9c-cc1c-40d2-9cdc-d7701a9b1242","storeName": null,"observedAt": "2026-08-10T14:39:18.686Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~olx-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.olx.com.br/brasil?q=iphone","withDetails":true,"maxListings":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~olx-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrl":"https://www.olx.com.br/autos-e-pecas/carros-vans-e-utilitarios","maxListings":100}'
Apify CLI:
apify call scrapers_lat/olx-scraper \--input '{"startUrl":"https://www.olx.com.br/brasil?q=notebook"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per listing returned (
resultevent). WhenwithDetailsis on and the detail page fetch succeeds, an additionaldetailsadd-on event is charged. See the pricing tab for current prices. - No charge on failure. If a listing page or detail fetch errors, the actor writes an item with a populated
errorfield and does not charge thedetailsadd-on for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxListings.
FAQ and troubleshooting
A run returned 0 records. Why? The search URL matched no ads, or OLX served an empty page for the applied filters. Confirm the URL loads results in a browser. Zero-result runs are not charged.
How do I control what gets scraped?
Apply filters on olx.com.br (region, category, price range, condition) and paste the resulting URL into startUrl. The actor follows exactly that search.
How do I get descriptions, seller names, and attributes?
Turn on withDetails. Each record then carries the full description, attributes array, sellerName, and complete image gallery.
Which currency are prices in?
Brazilian reais. Every price field is in BRL and each record carries currency: "BRL".
Why are some fields null?
Fields like oldPrice, neighbourhood, sellerRating, or storeName are only filled when the ad publishes them. Missing source values are returned as null, never invented.
Is this an official OLX tool? No. This actor is independent and has no affiliation with OLX or Grupo OLX. It reads only data that is publicly available on the platform. Use it in accordance with OLX's terms of service.
Related scrapers
- MercadoLibre Product Listings Scraper: Products, prices and seller data from MercadoLibre across LATAM.
- Kavak Used Cars Scraper: Used-car listings with price, mileage and specs.
- Craigslist Listings Scraper: US classified listings by city and category.
- Carroya Colombia Vehicle Scraper: Colombian vehicle classifieds with price and specs.
- Chileautos Scraper: Chilean vehicle listings with price and specs.
- Gumtree UK Classifieds Scraper: UK classified ads with price and location.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with OLX or Grupo OLX. Accesses only publicly available data. Use in accordance with OLX's terms of service.
