# Falabella Scraper — Chile, Peru, Colombia (`polyglot-data/falabella-scraper`) Actor

Scrape Falabella.cl, .com.pe and .com.co: prices, CMR card prices, discounts, ratings, reviews, sellers, delivery options and stock. Residential proxy built in, pay per result.

- **URL**: https://apify.com/polyglot-data/falabella-scraper.md
- **Developed by:** [Polyglot Data](https://apify.com/polyglot-data) (community)
- **Categories:** E-commerce
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 product scrapeds

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

## Falabella Scraper — Chile, Peru, Colombia

Extract product data from **Falabella**, one of the largest department-store marketplaces in Latin America:
**falabella.com** 🇨🇱 (Chile), **falabella.com.pe** 🇵🇪 (Peru) and **falabella.com.co** 🇨🇴 (Colombia).

Get prices, card prices (CMR), discounts, ratings, reviews, sellers, delivery options, installments and stock
signals for any search term or search/category URL. The output is clean, flat JSON that you can export to Excel,
CSV or Google Sheets, or pull from the API.

### 🇪🇸 En español

Este scraper saca precios, precio con tarjeta CMR, descuentos, calificaciones y vendedores de **Falabella** en Chile, Perú y Colombia, por término de búsqueda o por URL de categoría, y lo entrega como JSON plano listo para Excel o Google Sheets. Es la forma más fácil de revisar **precios Falabella** o de armar un **scraper Falabella Chile Perú Colombia** sin programar un bot desde cero.

Úsalo para:

- Comparar un mismo producto entre Falabella Chile, Perú y Colombia.
- Ver el **precio con tarjeta CMR** frente al precio normal y calcular el descuento real.
- **Monitorear precios** de electrónicos o electrodomésticos durante semanas.
- Armar una base para tu tienda o tu comparador, con calificación y número de reseñas.
- Separar los productos patrocinados (`isSponsored`) para no confundir la búsqueda.
- Revisar qué opciones de entrega ofrece cada tarjeta: domicilio, retiro en tienda o express.

Ejemplo para copiar y pegar (audífonos y televisores en Colombia):

```json
{
  "country": "co",
  "searchTerms": ["audifonos inalambricos", "smart tv 55"],
  "maxItems": 100
}
```

Para monitorear, programa el actor una vez al día desde la pestaña **Schedules** y compara las corridas en Google Sheets o por API: así ves cuándo baja el precio con CMR. Chile está verificado en vivo; Perú y Colombia conviene probarlos primero con una corrida pequeña. Pagas un precio fijo pequeño por cada producto guardado; los errores y las páginas vacías no se cobran.

***

### ✅ Why this scraper

- **Works where plain scrapers fail.** Falabella blocks datacenter IPs. This actor uses residential IPs from the site's own country by default, detects blocked pages and retries them with a fresh session.
- **No browser needed.** Falabella ships its listing data inside the page, so the actor reads it with plain HTTP requests. That keeps runs fast and cheap.
- **Card prices included.** The CMR price (the Falabella credit-card price) is a separate field, so you can compare it with the regular price.
- **Pay per result.** The per-result fee is charged only for products actually saved, never for failed or empty pages.
- **Clean data.** Prices are numbers, not strings ("1.449.990" → `1449990`), with an ISO currency code. Missing values are `null`, never empty strings.
- **Maintained.** If Falabella changes its data format, the parser gets updated. Report anything odd in the **Issues** tab.

***

### 📦 What data you get

| Field | Example | Notes |
|---|---|---|
| `url` | `https://www.falabella.com/falabella-cl/product/.../` | Product page |
| `productId` | `SPP00000001` | Falabella product id |
| `skuId` | `890000001` | SKU id. One product can have several SKUs |
| `title` | `Smartphone Ejemplo 128GB Negro` | |
| `brand` | `MarcaEjemplo` | |
| `price` | `1499990` | Current price, number, in the site currency |
| `cardPrice` | `1349990` | CMR price: the Falabella credit-card price |
| `oldPrice` | `1999990` | Crossed-out previous price, only when discounted |
| `discountPct` | `25` | Computed from `price` and `oldPrice` |
| `currency` | `CLP` | `CLP` (Chile), `PEN` (Peru) or `COP` (Colombia) |
| `rating` | `4.5` | 0–5 |
| `reviewCount` | `191` | |
| `seller` | `Falabella` | Falabella or the marketplace seller |
| `isSponsored` | `false` | Shown as a sponsored placement |
| `isBestSeller` | `false` | |
| `badges` | `["Envío gratis"]` | Promo stickers shown on the card |
| `maxInstallmentsNoInterest` | `12` | Largest installment count without interest |
| `variantCount` | `3` | Total number of variant options (colors, sizes, ...) |
| `homeDelivery` | `true` | Home delivery offered |
| `storePickup` | `false` | Pick-up from store offered |
| `expressDelivery` | `false` | Express delivery offered |
| `imageUrl` | `https://images.example.test/main.jpg` | Main image |
| `searchTerm` | `iphone` | Search term that produced the product (`null` for category URLs without a search) |
| `page` | `2` | Search result page the product came from |
| `country` | `cl` | Site the product came from: `cl`, `pe` or `co` |
| `scrapedAt` | `2026-10-09T18:30:00.000Z` | UTC timestamp |

**Missing values are `null`.** Delivery flags are `null` when the card does not show that information at all.

#### Example item: Chile (CLP)

```json
{
  "url": "https://www.falabella.com/falabella-cl/product/SPP00000001/Smartphone-Ejemplo-128GB/890000001",
  "productId": "SPP00000001",
  "skuId": "890000001",
  "title": "Smartphone Ejemplo 128GB Negro",
  "brand": "MarcaEjemplo",
  "price": 1499990,
  "cardPrice": 1349990,
  "oldPrice": 1999990,
  "discountPct": 25,
  "currency": "CLP",
  "rating": 4.5,
  "reviewCount": 191,
  "seller": "Falabella",
  "isSponsored": false,
  "isBestSeller": false,
  "badges": ["Envío gratis"],
  "maxInstallmentsNoInterest": 12,
  "variantCount": 3,
  "homeDelivery": true,
  "storePickup": true,
  "expressDelivery": false,
  "imageUrl": "https://images.example.test/smartphone-main.jpg",
  "searchTerm": "iphone",
  "page": 1,
  "country": "cl",
  "scrapedAt": "2026-10-09T18:30:00.000Z"
}
```

#### Example item: Peru (PEN)

```json
{
  "url": "https://www.falabella.com.pe/falabella-pe/product/SPP00000002/Audifonos-Ejemplo-Inalambricos/890000002",
  "productId": "SPP00000002",
  "skuId": "890000002",
  "title": "Audifonos Ejemplo Inalambricos Blanco",
  "brand": "MarcaDemo",
  "price": 249.9,
  "cardPrice": 219.9,
  "oldPrice": 349.9,
  "discountPct": 29,
  "currency": "PEN",
  "rating": 4.2,
  "reviewCount": 58,
  "seller": "TiendaEjemplo SAC",
  "isSponsored": true,
  "isBestSeller": false,
  "badges": [],
  "maxInstallmentsNoInterest": 6,
  "variantCount": 1,
  "homeDelivery": true,
  "storePickup": null,
  "expressDelivery": null,
  "imageUrl": "https://images.example.test/audifonos-main.jpg",
  "searchTerm": "audifonos",
  "page": 1,
  "country": "pe",
  "scrapedAt": "2026-10-09T18:31:12.000Z"
}
```

#### Example item: Colombia (COP)

```json
{
  "url": "https://www.falabella.com.co/falabella-co/product/SPP00000003/Televisor-Ejemplo-55-Pulgadas/890000003",
  "productId": "SPP00000003",
  "skuId": "890000003",
  "title": "Televisor Ejemplo 55 Pulgadas 4K",
  "brand": "MarcaSample",
  "price": 1899900,
  "cardPrice": null,
  "oldPrice": null,
  "discountPct": null,
  "currency": "COP",
  "rating": null,
  "reviewCount": null,
  "seller": "Falabella",
  "isSponsored": false,
  "isBestSeller": true,
  "badges": ["Envío gratis"],
  "maxInstallmentsNoInterest": 24,
  "variantCount": 1,
  "homeDelivery": true,
  "storePickup": true,
  "expressDelivery": false,
  "imageUrl": "https://images.example.test/tv-main.jpg",
  "searchTerm": "televisor 55",
  "page": 1,
  "country": "co",
  "scrapedAt": "2026-10-09T18:32:40.000Z"
}
```

The product names, brands, ids and image URLs above are invented for illustration.

#### ⚠️ Error items

If an input produces nothing, the actor saves an error item instead of failing silently. Error items are **never charged**.

```json
{ "error": "NO_RESULTS", "note": "No products found for this input. Check the search term, URL and country.", "input": ["xyzabc"] }
```

| error | Meaning | What to do |
|---|---|---|
| `NO_RESULTS` | The search or category returned no products | Check the search term, the URL and the `country` |
| `NOT_FOUND` | The URL does not exist on Falabella (HTTP 404) | Fix the URL |
| `BLOCKED` | Falabella refused the page after all retries (rare) | Run again later. Keep the residential proxy on |

***

### 🎯 Use cases

- **Price monitoring:** schedule a daily run and track price, card price and discount changes over time.
- **Card-price tracking:** compare the regular price with the CMR price across categories and months.
- **Competitor analysis:** see what marketplace sellers charge for the same products on Falabella.
- **Assortment research:** compare ratings, reviews, delivery options and installments across Chile, Peru and Colombia.
- **Repricing tools and BI dashboards:** feed fresh prices into your own systems through the API.

***

### 🚀 How to use

1. Pick the **country** site, then enter one or more **search terms** (for example `iphone`) or paste **Falabella search or category URLs** into Start URLs.
2. Set **Max items**.
3. Click **Start**, then download the results as JSON, CSV, Excel or HTML, or connect them to Google Sheets.

#### How to scrape by search term

```json
{
  "country": "pe",
  "searchTerms": ["audifonos inalambricos", "smart tv 55"],
  "maxItems": 200
}
```

Each term is searched on the selected site. Results are paginated automatically until the total count is reached or `maxItems` is hit.

#### How to scrape by category URL

```json
{
  "startUrls": [
    { "url": "https://www.falabella.com.co/falabella-co/category/cat1234/Televisores" }
  ],
  "maxItems": 500
}
```

Paste any search or category URL from falabella.com, falabella.com.pe or falabella.com.co. The site is picked from the hostname, so you do not need to set `country` for start URLs. Use the `page` parameter in a URL to start from a later page.

#### How to monitor prices daily

1. Create a task with the input below.
2. Open the **Schedules** tab and add a daily schedule.
3. Connect the dataset to Google Sheets, a webhook or the API and compare `price`, `cardPrice` and `discountPct` with the previous run (`scrapedAt` tells the runs apart).

```json
{
  "country": "cl",
  "startUrls": [
    { "url": "https://www.falabella.com/falabella-cl/search?Ntt=laptop+gamer" }
  ],
  "searchTerms": ["smartwatch"],
  "maxItems": 300
}
```

#### Input fields

| Field | Type | Default | Description |
|---|---|---|---|
| `country` | `cl` / `pe` / `co` | `cl` | Site used for `searchTerms`. Start URLs pick their own site from the hostname. |
| `searchTerms` | string\[] | `["iphone"]` | Terms to search for on the selected site. |
| `startUrls` | request list | `[]` | Search or category URLs on falabella.com, falabella.com.pe or falabella.com.co. |
| `maxItems` | integer | `100` | Maximum number of products to save. |
| `proxyConfiguration` | proxy object | Apify residential | Falabella blocks datacenter IPs, so residential is required. The proxy country is set to the site's country automatically. |
| `debug` | boolean | `false` | Adds per-page counts (no raw HTML) to the dataset, for troubleshooting. |

***

### 🔌 Integrations, API & MCP

- **Schedules:** run it every day or every hour from the Schedules tab.
- **Webhooks, Make, Zapier, n8n, Google Sheets:** send results anywhere when a run finishes.
- **API:** start a run and get the items in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/Polyglot-Data~falabella-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"country":"cl","searchTerms":["iphone"],"maxItems":50}'
```

- **MCP:** the actor can be used from any MCP-compatible AI assistant through the Apify MCP server. Ask the assistant to run `Polyglot-Data/falabella-scraper` with your input, and it gets the dataset items back as JSON that it can summarize or compare.

***

### 💰 Pricing

**Pay per result:** you pay a small fixed price for each product saved to the dataset (see the **Pricing** tab),
plus Apify platform usage. There is no monthly rental, and the per-result fee is never charged for empty or failed pages.

Platform usage, measured Oct 2026 (Chile): ≈ $0.07 per 1,000 products (one request returns 48 products).

***

### ❓ FAQ

**Which sites are supported?**
falabella.com (Chile), falabella.com.pe (Peru) and falabella.com.co (Colombia). The Chile site was verified live. Peru and Colombia are set up for the same page format but are not verified live yet, so check a small run first.

**Do I need my own proxies?**
No. The actor uses Apify residential proxy from the matching country by default.

**Are sponsored products included?**
Yes. Sponsored placements are saved with `isSponsored: true`, so you can filter them out. Falabella also repeats some products in sponsored slots, so the actor saves each product and SKU once per run.

**What does `cardPrice` mean?**
It is the CMR price, the price shown for payment with a Falabella credit card. `price` is the regular online price, and `oldPrice` is the crossed-out price shown next to it. When a product has no CMR price, `cardPrice` is `null`.

**Why a residential proxy?**
Falabella's protection blocks requests from datacenter IPs. Residential IPs from the site's own country get the normal page. Each retry uses a new session.

**How far does pagination go?**
Pages are followed until the total count from the site is reached or `maxItems` is hit, whichever comes first. The site can limit how deep a search result list goes. If a run stops with fewer items than the total shown on the site, that limit is the reason. Use more specific search terms or several category URLs to cover more products.

**Why are `homeDelivery`, `storePickup` or `expressDelivery` sometimes `null`?**
The card does not show that delivery option at all. `false` means the card shows the option is not offered.

**Something is broken or a field is missing?**
Open an issue in the **Issues** tab with the input you used. Issues are answered quickly.

**¿Funciona en español?**
Sí. Los términos de búsqueda pueden escribirse en español, con o sin tildes (por ejemplo, `audifonos` o `televisor`). Los datos llegan en español tal como los publica Falabella.

***

### ⚖️ Legal

This actor collects only publicly visible product information (prices, titles, ratings). It does not collect personal data.
You are responsible for making sure your use complies with the target website's terms and with applicable law.

# Actor input Schema

## `country` (type: `string`):

Falabella site used for search terms. Start URLs pick their own site from the hostname.

## `searchTerms` (type: `array`):

Terms to search for on the selected Falabella site, e.g. "iphone".

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

Search or category URLs on falabella.com, falabella.com.pe or falabella.com.co. Pagination is followed automatically.

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

Maximum number of products to save.

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

Residential proxy is required: Falabella blocks datacenter IPs. The proxy country is set to the site's country automatically.

## `debug` (type: `boolean`):

Store per-page diagnostics (counts only) in the dataset.

## Actor input object example

```json
{
  "country": "cl",
  "searchTerms": [
    "iphone"
  ],
  "startUrls": [],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "debug": false
}
```

# Actor output Schema

## `products` (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 = {
    "searchTerms": [
        "iphone"
    ],
    "startUrls": [],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("polyglot-data/falabella-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 = {
    "searchTerms": ["iphone"],
    "startUrls": [],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("polyglot-data/falabella-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 '{
  "searchTerms": [
    "iphone"
  ],
  "startUrls": [],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call polyglot-data/falabella-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,polyglot-data/falabella-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/91JrQPq1cvgDcw6xl/builds/ZBV7xJm9dQGBdpZwz/openapi.json
