# A Cuenta Chile Scraper - Precios Supermercado (`scraperschile/acuenta-cl`) Actor

Scraper de A Cuenta Chile para obtener productos, precios, promociones, disponibilidad, categorías, imágenes y enlaces del supermercado. Exporta resultados a Dataset, JSON, CSV, Excel o API para comparar canastas y monitorear el retail chileno.

- **URL**: https://apify.com/scraperschile/acuenta-cl.md
- **Developed by:** [Scrapers Chile](https://apify.com/scraperschile) (community)
- **Categories:** E-commerce
- **Stats:** 4 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.30 / 1,000 bloque de 100 productos

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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

Usa este **A Cuenta Chile scraper** para convertir la búsqueda pública de [A Cuenta.cl](https://www.acuenta.cl/) en un dataset ordenado de productos, precios, promociones, disponibilidad y categorías. Está pensado para comparar supermercados, seguir marcas propias y medir cambios del retail chileno sin copiar información manualmente.

También funciona como una **API de A Cuenta** dentro de Apify: puedes iniciarlo desde la consola, programarlo o llamarlo por API, y luego consumir los resultados como JSON, CSV, Excel, XML o RSS. El Actor recorre la paginación disponible, elimina duplicados y respeta límites de productos y páginas para que cada ejecución tenga un alcance controlable.

### Datos que entrega

Cada fila del dataset representa un producto observado en la búsqueda de A Cuenta y puede incluir:

- Término buscado, fecha de extracción, página y posición.
- ID, SKU, EAN, nombre, marca y URL pública.
- Categoría, ruta de categorías, imágenes y variantes.
- `acuenta_precio`, `acuenta_precio_anterior`, `precio_principal` y precio por unidad.
- Promociones, etiquetas, disponibilidad, stock y límites de cantidad.
- `raw_product`, con el producto original serializado para auditoría y trazabilidad.

Los campos de precio tienen significados distintos:

| Campo | Significado |
| --- | --- |
| `acuenta_precio` | Precio final reportado por A Cuenta en `price`. |
| `acuenta_precio_anterior` | Precio anterior reportado en `previousPrice`, cuando existe. |
| `precio_principal` | Precio principal normalizado para comparar con otros retailers. |
| `precio_por_unidad` | Texto de precio por unidad publicado por el sitio. |
| `promotion`, `promotions` | Promociones observadas en el catálogo público. |

Ejemplo de resultado:

```json
{
  "search_term": "leche",
  "sku": "3091",
  "name": "Leche Natural Entera Caja 1 L Lider",
  "brand": "Lider",
  "currency": "CLP",
  "acuenta_precio": 990,
  "acuenta_precio_anterior": 1090,
  "precio_por_unidad": "$990 x L",
  "category": "Leches Liquidas",
  "url": "https://www.acuenta.cl/p/leche-natural-entera-caja-1-l-lider-3091",
  "page": 1,
  "position": 1
}
```

### Casos de uso

- Monitorear precios y promociones de A Cuenta Chile en el tiempo.
- Comparar A Cuenta con Lider, Jumbo, Tottus, Santa Isabel u otros supermercados.
- Crear alertas de cambios de precio, descuentos o disponibilidad.
- Analizar categorías, surtido, marcas propias y precios por unidad.
- Alimentar catálogos, planillas, herramientas de BI y estudios del mercado chileno.

### Cómo ejecutar, usar la API y exportar

En la consola de Apify, escribe el producto o marca en `term`, define `maxItems` y, si lo necesitas, limita `maxPages`. Inicia la ejecución y abre la pestaña **Dataset** para descargar los datos o acceder a ellos mediante la API de Apify.

Input de ejemplo:

```json
{
  "term": "leche",
  "maxItems": 100,
  "maxPages": 2,
  "concurrency": 4,
  "failOnNoResults": false
}
```

Parámetros principales:

- `term`: término obligatorio, como `leche`, `arroz`, `aceite`, `bebida` o `detergente`.
- `maxItems`: máximo de productos a guardar; es útil para pruebas y control de costos.
- `maxPages`: límite opcional de páginas. Si se omite, el Actor recorre lo disponible hasta alcanzar `maxItems`.
- `concurrency`: páginas consultadas en paralelo después de la primera.
- `retries` y `timeoutSecs`: controles para respuestas lentas o fallas temporales.
- `failOnNoResults`: permite decidir si una búsqueda sin productos debe fallar.

El registro `OUTPUT` resume `status`, término, totales informados y extraídos, páginas consultadas, límites, advertencias y errores. El dataset conserva el detalle completo.

### Cómo funciona

El Actor consulta por HTTP el HTML público de `https://www.acuenta.cl/search?name=<termino>` y lee los datos estructurados de React Flight incluidos en `self.__next_f.push`. Recorre páginas mediante `currentPage`, procesa en paralelo después de la primera, elimina productos duplicados y guarda filas normalizadas en el Dataset. Esta arquitectura evita depender de una sesión de cliente y deja un resumen auditable en `OUTPUT`.

### Precio

Este Actor usa pago por evento. Cobra **USD 0,0003 por cada bloque o fracción de hasta 100 productos** guardados mediante el evento `results-100`; un bloque completo equivale a USD 0,003 por mil resultados. El usuario también paga el uso de plataforma de Apify. Revisa siempre la pestaña **Pricing** antes de ejecutar, porque allí aparece la tarifa vigente.

### Límites y uso responsable

A Cuenta puede cambiar el formato de React Flight o su paginación. Si ocurre, el Actor devuelve errores claros y conserva contexto en `OUTPUT`. La disponibilidad regional detallada puede depender de la comuna o zona seleccionada en el sitio; este Actor extrae el catálogo público visible desde la búsqueda general. Actualmente las páginas públicas entregan hasta 50 productos y el alcance se controla con `maxItems` y `maxPages`.

Para pruebas rápidas, usa entre 20 y 100 resultados. Si el sitio responde lento, reduce `concurrency` a 1 o 2. Conserva `raw_product` cuando necesites auditar cambios de precios o contrato. Usa los datos públicos respetando los términos aplicables, las normas de Apify y la legislación vigente.

> **Aviso de independencia:** Este Actor es una herramienta no oficial e independiente. No está afiliado, patrocinado ni respaldado por A Cuenta.cl.

### Preguntas frecuentes y soporte

#### ¿Necesito una cuenta de A Cuenta?

No. El Actor usa la búsqueda pública y no accede a cuentas, carros ni datos privados.

#### ¿Puedo programar comparaciones diarias?

Sí. Puedes usar Schedules de Apify y consumir cada dataset por API o exportarlo a CSV y Excel.

#### ¿Qué hago si no aparecen resultados?

Prueba un término más general y revisa `OUTPUT`. Si el problema continúa, crea un issue desde la pestaña **Issues** del Actor incluyendo la URL de la ejecución, el input utilizado y el comportamiento esperado; no publiques tu token de Apify.

# Actor input Schema

## `term` (type: `string`):

Producto, marca o texto a buscar en A Cuenta.cl. Ejemplos reales: leche, arroz, aceite, bebida, detergente.

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

Limite opcional de productos a guardar. Util para pruebas rapidas, presupuestos controlados, smoke tests o monitoreos acotados.

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

Limite opcional de paginas a recorrer. Si se omite, el Actor recorre toda la paginacion disponible o hasta alcanzar maxItems.

## `concurrency` (type: `integer`):

Cantidad de paginas procesadas en paralelo despues de la primera. Baja este valor si A Cuenta responde lento o limita solicitudes.

## `retries` (type: `integer`):

Cantidad de reintentos por pagina si A Cuenta demora, corta o rechaza una solicitud temporalmente.

## `timeoutSecs` (type: `integer`):

Tiempo maximo en segundos para consultar una pagina HTML de A Cuenta.

## `failOnNoResults` (type: `boolean`):

Si esta activo, la ejecucion falla cuando A Cuenta no devuelve productos. Si esta apagado, guarda OUTPUT con estado no\_results y dataset vacio.

## Actor input object example

```json
{
  "term": "leche",
  "maxItems": 100,
  "concurrency": 4,
  "retries": 3,
  "timeoutSecs": 30,
  "failOnNoResults": false
}
```

# Actor output Schema

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

Items del dataset con nombre, marca, precios A Cuenta, promociones, categoria, URL e imagen.

## `summary` (type: `string`):

Registro OUTPUT con estado, paginas recorridas, limites aplicados, warnings, errores y productos crudos agregados.

# 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 = {
    "term": "leche",
    "maxItems": 100,
    "concurrency": 4
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperschile/acuenta-cl").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 = {
    "term": "leche",
    "maxItems": 100,
    "concurrency": 4,
}

# Run the Actor and wait for it to finish
run = client.actor("scraperschile/acuenta-cl").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 '{
  "term": "leche",
  "maxItems": 100,
  "concurrency": 4
}' |
apify call scraperschile/acuenta-cl --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraperschile/acuenta-cl"
        }
    }
}

```

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/M4Ahq9HVvk4J6Gsy0/builds/j1gf3bOlv9L1aP8Qy/openapi.json
