# Falabella Scraper — Chile & Colombia Product Prices (`logiover/falabella-product-scraper`) Actor

Export the Falabella catalogue in Chile and Colombia: product name, brand, SKU, current price, crossed-out list price, CMR card price, discount percentage, star rating, review count, marketplace seller, badges, variants and every product image URL.

- **URL**: https://apify.com/logiover/falabella-product-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Falabella Scraper — Chile & Colombia Product Prices, Sellers and Ratings

Falabella is the largest department-store retailer in South America and its online marketplace is where a great deal of Chilean and Colombian retail pricing is actually set. This Actor walks any search or category on **falabella.com (Chile)** and **falabella.com.co (Colombia)** and returns a clean product table: name, brand, SKU, **four separate prices**, discount percentage, rating, review count, the marketplace seller behind the offer, and every product image.

The four prices matter more than they look. Falabella quotes a crossed-out `listPrice`, an open `currentPrice` anyone pays, an `eventPrice` during campaigns, and a `cardPrice` reserved for holders of the store's own CMR credit card. Most scrapers flatten those into one number and quietly lose the discount structure; this one keeps them apart, so you can see both the headline discount and the card-only discount that drives conversion.

### What you get

One row per product, 34 columns:

| Group | Fields |
|---|---|
| Identity | `productId`, `skuId`, `name`, `brand`, `url`, `productType`, `categoryId`, `merchantCategoryId` |
| Pricing | `currentPrice`, `listPrice`, `cardPrice`, `internetPrice`, `eventPrice`, `savings`, `discountPercent`, `currency`, `installmentsWithoutInterest` |
| Reputation | `rating`, `reviewCount` |
| Seller | `sellerName`, `sellerId`, `isVerifiedSeller`, `isMarketplace` |
| Merchandising | `isBestSeller`, `isSponsored`, `isFrequentProduct`, `badges`, `variants` |
| Media | `imageCount`, `mainImage`, `imageUrls` |
| Meta | `country`, `source`, `scrapedAt` |

Measured on a 150-product run in Chile: `currentPrice` 100%, `listPrice` 100%, `brand` 100%, `sellerName` 100%, `discountPercent` 71%, `rating` and `reviewCount` 65%, `variants` and `badges` where the product has them.

#### Sample row

```json
{
  "productId": "142493561",
  "skuId": "142493562",
  "name": "Zapatillas Mujer Skech-Air Dynamight 20 Negro RG",
  "brand": "SKECHERS",
  "url": "https://www.falabella.com/falabella-cl/product/142493561/...",
  "currentPrice": 35990,
  "listPrice": 54990,
  "cardPrice": null,
  "savings": 19000,
  "discountPercent": 35,
  "currency": "CLP",
  "rating": 4.6471,
  "reviewCount": 34,
  "sellerName": "Skechers",
  "isMarketplace": true,
  "isSponsored": false,
  "badges": "Llega mañana | Envío gratis app | Retira mañana | Envío Plus+",
  "variants": "COLOR: Negro",
  "imageCount": 5,
  "mainImage": "https://media.falabella.com/falabellaCL/142493562_01/public"
}
```

### Input

| Field | What it does |
|---|---|
| **Country** | Chile or Colombia — separate catalogues, currencies, sellers and prices. |
| **Search term** | Any keyword: `celular`, `zapatillas`, `televisor`, `notebook`. |
| **Search or category URL** | Optional. Paste a URL from the site to reuse the facets and sort order you set there; it overrides the two fields above. |
| **Maximum products** | Stop after this many rows. Up to 56 products arrive per page. |
| **Proxy** | Residential, pinned automatically to the selected country. |

```json
{
  "market": "co",
  "searchTerm": "celular",
  "maxResults": 1000,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

Reusing a filtered category instead:

```json
{
  "searchUrl": "https://www.falabella.com/falabella-cl/category/cat7230011/Celulares-y-Telefonos",
  "maxResults": 500
}
```

### What it is good for

**Competitive repricing.** If you sell on Falabella's marketplace, `currentPrice`, `cardPrice` and `discountPercent` per SKU are the numbers your own pricing has to answer. Run the same search daily and you have a price history per SKU without touching a seller API.

**Promotion and campaign tracking.** `eventPrice` and `savings` expose exactly when and how deep a category goes on discount — CyberDay, Black Friday, back-to-school. Because `listPrice` is kept separately, you can also spot the classic trick of raising the crossed-out price before a sale.

**Marketplace seller intelligence.** `sellerName`, `sellerId`, `isMarketplace` and `isVerifiedSeller` show who is selling what through the platform. Group a category run by seller to find the active third-party merchants — the prospect list for logistics, packaging, financing and ad-tech vendors selling into LATAM e-commerce.

**Assortment and gap analysis.** Brand, category and product type across thousands of SKUs show which brands own shelf space in a category and where a catalogue is thin — the standard input to a range-planning exercise.

**Retail-media measurement.** `isSponsored` marks paid placements, so you can measure how much of a category page is bought rather than earned, and which brands are buying it.

**Review mining.** `rating` and `reviewCount` per SKU identify products with enough social proof to matter, and the ones whose ratings are slipping.

### How it works

Falabella server-renders its result pages and embeds the full product set in the page. The Actor requests each page through a residential IP in the target country, reads that embedded catalogue, and maps every product to a flat row — no headless browser, so runs stay fast and cheap.

Two details that took verifying rather than assuming:

- **Deep pagination is real, and checked.** Pages 1, 5 and 20 of the same search return distinct products (`currentPage` advances server-side). Sponsored placements repeat across pages, so the Actor de-duplicates by SKU across the whole run.
- **Prices are parsed per market.** Chile writes `499.990` and Colombia `4.699.900`, both with dots. Reading those as decimals would turn a 4.7-million-peso phone into 4.70. The parser decides by counting digits after the last separator, so both markets come out right.

Long runs are guarded the same way as the rest of this Actor family: a fresh proxy IP on every retry, a failed page skipped rather than fatal, three consecutive failures stopping the run, and a time budget that keeps everything already collected.

### Cost and limits

Billing is per result, so cost tracks rows saved rather than pages fetched. Store discounts apply on paid Apify plans.

- **Chile and Colombia only.** The Peruvian storefront ignores its own paging parameter and re-serves page one indefinitely, so it is deliberately not offered here rather than shipped as a market that silently returns 50 products and stops.
- `cardPrice` appears only where a CMR-exclusive price exists (about 1% of fashion, far more in electronics).
- `rating` and `reviewCount` are empty for unrated products rather than reported as zero.
- Falabella's own search caps deep results; to collect a whole category, split by brand or price band using the URL field.
- Stock level and delivery promise are not exposed in the listing payload; `badges` carries the shipping claims the site shows on the card.

### Legal

This Actor reads publicly visible catalogue pages. It does not log in, does not bypass access control, and collects no personal data — seller names here are business identities. Product data may be protected as a database right in some jurisdictions; use it accordingly.

Not affiliated with, endorsed by, or connected to Falabella or Falabella Retail S.A. The name is used only to identify the public source of the data.

# Actor input Schema

## `market` (type: `string`):

Which Falabella storefront to scrape. Each country has its own catalogue, currency, sellers and prices.

## `searchTerm` (type: `string`):

Keyword to search the catalogue for, e.g. celular, zapatillas, televisor, notebook, refrigerador. Ignored when a full URL is given below.

## `searchUrl` (type: `string`):

Paste any Falabella search or category URL to reuse the filters and sort order you set on the site, e.g. https://www.falabella.com/falabella-cl/category/cat7230011/Celulares-y-Telefonos or a search URL with brand and price facets applied.

## `maxResults` (type: `integer`):

Stop once this many products have been saved. Falabella returns up to 56 products per page.

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

Falabella serves catalogue, price and stock data per country, so residential proxies are pinned to the selected market automatically.

## Actor input object example

```json
{
  "market": "cl",
  "searchTerm": "zapatillas",
  "searchUrl": "https://www.falabella.com/falabella-cl/search?Ntt=celular",
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Every record collected in this run. Open the Dataset tab to browse, filter or export as JSON, CSV or Excel.

# 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 = {
    "market": "cl",
    "searchTerm": "celular",
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/falabella-product-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 = {
    "market": "cl",
    "searchTerm": "celular",
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/falabella-product-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 '{
  "market": "cl",
  "searchTerm": "celular",
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call logiover/falabella-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,logiover/falabella-product-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/X3tmpb8TmkEsHqVDJ/builds/0ZlbBO4onXvR1ROp8/openapi.json
