# Ripley Scraper — Chile Product Prices, Discounts & Stock (`logiover/ripley-chile-product-scraper`) Actor

Scrape Ripley.cl, one of Chile's largest department stores. Extract product name, brand, current price, list price and Ripley card price, discount percentage, rating and review count, seller, sponsored flag, badges, colour variants and images. No API key.

- **URL**: https://apify.com/logiover/ripley-chile-product-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce
- **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

## Ripley Scraper — Chile Product Prices, Discounts & Stock

Chilean retail prices with all three figures that matter: the list price, the everyday price, and the lower price you only get with the store's own card.

### What does the Ripley Scraper do?

This Actor collects live product data from **Ripley.cl**, one of Chile's largest department stores. Chilean retail quotes three prices for the same item — the list price, the price anyone pays, and the discounted price for holders of the store's credit card — so reporting a single number would misstate what a shopper actually pays. All three are kept in their own columns and the discount is derived from the pair a customer without the card would see.

The products come from the page's own Next.js payload, which also marks sponsored placements. That flag is worth keeping: a sponsored row is an advert, not evidence of what ranks organically, and the same sponsored items repeat across pages — de-duplication by SKU is what keeps a run honest.

### Who is it for?

- **Brands and distributors** monitoring how Chilean retailers price their products.
- **Competitive-pricing teams** benchmarking before setting their own shelf prices.
- **Marketplace sellers** researching demand and price bands before listing.
- **Retail analysts** measuring discount depth and card-price spreads.
- **Consumer researchers** studying Chilean retail promotion cycles.

### Use cases

- Track the gap between the everyday price and the card price — that spread is the store's loyalty economics in numbers.
- Watch discount percentages daily and catch promotions the day they start.
- Separate organic ranking from paid placement using the sponsored flag.
- Compare marketplace sellers against Ripley's own stock in the same category.
- Build a ratings benchmark per category from rating and review counts.
- Feed an AI agent live Chilean retail prices for shopping questions.

### Why use this Ripley Scraper?

- **Three price columns, not one** — list, everyday and card price, each separate.
- **Sponsored placements flagged**, so paid positions never get mistaken for organic ranking.
- **About 58 products per page**, deduplicated by SKU across pages.
- **Category browsing and keyword search**, either one.
- **Colour variants and badges** captured as their own columns.
- **Keyless and login-free** — nothing to register, nothing to rotate.

### What data can you extract?

One row per product. Anything the source left blank comes back as `null`.

| Field | Type | Description |
|---|---|---|
| `sku` | string | Ripley SKU |
| `url` | string | Direct link to the product |
| `name` | string | Product name |
| `brand` | string | Brand |
| `description` | string | Short product description |
| `price` | number | Current price in Chilean pesos |
| `oldPrice` | number | List price before discount |
| `cardPrice` | number | Price with the Ripley credit card |
| `discountPercent` | number | Discount against the list price |
| `rating` | number | Average rating |
| `reviewCount` | number | Number of reviews |
| `seller` | string | Seller name |
| `isMarketplace` | boolean | True where a third-party seller, not Ripley itself |
| `isSponsored` | boolean | Paid placement rather than organic ranking |
| `badges` | string | Promotion badges shown on the card |
| `colours` | string | Available colourways |
| `variantCount` | number | Number of variants |
| `imageCount` | number | Number of photos |
| `imageUrl` | string | Main product photo |
| `scrapedAt` | string | When this row was collected |

#### Sample output

```json
{
  "sku": "2000409933426",
  "url": "https://simple.ripley.cl/product/2000409933426P",
  "name": "NOTEBOOK HP OMNIBOOK 14-FR0070LA INTEL CORE ULTRA 7 16GB RAM 1TB SSD 14”",
  "brand": "HP",
  "description": "Notebook Intel Core Ultra 7 16GB Ram 1TB SSD 14\"",
  "price": 989990,
  "oldPrice": 1229990,
  "cardPrice": 949990,
  "discountPercent": 23,
  "rating": 0,
  "reviewCount": 0,
  "seller": "RIPLEY",
  "isMarketplace": false,
  "isSponsored": true,
  "badges": null,
  "colours": "Plata",
  "variantCount": 1,
  "imageCount": 11,
  "imageUrl": "https://rimage.ripley.cl/home.ripley/Attachment/WOP/1/2000409933426/full_image-2000409933426",
  "scrapedAt": "2026-08-16T16:28:49.120Z"
}
```

### How to use the Ripley Scraper

#### Option A — a category

Enter a category path exactly as it appears after simple.ripley.cl in the URL, e.g. `tecno/computacion/notebooks` or `electro/television`, and set a result limit.

#### Option B — a keyword search

Enter a search term instead. The search runs across the whole store; the category path is ignored in that mode.

#### Option C — a daily price monitor

Pick the categories you compete in, schedule the Actor daily, and diff `price`, `cardPrice` and `discountPercent` between runs.

### Input parameters

| Input | Type | Description |
|---|---|---|
| `categoryPath` | string | Ripley category path exactly as it appears after simple.ripley.cl/ in the URL, e.g. tecno/computacion/notebooks, electro/television, dormitorio/colchones, deporte. Default: `"tecno/computacion/notebooks"`. |
| `searchTerm` | string | Optional keyword search across the whole store. When set, the category path is ignored. |
| `maxResults` | integer | Stop after this many products. Each page returns about 58, a few of which are sponsored repeats that get de-duplicated. Default: `1000`. |
| `proxyConfiguration` | object | Ripley serves Chilean exits. Residential proxy pinned to Chile is used automatically. |

### Tips for best results

- `cardPrice` is only filled where Ripley offers a card discount — roughly half of items — and it is the number Chilean shoppers actually compare.
- Filter out `isSponsored` rows before analysing category rankings, or you are measuring the ad auction rather than the market.
- `isMarketplace` separates Ripley's own inventory from third-party sellers, which behave very differently on price and delivery.
- Ratings are frequently zero in electronics and well populated in beauty and fashion — the category, not the Actor, decides.
- The category path must match the URL exactly, including every slash.

### Integrations

Connect this Actor to Make, Zapier, n8n, Slack, Google Sheets, GitHub, Airtable or any HTTP endpoint through Apify integrations. Every finished run can push its dataset straight into your warehouse, or fire a webhook so a downstream job starts the moment the data lands.

### API usage

Run the Actor from your own code with the Apify API. Datasets can be exported as JSON, CSV, Excel, XML, RSS or HTML, and every run is available through the [Apify API reference](https://docs.apify.com/api/v2).

```bash
curl -X POST "https://api.apify.com/v2/acts/logiover~ripley-chile-product-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"input": {"categoryPath": "tecno/computacion/notebooks", "searchTerm": "", "maxResults": 1000, "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CL"}}}'
```

Python, JavaScript, PHP and CLI clients are documented under [Apify API clients](https://docs.apify.com/api/client).

### Use with AI agents (MCP)

This Actor is callable from any MCP-compatible client — Claude, Cursor, VS Code or your own agent — through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp). An agent can call it to answer live questions about Chilean retail prices, card discounts and product ratings instead of guessing from stale training data.

### FAQ

#### Do I need a Ripley account or API key?

No. The Actor reads public product data with no login and no key.

#### What is the Ripley card price?

Chilean department stores run their own credit cards and quote a lower price for cardholders. It sits beside the normal price on the shelf, so both are collected.

#### How many products can one run return?

Each page carries about 58 and pagination keeps producing new ones, so the practical limit is the result cap you set.

#### What currency are prices in?

Chilean pesos (CLP), as published.

#### Why do some pages repeat products?

Sponsored placements are injected into every page. They are de-duplicated by SKU, which is why a page adds fewer than 58 new rows.

#### Why did my run return zero products?

Usually a category path that does not exist. Copy it from a Ripley URL, including every slash.

#### Can I search instead of browsing?

Yes — set a search term and the Actor searches the whole store. Note that the search lives at /search/<term>, not a query parameter, which the Actor handles.

#### Is the data in Spanish?

Yes. Product names, descriptions and badges are published in Spanish and collected as written.

#### Can I export to CSV or Excel?

Yes. Every run's dataset exports as JSON, CSV, Excel, XML, RSS or HTML from the Storage tab, the API, or automatically through an integration.

#### How fresh is the data?

Every run reads the site live at that moment, so the data is as fresh as the site itself. Schedule the Actor hourly, daily or weekly to build a time series.

#### How often is the Actor updated?

It is monitored and fixed when the site changes its markup or its endpoints. Report anything that looks wrong through the Issues tab and it gets picked up.

### Is it legal to scrape Ripley?

This Actor collects only publicly available information — the same pages any visitor can open without logging in. It does not bypass a login, and it does not touch private or personal accounts. Public data collection is legal in most jurisdictions, but how you *use* the data is your responsibility: if any record contains personal data, GDPR and comparable laws still apply, and you need a lawful basis for processing it. When in doubt, take legal advice. See Apify's [ethical web scraping](https://blog.apify.com/what-is-ethical-web-scraping-and-how-do-you-do-it/) guide.

### Related scrapers

- [Falabella Scraper](https://apify.com/logiover/falabella-product-scraper) — Chilean and Colombian retail prices.
- [Takealot Scraper](https://apify.com/logiover/takealot-south-africa-scraper) — South African retail.
- [Altex Scraper](https://apify.com/logiover/altex-romania-product-scraper) — Romanian electronics prices.
- [Onliner Scraper](https://apify.com/logiover/onliner-belarus-product-scraper) — Belarusian price comparison.
- [Zonaprop Scraper](https://apify.com/logiover/zonaprop-scraper) — Argentine property listings.

# Actor input Schema

## `categoryPath` (type: `string`):

Ripley category path exactly as it appears after simple.ripley.cl/ in the URL, e.g. tecno/computacion/notebooks, electro/television, dormitorio/colchones, deporte.

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

Optional keyword search across the whole store. When set, the category path is ignored.

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

Stop after this many products. Each page returns about 58, a few of which are sponsored repeats that get de-duplicated.

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

Ripley serves Chilean exits. Residential proxy pinned to Chile is used automatically.

## Actor input object example

```json
{
  "categoryPath": "tecno/computacion/notebooks",
  "searchTerm": "notebook",
  "maxResults": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CL"
  }
}
```

# 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 = {
    "categoryPath": "tecno/computacion/notebooks",
    "maxResults": 1000,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "CL"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/ripley-chile-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 = {
    "categoryPath": "tecno/computacion/notebooks",
    "maxResults": 1000,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "CL",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/ripley-chile-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 '{
  "categoryPath": "tecno/computacion/notebooks",
  "maxResults": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CL"
  }
}' |
apify call logiover/ripley-chile-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,logiover/ripley-chile-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/VWyODcQrRPa9QygM5/builds/Eo26LAVd9MehftAct/openapi.json
