OLX Brazil Classified Ads & Price Scraper avatar

OLX Brazil Classified Ads & Price Scraper

Pricing

from $6.15 / 1,000 results

Go to Apify Store
OLX Brazil Classified Ads & Price Scraper

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

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

0

Monthly active users

20 hours ago

Last modified

Share

OLX Brazil Classified Ads & Price Scraper

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

Apify Coverage Output Billing

Table of contents

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

FieldTypeRequiredDefaultDescription
startUrlstringyeshttps://www.olx.com.br/brasil?q=iphoneAn 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.
maxListingsintegerno10Maximum number of listings to collect.
withDetailsbooleannotrueWhen 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.
proxyConfigurationobjectno(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.

FieldTypeDescription
imageUrlstringPrimary listing image URL.
titlestringAd title.
pricenumberCurrent asking price in BRL, or null when not published.
oldPricenumberPrevious price when the seller reduced it, else null.
currencystringCurrency code. Always BRL.
categorystringCategory name.
categoryIdstringOLX numeric category ID.
conditionstringItem condition as listed, for example Usado - Excelente.
locationstringFull location label (city and state).
citystringCity of the listing.
neighbourhoodstringNeighbourhood of the listing, or null.
statestringTwo-letter Brazilian state code.
dddstringBrazilian DDD (area) code of the listing.
urlstringDirect link to the ad detail page.
listingIdstringOLX listing ID (unique per ad).
publishedDatestringDate the ad was published (ISO 8601).
isProfessionalbooleantrue when the seller is a professional or store.
sellerRatingnumberSeller rating when published, else null.
imageCountintegerNumber of images on the listing.
featuredbooleantrue when the ad is a featured/promoted listing.
descriptionstringFull ad description. Present when withDetails is on.
attributesobject[]Item attributes: name, label, value (brand, model, storage, color, and more). Present when withDetails is on.
sellerNamestringSeller display name. Present when withDetails is on.
sellerIdstringSeller identifier.
storeNamestringStore name when the seller is a store, else null.
imagesstring[]All listing image URLs. Present when withDetails is on.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull 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:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "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 (result event). When withDetails is on and the detail page fetch succeeds, an additional details add-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 error field and does not charge the details add-on for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on 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.

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.