# Economicos Scraper — Chile Real Estate & Vehicles (`fabrikit/economicos-cl-scraper`) Actor

Scrape Economicos.cl, El Mercurio's classifieds: Chilean property listings (sale/rent) and used vehicles with price in CLP/UF, normalized CLP, m², rooms, comuna, broker and photos. From US$2 per 1,000 listings.

- **URL**: https://apify.com/fabrikit/economicos-cl-scraper.md
- **Developed by:** [Fabrikit](https://apify.com/fabrikit) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 property results

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

## Economicos Scraper — Chile Real Estate & Vehicle Listings

Scrape **Economicos.cl**, the online classifieds of Chile's El Mercurio newspaper group, into clean JSON, CSV or Excel. One Actor covers both of the site's big marketplaces:

- **Real estate (Propiedades)** — about **138,000 ads** for sale and rent: apartments, houses, land, rural plots, offices, retail, warehouses, parking and more, from brokers and private owners all over Chile.
- **Vehicles (Vehículos)** — about **21,000 ads**: cars, pickups, SUVs, motorcycles, trucks, vans and heavy machinery from dealers and private sellers.

Each listing comes with its price **as published (CLP, UF or USD)** plus a **normalized CLP value** taken from the site's own conversion, so you can sort and compare UF and peso listings in one column. Filter by region, comuna, property type, operation, price, bedrooms, vehicle make and year, or paste any Economicos.cl search URL.

No browser, no login: plain HTTP requests, fast and cheap.

### What you get

- **Core property fields**: operation (sale / rent), property type, price + currency, normalized CLP price, bedrooms, bathrooms, comuna, region, publication date, photo — straight from the results pages.
- **Detail add-on** (`fetchDetails`): built and total m², street or sector, full photo gallery, full description, exact publication time and the broker's business name.
- **Broker data for lead generation**: ads from El Mercurio's broker network carry the brokerage name and, for companies, its **RUT** (Chilean tax ID) — useful for B2B prospecting. Some broker ads also include GPS coordinates.
- **Vehicle fields**: make, model, year, mileage (km), fuel, transmission, condition (new/used), dealer name, comuna and region.
- **Monitoring-ready**: results always come **newest first**, IDs are stable, and a `publishedWithin` filter limits runs to the last week or month.

### Example output

A property (with `fetchDetails` on):

```json
{
    "id": "AAVGUXI",
    "url": "https://www.economicos.cl/propiedades/departamento-2d-1-b-en-venta-vina-del-mar-codAAVGUXI.html",
    "category": "property",
    "title": "DEPARTAMENTO 2D / 1 B EN VENTA - VIÑA DEL MAR",
    "operation": "sale",
    "propertyType": "apartment",
    "price": 55000000,
    "currency": "CLP",
    "priceNormalized": 55000000,
    "priceNormalizedCurrency": "CLP",
    "builtAreaM2": 42,
    "totalAreaM2": 42,
    "bedrooms": 2,
    "bathrooms": 1,
    "comuna": "Viña del Mar",
    "region": "Valparaíso",
    "address": "TRICAHUE BL 3",
    "publisherType": "private",
    "publisherName": null,
    "photos": ["https://imgcf.ecn.cl/600/43/433188c359069e575770e855a743f77305b0fc87.bin.jpg"],
    "publishedAt": "2026-10-12T12:59:57",
    "description": "SE VENDE DEPARTAMENTO BASICO EN VIÑA DEL MAR, SECTOR NUEVA GRANADILLA ...",
    "detailsFetched": true
}
```

A broker listing straight from the results page (no add-on needed):

```json
{
    "id": "R77091365-9L0-1542553",
    "category": "property",
    "title": "Departamento en Venta en Las Condes 6 dormitorios 6 baños",
    "operation": "sale",
    "propertyType": "apartment",
    "price": 60500,
    "currency": "UF",
    "priceNormalized": 2489393500,
    "priceNormalizedCurrency": "CLP",
    "bedrooms": 6,
    "bathrooms": 6,
    "comuna": "Las Condes",
    "region": "Metropolitana de Santiago",
    "latitude": -33.378805779559436,
    "longitude": -70.52344498745595,
    "publisherType": "agency",
    "publisherName": "CELINA CONSULTORES",
    "publisherRut": "77091365-9",
    "publishedAt": "2026-10-12T12:09:54"
}
```

A vehicle (with `fetchDetails` on):

```json
{
    "id": "77026045",
    "category": "vehicle",
    "title": "Nissan X Trail 2.5 ADVANCE MC 4X2 CVT AT - 2023",
    "vehicleType": "car",
    "make": "Nissan",
    "model": "X Trail",
    "year": 2023,
    "mileageKm": 21315,
    "fuel": "gasoline",
    "transmission": "automatic",
    "condition": "used",
    "price": 21890000,
    "currency": "CLP",
    "comuna": "Huechuraba",
    "region": "Metropolitana de Santiago",
    "publisherType": "dealer",
    "publisherName": "SALFA HUECHURABA"
}
```

Every item always has all fields listed in the table below; fields the source does not provide are `null`.

### How to use

1. Choose a **category**: real estate or vehicles.
2. For real estate pick the **operation** (sale / rent) and **property type**; for vehicles pick the **vehicle type** and optionally a **make** and **year range**.
3. Pick a **region** and optionally a **comuna** (`Las Condes`, `Ñuñoa`, `Viña del Mar`, `Concepción` ...).
4. Optionally set a **price range in CLP**, **bedrooms**, a **keyword** and **publishedWithin**.
5. Set **maxItems**, decide whether you need the **detail add-on**, and press **Start**.

#### Input examples

Apartments for rent in Ñuñoa between CLP 400,000 and 700,000, 2+ bedrooms:

```json
{
    "category": "properties",
    "operation": "rent",
    "propertyType": "apartment",
    "region": "rm",
    "comuna": "Ñuñoa",
    "priceMin": 400000,
    "priceMax": 700000,
    "bedroomsMin": 2,
    "maxItems": 200
}
```

Every house for sale in Concepción with full details (the region is found automatically):

```json
{
    "operation": "sale",
    "propertyType": "house",
    "region": "all",
    "comuna": "Concepción",
    "fetchDetails": true,
    "maxItems": 1000
}
```

Toyota pickups from 2015 onwards, anywhere in Chile:

```json
{
    "category": "vehicles",
    "vehicleType": "pickup",
    "region": "all",
    "make": "Toyota",
    "yearMin": 2015,
    "fetchDetails": true,
    "maxItems": 300
}
```

Paste search or listing URLs from your browser instead of using the filters:

```json
{
    "startUrls": [
        { "url": "https://www.economicos.cl/rm/casa?operacion=Arriendo" },
        { "url": "https://www.economicos.cl/propiedades/departamento-2d-1-b-en-venta-vina-del-mar-codAAVGUXI.html" }
    ],
    "maxItems": 500
}
```

#### Input fields

| Field | Description |
|---|---|
| `category` | `properties` (real estate) or `vehicles` |
| `operation` | Real estate: `sale`, `rent` or `any` (`any` also returns "wanted" ads) |
| `propertyType` | `any`, `apartment`, `furnished_apartment`, `house`, `furnished_house`, `office`, `retail`, `land`, `plot`, `warehouse`, `parking`, `industrial`, `business`, `room`, `hotel` |
| `vehicleType` | `any`, `car`, `pickup`, `suv`, `motorcycle`, `van`, `truck`, `bus`, `taxi`, `heavy_machinery`, `trailer_rv`, `other` |
| `region` | `all` or one of 15 regions (`rm`, `valparaiso`, `biobio` ...). The site groups Ñuble under Biobío |
| `comuna` | Optional comuna; matched against the site's own list, the run fails with the valid names if it can't be matched |
| `keyword` | Free text, e.g. `piscina`, `vista al mar`, `hilux` |
| `priceMin` / `priceMax` | Price range in CLP. UF and USD listings are matched on the site's CLP conversion |
| `bedroomsMin` / `bedroomsMax` | Bedroom range (the site supports 1–3 and "4 or more") |
| `make`, `yearMin`, `yearMax` | Vehicle filters |
| `publishedWithin` | `any`, `7d`, `1m`, `3m`, `6m`, `1y` |
| `startUrls` | Economicos.cl search or listing URLs; when set, the filters are ignored |
| `maxItems` | Maximum listings to return (default 50) |
| `fetchDetails` | Detail add-on, see below (default off) |
| `proxyConfiguration` | Leave as is — the Actor picks the right proxy by itself |

### Output fields

| Field | Type | Description |
|---|---|---|
| `id` | string | Economicos.cl ad code, stable across runs |
| `url` | string | Link to the ad |
| `category` | string | `property` or `vehicle` |
| `title` | string | Ad title (phone numbers and e-mails removed) |
| `operation` | string | null | `sale`, `rent`, `wanted_rent`, `wanted_buy` |
| `propertyType` | string | null | `apartment`, `house`, `land`, `plot`, `office`, `retail`, `warehouse`, `parking`, `industrial`, `business`, `room`, `hotel`, `other` |
| `vehicleType` | string | null | `car`, `pickup`, `suv`, `motorcycle`, `van`, `truck`, `bus`, `taxi`, `heavy_machinery`, `trailer_rv`, `other` |
| `price` / `currency` | number / string | Price as published, in `CLP`, `UF` or `USD` |
| `priceNormalized` / `priceNormalizedCurrency` | number / string | The same price in CLP, using the site's own conversion |
| `builtAreaM2` / `totalAreaM2` | number | null | Built and total (land) surface in m² (detail add-on) |
| `bedrooms` / `bathrooms` / `parking` | number | null | Rooms and parking spaces |
| `make` / `model` / `year` | string / string / number | Vehicle make, model and model year |
| `mileageKm` | number | null | Mileage in km, when the seller states it |
| `fuel` / `transmission` / `condition` | string | null | `gasoline`, `diesel`, `hybrid`, `electric` · `automatic`, `manual` · `new`, `used` |
| `comuna` / `region` | string | null | Location |
| `address` | string | null | Street or sector of the property, as published (detail add-on; never for vehicles) |
| `latitude` / `longitude` | number | null | Coordinates when the ad has a map pin |
| `publisherType` | string | null | `agency`, `dealer` or `private` |
| `publisherName` | string | null | Brokerage or dealer name. Always `null` for private sellers |
| `publisherRut` | string | null | Company RUT of the brokerage (legal entities only) |
| `photos` | string\[] | Photo URLs (one from the results page, the full gallery with the add-on) |
| `publishedAt` | string | null | Publication date/time (Chile local time) |
| `description` | string | null | Full ad text, phones and e-mails removed (detail add-on) |
| `attributes` | object | null | Any other spec the ad lists |
| `detailsFetched` | boolean | Whether the detail page was read |
| `scrapedAt` | string | ISO timestamp of the run |

A run summary (searches, pages, totals reported by the site, detail errors) is saved in the run's key-value store under `SUMMARY`.

### Pricing

Pay per event — you only pay for what lands in your dataset. Platform usage (compute and proxies) is included.

| Event | When it is charged | Price |
|---|---|---|
| `property-result` | each real estate listing saved to the dataset | **US$2.00 per 1,000** |
| `vehicle-result` | each vehicle listing saved to the dataset | **US$2.00 per 1,000** |
| `listing-details` | each listing whose detail page was opened (`fetchDetails` on) | **US$1.00 per 1,000** |
| Actor start | once per run | US$0.00005 |

So 1,000 listings cost **US$2.00**, or **US$3.00** with full details. If you set a maximum charge for a run, the Actor stops cleanly when it is reached and never hands out more items than your limit covers.

### Use cases

- **Price analytics by comuna**: median CLP price per m² for apartments in each comuna, rent vs. sale, UF vs. CLP listings in one column.
- **Lead generation for brokers and services**: list the brokerages active in a comuna (name + company RUT), or spot owner-published ads (`publisherType: "private"`) — without any personal contact data.
- **Daily monitoring**: schedule a run with `publishedWithin: "7d"` and diff on `id` to catch new listings and price changes.
- **Used-car market data**: prices by make, model, year and mileage across Chilean regions, dealer vs. private.
- **Feeds for portals, CRMs and dashboards** through the Apify API, webhooks, Google Sheets, Make or Zapier.

### FAQ

**Is there an official Economicos.cl API?**
No public one. This Actor reads the public result and listing pages over HTTP and turns them into a fixed schema.

**What does "normalized price" mean?**
Chilean properties are listed in UF (an inflation-indexed unit), CLP or USD. Economicos.cl computes a CLP value for each ad; the Actor stores it in `priceNormalized`, so you can sort or average everything in pesos. `price` and `currency` keep the original.

**Why are some fields empty without the detail add-on?**
The results page shows title, price, location, date and one photo. Surface, the full gallery, description, address and vehicle specs live on each ad's own page — that's the `fetchDetails` add-on. Broker ads already expose bedrooms, bathrooms and the broker name on the results page.

**Can I change the order?**
Economicos.cl always lists newest first, so every run starts with the latest ads. Use `publishedWithin` to limit the time window.

**How many results can I get?**
There is no hard cap: the site paginates through all ~138,000 property ads and ~21,000 vehicle ads (40 per page). Use `maxItems` to control the size of a run.

**Do you collect personal data?**
No. Names of private sellers, phone numbers and e-mails are never stored, and phone numbers and e-mails pasted into titles or descriptions are replaced with `[phone removed]` / `[email removed]`. Only business publishers (brokerages and car dealers) are named, and a RUT is only kept when it belongs to a company.

**Do I need a proxy?**
No. The Actor detects when the site refuses a request and routes through Chilean residential proxies automatically, at no extra cost to you.

### En español

**Economicos Scraper** extrae avisos de **Economicos.cl** (clasificados de El Mercurio): **propiedades** en venta y arriendo (departamentos, casas, terrenos, parcelas, oficinas, locales, bodegas, estacionamientos) y **vehículos** (autos, camionetas, motos, camiones). Cada aviso trae precio en CLP, UF o USD tal como se publicó y además el **precio normalizado en pesos**, dormitorios, baños, comuna, región, fecha de publicación y foto; con el complemento de detalle suma m² construidos y de terreno, dirección o sector, galería completa, descripción y el nombre de la corredora o automotora. Filtra por región, comuna, tipo de propiedad, operación, rango de precio, dormitorios, marca y año.

Precio: **US$2 por 1.000 avisos** (propiedades o vehículos) + **US$1 por 1.000** fichas de detalle. No se guardan nombres, teléfonos ni correos de particulares (Ley 21.719): solo se identifican empresas.

### Technical details

- Source: the server-rendered HTML of economicos.cl — 40 ads per results page, newest first, deep pagination supported.
- Comuna names are resolved against the region's own list on the site; a comuna the site doesn't know fails the run with the list of valid names (the site would otherwise silently ignore it and return the whole region).
- Detail pages are fetched 8 at a time; a failed detail page never drops the listing (the results-page data is kept and the error is noted in `SUMMARY`).
- Transient errors are retried with exponential backoff; if the site blocks, the Actor switches to Chilean residential proxies, and if that fails too, the run fails with a clear message instead of returning an empty dataset.

# Actor input Schema

## `category` (type: `string`):

`properties` = real estate (Propiedades, ~138,000 ads). `vehicles` = cars, pickups, motorcycles, trucks and more (Vehículos, ~21,000 ads). Each category is billed with its own result event.

## `operation` (type: `string`):

`sale` = Venta, `rent` = Arriendo. `any` also returns "wanted" ads (Busco arriendo / Compro). Ignored for vehicles.

## `propertyType` (type: `string`):

Economicos.cl property category. Ignored for vehicles.

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

Economicos.cl vehicle category. Only used when Category = vehicles.

## `region` (type: `string`):

Chilean region. The site groups Ñuble under Biobío.

## `comuna` (type: `string`):

Optional comuna inside the region, e.g. `Las Condes`, `Ñuñoa`, `Viña del Mar`, `Concepción`. Matched against the site's own comuna list for the region (accents optional); the run fails with the list of valid names if it can't be matched. With region `All of Chile` the Actor finds the region for you.

## `keyword` (type: `string`):

Free-text search over titles and descriptions, e.g. `piscina`, `vista al mar`, `hilux`.

## `priceMin` (type: `integer`):

Minimum price in Chilean pesos. Listings published in UF or USD are matched on the site's own CLP conversion. 0 = no minimum.

## `priceMax` (type: `integer`):

Maximum price in Chilean pesos (e.g. `150000000` for 150 million). 0 = no maximum.

## `bedroomsMin` (type: `integer`):

Minimum bedrooms (1–3; the site's filter tops out at 3). 0 = any. Real estate only.

## `bedroomsMax` (type: `integer`):

Maximum bedrooms (1–3, or 4 = four or more). 0 = any. Real estate only.

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

Vehicles only: make as listed on the site, e.g. `Toyota`, `Chevrolet`, `Hyundai`, `Nissan`, `Suzuki`.

## `yearMin` (type: `integer`):

Vehicles only: minimum model year. 0 = any.

## `yearMax` (type: `integer`):

Vehicles only: maximum model year. 0 = any.

## `publishedWithin` (type: `string`):

Only ads published in this time window. Results are always ordered newest first (the site's only order).

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

Economicos.cl search URLs copied from your browser (e.g. `https://www.economicos.cl/rm/casa?operacion=Arriendo`) and/or single listing URLs (`.../propiedades/...-codXXXX.html`). When set, the filters above are ignored. Only real-estate and vehicle ads are returned.

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

Stop after this many listings. The site serves 40 ads per page, newest first.

## `fetchDetails` (type: `boolean`):

Open each listing's own page (1 extra request per ad) to add: built and total m², exact bedrooms/bathrooms, street/sector, full photo gallery, full description (phones and e-mails removed), exact publication time, broker/dealer name, and for vehicles make, model, fuel, transmission, condition and mileage. Charged as a `listing-details` event (US$1 per 1,000).

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

Economicos.cl answers plain requests from Apify's servers, so no proxy is needed. If the site ever returns 403, the Actor switches to Apify RESIDENTIAL proxies in Chile automatically.

## Actor input object example

```json
{
  "category": "properties",
  "operation": "sale",
  "propertyType": "apartment",
  "vehicleType": "any",
  "region": "rm",
  "comuna": "",
  "keyword": "",
  "priceMin": 0,
  "priceMax": 0,
  "bedroomsMin": 0,
  "bedroomsMax": 0,
  "make": "",
  "yearMin": 0,
  "yearMax": 0,
  "publishedWithin": "any",
  "maxItems": 50,
  "fetchDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

All listings collected during the run

# 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 = {
    "comuna": "",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("fabrikit/economicos-cl-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 = {
    "comuna": "",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("fabrikit/economicos-cl-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 '{
  "comuna": "",
  "maxItems": 50
}' |
apify call fabrikit/economicos-cl-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fabrikit/economicos-cl-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/aI7N7ymmUC0u4Zhiw/builds/Bzc0lARJxmOxiFl5O/openapi.json
