Chile Supermarket Prices Scraper avatar

Chile Supermarket Prices Scraper

Pricing

from $0.84 / 1,000 item extracteds

Go to Apify Store
Chile Supermarket Prices Scraper

Chile Supermarket Prices Scraper

Search Jumbo and Santa Isabel Chile grocery catalogs and export current CLP prices, brands, availability, product URLs, and normalized cross-store match keys.

Pricing

from $0.84 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

2 days ago

Last modified

Categories

Share

Search current Chile supermarket prices at Jumbo and Santa Isabel. Supply grocery terms in Spanish and receive typed product records with identity, brand, current CLP price, availability, product URL, and a normalized key for comparing like-named items across the two supported catalogs.

The Actor is designed for scheduled grocery basket snapshots, retail analysis, procurement research, spreadsheet exports, and downstream price-change pipelines. It reads public catalog data; it does not place orders or access customer accounts. No AI model is used and no input or catalog records are sent to an AI provider. This independent Actor is not affiliated with or endorsed by Jumbo or Santa Isabel.

What does Chile Supermarket Prices Scraper do?

For every query, the Actor searches each selected supermarket and exports current catalog rows.

It can:

  • search Jumbo Chile and Santa Isabel Chile in one run;
  • accept up to 20 Spanish product terms;
  • search either source alone when you need source-specific data;
  • extract displayed product identity, brand, CLP prices, and availability;
  • include product, source, and image URLs;
  • group package-sensitive comparison candidates through comparisonKey and comparedAcrossStores;
  • export source-backed Santa Isabel EAN, measurement unit and unit multiplier when exposed;
  • retain legacy matchKey and matchedAcrossStores for existing exports;
  • limit results per store and query;
  • export the default dataset as JSON, CSV, Excel, XML, RSS, or through the Apify API.

Lider and Unimarc are intentionally not supported. Their current extraction routes were not proved for this product, so this Actor does not make unsupported four-chain coverage claims.

Who is this Chile grocery price data for?

Retail and category analysts

Search the same Chilean grocery basket at Jumbo and Santa Isabel, export numeric CLP prices, and compare query, matchKey, and currentPriceClp in a spreadsheet or BI dashboard. Schedule the input weekly to create consistent snapshots for assortment and shelf-price analysis.

Consumer packaged goods and procurement teams

Collect brand, product identity, availability, and source links for selected categories. Review likely equivalents across stores, verify package details from each product URL, and retain timestamped evidence for sourcing or market reviews.

Price-comparison and content teams

Feed current typed catalog rows into a Chile-focused comparison page or editorial workflow. Use matchedAcrossStores to prioritize likely cross-store candidates while keeping the displayed retailer links available for manual validation.

Data engineers and automation developers

Run saved Tasks on a schedule, fetch the default dataset through the Apify API, and load each snapshot into a warehouse, Google Sheet, webhook consumer, or downstream price-change pipeline. The stable schema avoids maintaining separate Jumbo and Santa Isabel parsers.

Why use this Actor?

Two supported catalogs in one contract

Jumbo and Santa Isabel rows use the same field names, currency, availability values, and timestamps. You do not need to maintain separate parsers.

Comparison-oriented identity

Every record includes a deterministic comparisonKey based on the full normalized brand and product name, retaining package counts and sizes. comparisonStores shows where that candidate appeared in the current query. The legacy grouping fields remain available for compatibility.

Lightweight public extraction

The Actor reads structured state exposed by each retailer search page. It does not launch a browser, download product media, log in, or require a user-supplied credential.

Honest source boundaries

A match key is a candidate grouping aid, not a guaranteed GTIN-level equivalence. Package sizes and title wording should still be reviewed before making automated purchasing decisions.

What Chile supermarket fields can I extract?

FieldDescription
queryInput product term that found the row
storejumbo or santa-isabel
productIdSource product or SKU identity
matchKeyStable normalized brand/name grouping key
matchedStoresSelected stores exposing the same match key
matchedAcrossStoresWhether both stores exposed the legacy key
comparisonKeyConservative full-title/brand candidate key retaining package counts and sizes
comparisonStoresSelected stores exposing this comparison key within the current query
comparedAcrossStoresWhether the comparison key appeared in both selected stores in this query
eanSanta Isabel source EAN string (leading zeroes preserved), otherwise null; never guessed
measurementUnitSource measurement unit, otherwise null
unitMultiplierSource unit multiplier, otherwise null; not a calculated unit price
productNameDisplayed product name
brandDisplayed brand, or null
currentPriceClpCurrent numeric price in Chilean pesos
regularPriceClpList/regular CLP price when exposed, otherwise null
currencyAlways CLP
availabilityin_stock, out_of_stock, or null when not exposed
availableQuantityRetailer-reported online offer quantity, otherwise null; not guaranteed physical inventory
productUrlProduct page on the selected supermarket domain
sourceUrlSearch page used for extraction
imageUrlPublic image URL when exposed
scrapedAtUTC collection timestamp

How much does it cost to compare Chile supermarket prices?

This Actor uses pay-per-event pricing:

  • Start: $0.0005 once per run.
  • Product item: tiered by your Apify plan; the BRONZE price is $0.0014 per saved row.

Only valid rows saved to the default dataset receive an item charge. Failed requests and rejected source objects are not charged as items. The SDK limits saved rows to the available charge budget and stops when the item budget is exhausted.

At BRONZE, estimate the Actor event charge as the one-time start fee plus the saved-row count multiplied by the BRONZE item price. Final live pricing for every tier is shown on the Actor page. Apify platform usage may also apply under your plan.

How to compare Jumbo and Santa Isabel prices

  1. Open the Actor input page.
  2. Add product terms such as leche, arroz, and aceite.
  3. Keep both supermarkets selected.
  4. Set the maximum products per store and query.
  5. Click Start.
  6. Open the default dataset and use the overview view.
  7. Group rows by query and comparisonKey to review package-sensitive candidates and compare current CLP prices.

Example input:

{
"queries": ["leche", "arroz"],
"stores": ["jumbo", "santa-isabel"],
"maxItemsPerStore": 10
}

Input parameters

queries

Required in practice; defaults to leche. Supply one to 20 non-empty Spanish product terms. Duplicate terms are removed.

stores

Choose jumbo, santa-isabel, or both. The default selects both for comparison. Any other value fails validation rather than silently switching sources.

maxItemsPerStore

An integer from 1 to 100. It applies separately to every selected store and query. Jumbo requests multiple 40-item pages and deduplicates repeated products. Santa Isabel returns only the first public search-state window (40 products observed in October 2026, subject to upstream changes). A higher limit does not invent additional Santa Isabel records. Source windows, deduplication and the run's charge limit can reduce the returned count.

Output example

A current row has this shape:

{
"query": "leche",
"store": "jumbo",
"productId": "leche-soprole-natural-1-litro",
"matchKey": "c68088526c015ae4",
"matchedStores": ["jumbo"],
"matchedAcrossStores": false,
"productName": "Leche Soprole Entera Natural 1 L",
"brand": "Soprole",
"currentPriceClp": 1150,
"regularPriceClp": null,
"currency": "CLP",
"availability": "in_stock",
"availableQuantity": null,
"productUrl": "https://www.jumbo.cl/leche-soprole-natural-1-litro/p",
"sourceUrl": "https://www.jumbo.cl/busqueda?ft=leche",
"imageUrl": "https://jumbocl.vteximg.com.br/arquivos/ids/527740-250-250/Leche-Soprole-Entera-Natural-1-L.jpg",
"scrapedAt": "2026-08-27T20:30:00.000Z"
}

Prices and assortment can change between runs. Treat the example as a field contract, not as a permanent price quote.

Matching behavior and limitations

comparisonKey normalizes accents, punctuation and casing of the full brand/title before hashing, but retains all package words, counts and sizes. Pack 6 and Pack 12 therefore remain distinct when their titles expose those counts. comparisonStores and comparedAcrossStores are scoped to the current query and returned window, not the whole catalog.

Legacy matchKey normalizes accents, punctuation, casing, brand, title text, and common pack wording. It remains unchanged for compatibility but can collapse different packs; prefer the new comparison key for new pipelines. Neither key proves exact GTIN equivalence. Source-backed ean supports downstream joins but is not used to claim cross-retailer barcode matches.

This approach is useful for repeatable candidate grouping, but it does not prove exact equivalence when:

  • package quantities differ;
  • one source abbreviates a flavor or size;
  • a product title omits the brand;
  • retailer bundles use different wording;
  • two products share a similar name.

For high-stakes comparisons, review productName, brand, price, and product URL together. The Actor does not claim barcode matching when a source does not expose a barcode.

Scheduling recurring grocery snapshots

Use an Apify schedule to run the same basket daily or weekly. Each dataset row includes scrapedAt, allowing downstream systems to compare snapshots.

A common workflow is:

  1. create a Task with a stable basket input;
  2. schedule it at the desired interval;
  3. send dataset rows to Google Sheets, Make, Zapier, or a webhook;
  4. retain prior snapshots in your warehouse;
  5. compare store, matchKey, and currentPriceClp over time.

The Actor returns current observations. It does not maintain a hidden historical database or send alerts by itself.

Export to spreadsheets and data pipelines

From the dataset page, export CSV or Excel for analyst review. For automated pipelines, use the dataset API or an Apify integration.

Recommended keys:

  • deduplicate a snapshot with store + productId;
  • compare package-sensitive candidates with query + comparisonKey (legacy query + matchKey remains available);
  • order snapshots with scrapedAt;
  • preserve sourceUrl and productUrl for auditability.

Integrations

Google Sheets and Microsoft Excel

Export the default dataset as CSV or Excel for ad hoc basket comparisons, or connect an Apify integration to append each scheduled snapshot to a sheet. Use scrapedAt as the observation time and store + productId as the row identity.

Make, Zapier, and webhooks

Trigger a saved Apify Task on a schedule, then pass the finished dataset to Make, Zapier, or an Actor run webhook. A downstream step can filter by matchedAcrossStores, calculate a price difference, and notify your own channel; this Actor itself does not send alerts.

Data warehouses and BI tools

Read dataset items through the Apify API and load them into BigQuery, Snowflake, PostgreSQL, or another warehouse. Retain snapshots rather than overwriting them, then chart currentPriceClp by store, matchKey, and scrapedAt in your BI tool.

Custom applications and price-comparison sites

Use the synchronous dataset endpoint for a small on-demand query or the asynchronous Actor run API for scheduled baskets. Persist productUrl and sourceUrl beside displayed prices so users and reviewers can trace every observation to its retailer page.

Run through the Apify API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~chile-supermarket-price-comparison/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["leche"],"stores":["jumbo","santa-isabel"],"maxItemsPerStore":10}'

To wait and receive dataset items:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~chile-supermarket-price-comparison/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["arroz"],"stores":["jumbo"],"maxItemsPerStore":10}'

Use from JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/chile-supermarket-price-comparison').call({
queries: ['café', 'aceite'],
stores: ['jumbo', 'santa-isabel'],
maxItemsPerStore: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Use from Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/chile-supermarket-price-comparison').call(run_input={
'queries': ['pasta'],
'stores': ['jumbo', 'santa-isabel'],
'maxItemsPerStore': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Connect through MCP

Claude Code setup

Add the Apify MCP server to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/chile-supermarket-price-comparison"

Claude Desktop setup

Use this JSON configuration in Claude Desktop:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/chile-supermarket-price-comparison"
}
}
}

Cursor setup

Add the same mcpServers JSON to Cursor's MCP settings.

VS Code setup

Add the same HTTP server URL to the MCP configuration used by your VS Code AI extension.

Example prompts:

  • “Search Jumbo and Santa Isabel for leche and compare current CLP prices.”
  • “Export 15 Jumbo arroz products with brand and availability.”
  • “Collect a coffee, oil, and pasta basket for my weekly Chile grocery snapshot.”

Reliability and failure behavior

The Actor validates all inputs before requesting source pages. It retries transient timeouts, 429 responses, and temporary 5xx errors with bounded retries.

A changed or challenged page is treated as a failure, not as a successful empty result. This prevents a storefront change from silently producing misleading zero-row snapshots.

No-result searches finish successfully with no rows for that source. Try a broader Spanish product term when a very specific query has no catalog result.

Sanitized failure diagnostics

Failed operations send sanitized diagnostic input, exceptions and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL queries are removed, payloads are bounded, and reports are retained for 30 days. Successful catalog output is not sent as a diagnostic report. Apify hosts run input, logs and datasets under your account's storage/retention settings; delete those stores through Apify when no longer needed. Our private diagnostic reports expire after 30 days. Public catalog requests go to the selected retailers; no paid proxy or supplier account is required. For support, open an issue on this Actor's Apify page and include the run link (avoid posting credentials or personal data).

Legality and responsible use

The Actor reads publicly accessible product catalog information. You are responsible for complying with applicable law, retailer terms, contractual obligations, and data-use requirements.

Use conservative schedules, request only the records you need, and avoid attempts to access accounts, checkout flows, or non-public endpoints. Do not use price observations as guarantees of in-store fulfillment.

Troubleshooting

Why did Santa Isabel return fewer than my limit?

Only its first public search-state window is read (40 products observed in October 2026). The upstream window may change; the Actor reports the useful exposed set and does not duplicate rows or invent pagination to meet a limit.

Why is matchedAcrossStores false?

The other store may not expose the same normalized brand and title in the returned result window. Search a more specific product term or compare the names manually.

Why did the run fail instead of returning zero records?

The Actor fails when a source response no longer has its expected structured catalog shape. That usually indicates a temporary block or storefront change rather than a genuine empty search.

Can I scrape Lider or Unimarc?

No. This Actor deliberately supports only Jumbo and Santa Isabel. Unsupported store names fail validation.

Does the Actor guarantee in-store stock?

No. Availability reflects the public online offer at collection time and may differ by location or fulfillment context.

FAQ

Does it compare historical prices?

It returns current snapshots. Schedule recurring runs and retain datasets to build history.

Can I search more than one product?

Yes. Supply up to 20 terms. Limits apply separately to each query and store.

Are prices numeric?

Yes. currentPriceClp and available regular prices are numeric CLP values.

Does it download product images?

No. It exports the public image URL without downloading image files.

Is a proxy required?

No automatic paid proxy mode is used. The current implementation accesses the public structured pages directly.

For non-Chilean grocery analysis, consider Superstore & No Frills Grocery Prices for Canadian store-scoped products and ASDA Grocery Products & Prices Scraper for UK catalog searches.