# Falabella Scraper (`crawlerbros/falabella-scraper`) Actor

Scrape Falabella.com (Chile) products by keyword search, category browse, or exact product ID/URL. Get prices, discounts, ratings, seller info, images and specifications.

- **URL**: https://apify.com/crawlerbros/falabella-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, E-commerce, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

Scrape product data from [Falabella.com](https://www.falabella.com) (Chile) -- one of Latin America's largest online retailers. Get product titles, prices, discounts, ratings, seller information, images, and full specifications from keyword search, category browsing, or specific product pages.

### What does this scraper do?

- **Search by keyword** -- find products matching any search term (e.g. "laptop", "zapatillas", "smart tv").
- **Browse a category** -- pull every product listed under a Falabella category ID.
- **Get product details** -- fetch full specifications, seller info, and pricing for exact product IDs or URLs.
- **Filter results** -- by price range, minimum rating, minimum discount percentage, brand, best-seller flag, and free-shipping availability.
- **Sort results** -- by relevance, price (low-to-high or high-to-low), or customer rating.

No login, cookies, or paid proxy required.

### Output

Each result is a JSON record. Search/category results include:

| Field | Description |
|---|---|
| `productId` | Falabella's internal product ID |
| `skuId` | Falabella's internal SKU ID |
| `title` | Product name |
| `brand` | Brand name |
| `productType` | Falabella's own listing type, e.g. `REGULAR` or a marketplace-specific code |
| `price` | Current sale price (CLP) that any shopper pays -- never the CMR-card-exclusive price |
| `originalPrice` | Original price before discount (CLP), if applicable |
| `cmrPrice` | Special lower price available only to holders of Falabella's own "CMR" store credit card, if different from `price` |
| `currency` | Always `CLP` (Chilean peso) |
| `discountPercent` | Discount percentage, if any |
| `interestFreeInstallments` | Largest number of interest-free monthly installments offered, if any |
| `rating` | Average customer rating (0-5) |
| `totalReviews` | Number of customer reviews |
| `sellerId` / `sellerName` | Marketplace seller |
| `isVerifiedSeller` | Whether the seller is Falabella-verified |
| `isBestSeller` | Best-seller flag |
| `isSponsored` | Whether the listing is a paid/sponsored placement |
| `shippingTags` | Delivery-related tags Falabella shows on the listing, e.g. `same_day`, `envio_plus` |
| `freeShipping` | Whether free app shipping applies |
| `productCondition` | Listing condition tag when present, e.g. `Reacondicionado` (refurbished) or `Open box` -- omitted for standard/new listings |
| `imageUrls` | Product image URLs |
| `productUrl` | Link to the product page |
| `categoryId` | Falabella catalog category ID |
| `recordType` | `product` |
| `scrapedAt` | UTC timestamp of when the record was scraped |

`productDetails` mode additionally returns `description`, `categoryPath`, `specifications` (name/value pairs), `sellerBusinessName`, `sellerRatingScore`, `isOutOfStock`, `stockUnits`, and `warrantyId`.

Only fields that Falabella actually provides for a given product are included -- no blank or placeholder values.

### Input options

| Field | Mode | Description |
|---|---|---|
| `mode` | all | `search`, `category`, or `productDetails` |
| `searchQuery` | search | Keyword to search for |
| `categoryId` | category | Falabella category ID (e.g. `cat70057`) |
| `productIds` / `productUrls` | productDetails | Exact product IDs or full product URLs |
| `sortBy` | search/category | `relevance`, `priceAsc`, `priceDesc`, `rating` |
| `minPrice` / `maxPrice` | search/category | Price range filter in CLP |
| `minRating` | search/category | Minimum customer rating (0-5) |
| `minDiscountPercent` | search/category | Minimum discount percentage |
| `brand` | search/category | Filter to brand names containing this text |
| `onlyBestSeller` | search/category | Only include best-sellers |
| `freeShippingOnly` | search/category | Only include free-shipping products |
| `newOnly` | search/category | Exclude refurbished/open-box listings |
| `maxItems` | all | Maximum number of records to return |
| `maxPages` | search/category | Maximum result pages to scan |

#### Finding a category ID

Open any category page on Falabella, e.g. `https://www.falabella.com/falabella-cl/category/cat70057/Notebooks` -- the category ID is `cat70057`.

### Example use cases

- **Price monitoring** -- track prices and discounts for specific products or categories over time.
- **Market research** -- analyze brand presence, ratings, and pricing across a product category.
- **Deal hunting** -- filter for the highest discounts or best-rated products in a category.
- **Catalog enrichment** -- pull full specifications and images for a list of known product IDs.

### FAQ

**Does this scraper require login or cookies?**
No. All data is scraped from Falabella's own publicly rendered pages.

**What currency are prices in?**
Chilean pesos (CLP), Falabella's home market currency.

**Does it support other Falabella country sites (Peru, Colombia)?**
This actor currently supports Falabella's Chile storefront (`falabella.com`), which is the group's primary and most complete catalog.

**What is `cmrPrice` and why is it different from `price`?**
Falabella offers an extra discount to shoppers who pay with its own store credit card ("CMR"). The `price` field always reflects the price any shopper can pay; `cmrPrice` is only included when a lower CMR-exclusive price also exists, so you can see both.

**Why do some products lack a `rating` or `originalPrice` field?**
Falabella only returns rating/discount data for products that actually have it. Fields are omitted rather than filled with placeholder values, in line with real-data accuracy.

**How many products can I scrape per run?**
Up to `maxItems` (default 50, max 2000) per run for search/category modes.

### Limitations

- Falabella's individual product pages are protected against automated access. This actor reliably fetches `productDetails` for the vast majority of runs; `productUrl` values in the output always resolve to the real product page when opened in a browser (a manual non-browser request may show a challenge page instead, which is expected and not a broken link). Search/category mode is unaffected. On rare occasions a specific product ID may fail to load even after retries -- the run continues and reports which IDs could not be fetched rather than failing the whole run. Image URLs (`imageUrls`) are always directly accessible from any client regardless of mode.
- Only Falabella's Chile storefront (`falabella.com`) is supported. Falabella's Peru and Colombia storefronts use separate domains with different anti-bot protection and are out of scope for this version.

# Actor input Schema

## `mode` (type: `string`):

search = keyword search. category = browse a category listing page. productDetails = fetch full detail for specific product IDs/URLs.

## `searchQuery` (type: `string`):

Keyword to search for on Falabella.com, e.g. 'laptop' or 'zapatillas'.

## `categoryId` (type: `string`):

Falabella category ID to browse, e.g. 'cat70057' (Notebooks). Find it in a category page URL: falabella.com/falabella-cl/category/{categoryId}/{slug}.

## `productIds` (type: `array`):

Falabella numeric product IDs to fetch full detail for.

## `productUrls` (type: `array`):

Full Falabella product URLs to fetch full detail for (alternative to productIds).

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

How results are ordered by Falabella before client-side filters are applied.

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

Only include products priced at or above this amount, in Chilean pesos (CLP).

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

Only include products priced at or below this amount, in Chilean pesos (CLP).

## `minRating` (type: `number`):

Only include products with a customer rating at or above this value (0-5). Products with no rating data are always included.

## `minDiscountPercent` (type: `integer`):

Only include products discounted by at least this percentage. Products with no discount data are always included.

## `brand` (type: `string`):

Only include products whose brand name contains this text (case-insensitive), e.g. 'samsung'.

## `onlyBestSeller` (type: `boolean`):

Only include products flagged as best-sellers by Falabella.

## `freeShippingOnly` (type: `boolean`):

Only include products tagged with free app shipping.

## `newOnly` (type: `boolean`):

Exclude listings tagged by Falabella as refurbished ('Reacondicionado') or open-box. Most listings have no condition tag at all, which means standard/new -- those are always included.

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

Maximum number of records to return.

## `maxPages` (type: `integer`):

Maximum number of result pages (48 products/page) to walk before stopping.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "laptop",
  "categoryId": "cat70057",
  "productIds": [
    "152414961"
  ],
  "sortBy": "relevance",
  "onlyBestSeller": false,
  "freeShippingOnly": false,
  "newOnly": false,
  "maxItems": 50,
  "maxPages": 30
}
```

# Actor output Schema

## `products` (type: `string`):

Dataset containing all scraped Falabella products.

# 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 = {
    "mode": "search",
    "searchQuery": "laptop",
    "categoryId": "cat70057",
    "productIds": [
        "152414961"
    ],
    "sortBy": "relevance",
    "onlyBestSeller": false,
    "freeShippingOnly": false,
    "newOnly": false,
    "maxItems": 50,
    "maxPages": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/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 = {
    "mode": "search",
    "searchQuery": "laptop",
    "categoryId": "cat70057",
    "productIds": ["152414961"],
    "sortBy": "relevance",
    "onlyBestSeller": False,
    "freeShippingOnly": False,
    "newOnly": False,
    "maxItems": 50,
    "maxPages": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/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 '{
  "mode": "search",
  "searchQuery": "laptop",
  "categoryId": "cat70057",
  "productIds": [
    "152414961"
  ],
  "sortBy": "relevance",
  "onlyBestSeller": false,
  "freeShippingOnly": false,
  "newOnly": false,
  "maxItems": 50,
  "maxPages": 30
}' |
apify call crawlerbros/falabella-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,crawlerbros/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/3JoCK64knPQaO37c5/builds/8SAViItPCjaYFUlnw/openapi.json
