# OLX Carros Scraper | Brazil Used Cars, Km & Prices (`piotrv1001/olx-brazil-cars-scraper`) Actor

The OLX Brazil Cars Scraper extracts OLX Autos cars and motorcycles: price, make, model, year, mileage, fuel, gearbox, colour, city and seller type, with optional description, CEP, seller and market price range. Filter by make, model, year, price and state. No login or API key.

- **URL**: https://apify.com/piotrv1001/olx-brazil-cars-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Security:** Limited permissions
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 vehicles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🚀 OLX Carros Scraper: Brazil Used Cars, Km and Prices

Export **OLX Autos listings (olx carros and olx motos)** as clean JSON, CSV or Excel. The **OLX Brazil Cars Scraper** returns price, make, model, year, mileage, fuel, gearbox, colour and city for used cars, vans, pickups and motorcycles across Brazil, and can add the price range OLX reports for the same make, model and year. It's built for dealers, price comparison and used-car market research.

### 🎯 Use Cases

- **Used car prices (preço de carros usados)**: see what a make, model and year really sells for in each state.
- **Dealer sourcing**: find private sellers below the market range, filtered by year, mileage and price.
- **Competitor monitoring for dealerships**: track stock and prices of professional sellers.
- **Market research on olx autos**: measure supply by make, fuel, gearbox and region.
- **Motorcycle prices (olx motos)**: the same data for bikes, including engine size.

### ✨ Features

- **Typed vehicle columns**: `brand`, `model`, `year`, `mileageKm`, `fuel`, `gearbox`, `bodyType`, `color`, `doors`, `engine`, `steering`.
- **Market price range**: with details on, `marketPrice` gives min, median, quartiles and sample size for that make, model and year, when OLX has one.
- **Make and model by name**: type `Volkswagen` and `Gol`. Names are checked against OLX's own list, and a wrong name stops the run with the valid options instead of returning the wrong cars.
- **Real filters**: year range, maximum mileage, price, gearbox, fuel, state and seller type.
- **Cars and motorcycles**: one Actor for both.
- **Past the 5,000-result limit**: large searches are split by state and price band automatically.
- **Optional details**: description, CEP, first-listed date, seller and official store.

### 🛠️ How It Works

1. **Choose what to search**: fill in the fields or paste a search link from OLX.
2. **Set Max results**: the default is 50.
3. **Run the scraper** and download the results as JSON, CSV or Excel, or pull them through the API.

### ⚙️ Input

| Field | What it does |
| --- | --- |
| **Vehicle type** | Cars, vans and pickups, or motorcycles. |
| **Make** | For example Fiat, Volkswagen or Honda. |
| **Model** | For example Uno or Civic. Needs a make. |
| **State** | One state, or all of Brazil. Default São Paulo. |
| **Year from / to** | Model year range. |
| **Max mileage** | Highest mileage in km. |
| **Gearbox, Fuel** | Cars only. |
| **Min / Max price** | Price range in R$. |
| **Sort by** | Most relevant, newest, lowest price or highest price. |
| **Seller type** | Any, private or professional. |
| **Search links** | Links from www.olx.com.br. When used, the fields above are ignored. |
| **Max results** | Total vehicles to save. Default 50. |
| **Scrape ad details** | Also open each ad for description, CEP, seller and market price range. Off by default. |

```json
{
    "make": "Volkswagen",
    "model": "Gol",
    "state": "mg",
    "yearFrom": 2015,
    "yearTo": 2022,
    "maxMileageKm": 120000,
    "gearbox": "manual",
    "maxItems": 200,
    "scrapeDetails": true
}
```

### 💰 Pricing

You pay per result, and only for what is saved.

| Event | Price |
| --- | --- |
| Actor start (per run, per GB of memory) | $0.00005 |
| Each vehicle saved | $0.002 |
| Ad details, per vehicle (only when turned on and loaded) | $0.002 |

Examples, leaving out the start fee of a fraction of a cent:

- 1,000 vehicles: $2.00
- 1,000 vehicles with details: $4.00
- 10,000 vehicles: $20.00

Set a maximum charge per run and the scraper stops there. Duplicates aren't charged, and if an ad's details can't be loaded, the vehicle is saved without them and you don't pay for details.

### 📦 Sample Output Data

```json
{
    "id": "1529832948",
    "title": "Fiat Argo Drive 1.0 Firefly 2026",
    "price": 78990,
    "priceText": "R$ 78.990",
    "oldPrice": 81190,
    "currency": "BRL",
    "url": "https://sp.olx.com.br/sao-paulo-e-regiao/autos-e-pecas/carros-vans-e-utilitarios/fiat-argo-drive-1-0-firefly-2026-1529832948",
    "category": "Carros, vans e utilitários",
    "categoryId": "2020",
    "state": "SP",
    "city": "Guarulhos",
    "neighbourhood": "Macedo",
    "areaCode": "11",
    "postedAt": "2026-11-01T07:24:41.000Z",
    "isProfessional": true,
    "isFeatured": true,
    "isPinned": false,
    "priceReduced": true,
    "onlinePayment": false,
    "delivery": false,
    "sellerRating": 4.1,
    "imageCount": 18,
    "videoCount": 0,
    "images": [
        "https://img.olx.com.br/images/68/681648319471830.jpg",
        "https://img.olx.com.br/images/68/686686072704423.jpg"
    ],
    "attributes": {
        "category": "Carros, vans e utilitários",
        "vehicle_model": "Argo Drive 1.0 Firefly",
        "vehicle_brand": "Fiat",
        "cartype": "Hatch",
        "regdate": "2026",
        "mileage": "42314",
        "motorpower": "1.0",
        "fuel": "Flex",
        "gearbox": "Manual",
        "car_steering": "Elétrica",
        "carcolor": "Branco",
        "doors": "4 portas",
        "end_tag": "5",
        "owner": "Não",
        "exchange": "Sim",
        "financial": "IPVA Pago",
        "car_features": "Ar condicionado, Alarme, Computador de bordo",
        "gnv_kit": "Não",
        "owner_manual": "Não",
        "extra_key": "Sim",
        "dealership_review": "Não",
        "warranty": "Não",
        "has_gnv_kit": "Não",
        "has_auction": "Não",
        "has_paid_ipva": "Sim",
        "has_with_fine": "Não",
        "has_hydraulic_steering": "Não",
        "is_settled": "Sim",
        "is_funded": "Não",
        "indexed_financial_status": "Quitado",
        "documentation_and_regularization": "IPVA Pago",
        "conservation_and_warranty": "Chave reserva",
        "indexed_car_steering": "Elétrica",
        "on_autos_fair": "Não",
        "condition_report_date": "2026-10-29T11:41:10.812Z",
        "condition_report_detail": "A vistoriadora integrada retornou que não existe laudo para esse veículo.",
        "condition_report_inspector": "Super Visão",
        "condition_report_status": "UNAVAILABLE",
        "condition_report_visible": "true",
        "store_id": "Localiza"
    },
    "searchInput": "fiat argo SP",
    "brand": "Fiat",
    "model": "Argo Drive 1.0 Firefly",
    "year": 2026,
    "mileageKm": 42314,
    "fuel": "Flex",
    "gearbox": "Manual",
    "bodyType": "Hatch",
    "color": "Branco",
    "doors": "4 portas",
    "engine": "1.0",
    "engineCc": null,
    "steering": "Elétrica",
    "plateEnding": "5",
    "features": [
        "Ar condicionado",
        "Alarme",
        "Computador de bordo"
    ],
    "tags": [
        "Aceita troca",
        "IPVA pago"
    ],
    "acceptsTrade": true,
    "hasInspectionReport": false,
    "detailsScraped": true,
    "description": "FIAT ARGO 1.0 FIREFLY FLEX DRIVE MANUAL - 2025 / 2026 VCGRU - Guarulhos. - [Cod. 5414995].…",
    "firstListedAt": "2026-10-29T07:24:32.000Z",
    "zipcode": "07111000",
    "region": "São Paulo e região, SP",
    "latitude": null,
    "longitude": null,
    "sellerName": "Localiza Seminovos Guarulhos (VCGRU)",
    "sellerId": "06b479d3-b91b-40de-b865-7b646a4ea350",
    "officialStore": "Localiza Seminovos",
    "officialStoreUrl": "https://www.olx.com.br/loja-oficial/localiza-seminovos",
    "whatsappAvailable": true,
    "phoneAvailable": true,
    "marketPrice": {
        "min": 67290,
        "p25": 75190,
        "median": 78590,
        "p75": 80290,
        "max": 87990,
        "sampleSize": 2257,
        "month": 202609
    },
    "scrapedAt": "2026-11-01T07:53:19.916Z"
}
```

`marketPrice` is OLX's own reference for that make, model and year: `median` is the middle price, `sampleSize` how many vehicles it covers and `month` the reference month. It's empty when OLX has too few to compare. `tags` holds the labels on the ad, such as IPVA paid or accepts trade.

### 📅 Schedule and Integrate

For price tracking, a daily run per make and model in your state works well. To catch fresh ads first, sort by newest and run hourly. Set it up with Apify **Schedules**, then send results to Google Sheets, Zapier, Make, n8n or your own webhook.

### 🤖 Use with AI Agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (`https://mcp.apify.com`). An agent can call it with:

```json
{
    "make": "Honda",
    "model": "Civic",
    "state": "sp",
    "yearFrom": 2018,
    "maxItems": 20
}
```

### ❓ FAQ

**Does OLX Brazil have an official API?**
OLX Brazil's integration tools are aimed at professional advertisers publishing their own ads, not at reading search results. This Actor is the practical alternative: no API key, no approval, and the results come back as structured data.

**Do I need an OLX account?**
No. It reads public ads, so no login or account is needed.

**Why is a field empty?**
Advertisers fill in different things, and each category has its own attributes. Details fields are only filled when Scrape ad details is on. Phone numbers aren't included, because OLX doesn't show them publicly; `phoneAvailable` and `whatsappAvailable` tell you if the advertiser accepts those contacts.

**How do I know if a car is below market price?**
Turn on Scrape ad details and compare `price` with `marketPrice.median` and `marketPrice.p25`. A price under `p25` is in the cheapest quarter for that make, model and year.

**What happens if I misspell a make or model?**
The run stops with a message listing valid names, so you never pay for the wrong cars.

**Is this the FIPE table?**
No. `marketPrice` is OLX's own reference from its listings, not the FIPE table.

**How many results can I get?**
OLX shows at most 5,000 results per search. When you ask for more, the scraper splits by state and price band. Ads with no price can be missed once a search is split by price.

### 🔗 Related Scrapers

- [OLX Brazil Listings Scraper](https://apify.com/piotrv1001/olx-brazil-listings-scraper): every other OLX category by keyword.
- [OLX Brazil Real Estate Scraper](https://apify.com/piotrv1001/olx-brazil-real-estate-scraper): apartments and houses with m², bedrooms, condo fee and IPTU.
- [Mercado Libre Listings Scraper](https://apify.com/piotrv1001/mercado-libre-listings-scraper): Latin American marketplace listings for comparison.

# Actor input Schema

## `vehicleType` (type: `string`):

Cars, vans and pickups, or motorcycles.

## `make` (type: `string`):

For example Fiat, Volkswagen or Honda, as listed on OLX.

## `model` (type: `string`):

For example Uno or Civic. Needs a make.

## `state` (type: `string`):

State to search. For one city, paste a search link below.

## `yearFrom` (type: `integer`):

Oldest model year.

## `yearTo` (type: `integer`):

Newest model year.

## `maxMileageKm` (type: `integer`):

Only vehicles with at most this mileage.

## `gearbox` (type: `string`):

Cars only.

## `fuel` (type: `string`):

Cars only.

## `sortBy` (type: `string`):

Order of the results.

## `minPrice` (type: `integer`):

Only ads priced at this amount or more.

## `maxPrice` (type: `integer`):

Only ads priced at this amount or less.

## `sellerType` (type: `string`):

Private sellers, professional sellers, or both.

## `startUrls` (type: `array`):

Search or category links copied from www.olx.com.br with any filters, for example https://www.olx.com.br/autos-e-pecas/carros-vans-e-utilitarios/fiat/uno/estado-sp. When you paste links, the fields above are ignored.

## `maxItems` (type: `integer`):

Stop after this many vehicles in total. Your maximum charge per run also caps the run. Above 5,000, searches are split by state and price band automatically; ads with no price can then be missed.

## `scrapeDetails` (type: `boolean`):

Also open each ad for the full description, first-listed date, CEP, coordinates and seller name. Charged per ad on top of the vehicle price.

## `proxyConfiguration` (type: `object`):

Residential proxies in Brazil work best.

## Actor input object example

```json
{
  "vehicleType": "car",
  "state": "sp",
  "sortBy": "relevance",
  "sellerType": "any",
  "maxItems": 50,
  "scrapeDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BR"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "BR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/olx-brazil-cars-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "BR",
    } }

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/olx-brazil-cars-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "BR"
  }
}' |
apify call piotrv1001/olx-brazil-cars-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,piotrv1001/olx-brazil-cars-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Qq61HgbBrDkcMkUQJ/builds/hRODQyiaytEhlsj7b/openapi.json
