# Chedraui Mexico Grocery Price Scraper (`scrapers_lat/chedraui-scraper`) Actor

Scrape Chedraui Mexico product prices, EAN codes, stock, brands and installments by keyword or category. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/chedraui-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** E-commerce, Automation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $8.00 / 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

<!-- actor-banner -->
[![Chedraui Mexico Grocery Price Scraper](https://scrapers.lat/banners/chedraui-scraper.png)](https://console.apify.com/actors/mlNThX5bU2X8SCWJZ/input)
<!-- /actor-banner -->

## Chedraui Scraper

> Extract grocery and retail product prices, EAN barcodes, stock and brands from Chedraui, one of the three largest supermarket chains in Mexico.

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Mexico](https://img.shields.io/badge/Coverage-Mexico-blue)
![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>23 fields</strong><br>per record</td>
<td align="center"><strong>Mexico</strong><br>coverage</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
<td align="center"><strong>Updated</strong><br>2026-06-22</td>
</tr></table>

<br>

### What you get

Each record is one purchasable product offer from the Chedraui online catalog, ready to load into any database, spreadsheet, or pricing pipeline:

- **imageUrl**: main product image
- **images**: all image URLs for the SKU (electronics often have several); imageUrl above is the first one
- **releaseDate**: catalog release date of the product, when provided
- **productReference**: manufacturer reference / model code from the catalog
- **installmentsTable**: full installment plan table per offer (number of payments, payment value, interest rate, total, payment method name)
- **priceValidUntil**: date the current price is valid until, when provided
- **promoTeasers**: names of active promotions or discounts applied to the offer
- **measurementUnit**: unit of measure for price-per-unit, when provided
- **unitMultiplier**: unit multiplier for price-per-unit, when provided
- **name**: full product name as listed
- **url**: direct link to the product page
- **productId**: Chedraui catalog product id
- **sku**: stock keeping unit id for the specific variant
- **ean**: EAN barcode of the item
- **referenceId**: internal reference code
- **brand**: product brand, or null when the catalog has none
- **categories**: full category path, from department down to subcategory
- **price**: current sale price
- **listPrice**: list price before any discount
- **priceWithoutDiscount**: price excluding promotional discounts
- **sellingPrice**: full selling price charged at checkout
- **currency**: ISO currency code, always MXN
- **installments**: best available installment plan (number, value, interest rate, interest-free flag, total)
- **availableQuantity**: units available for the offer
- **isAvailable**: whether the item is currently purchasable
- **sellerName**: name of the seller fulfilling the offer
- **sellerId**: seller id (1 is Chedraui first-party)
- **isMarketplace**: whether the offer comes from a third-party marketplace seller
- **description\***: plain-text product description
- **specifications\***: structured product attributes (content, product type, package size, and more)
- **observedAt**: when this offer was last seen by the scraper

*\*These fields only appear when Include Product Details is set to true.*

### Who is it for

| Use case | Who benefits |
|---|---|
| Price monitoring | Retail and CPG teams tracking grocery prices in Mexico |
| Market research | Analysts studying basket pricing and promotions |
| Brand intelligence | Manufacturers checking shelf presence and pricing of their SKUs |
| Data pipelines | Developers feeding BI tools, dashboards or price indexes |
| Inflation tracking | Researchers measuring consumer staples prices over time |

### Frequently Asked Questions

**Can I search by product keyword and by category at the same time?**  
Yes. Add one or more keywords in Search Terms and one or more category ids or paths in Categories. Each query runs separately and results are merged and de-duplicated by product, variant and seller.

**How do I scrape a whole department like groceries or technology?**  
Put the department id in Categories. Top-level ids include 1 Supermercado, 2 Vinos y licores, 4 Farmacia, 7 Hogar y jardin and 8 Tecnologia. You can also use a category path such as Supermercado/Bebidas.

**Does every product include a barcode and brand?**  
Most grocery and packaged products return a real EAN barcode and brand. A few catalog items have no brand assigned, in which case the brand field is null rather than a placeholder.

**How many products can I collect per run?**  
Set Max Items to control the total. The Chedraui catalog returns up to about 2500 products per single query window, so for very large pulls split the work across several keywords or categories.

**What does the installments field mean for groceries?**  
It reflects the payment plan Chedraui exposes for the offer. For most low-cost grocery items this is a single full payment, while higher-value items such as appliances may show multi-month interest-free plans.



<!-- related-actors -->
### Related scrapers

Need data from the same space? Here are other scrapers we build and maintain:

- [Dia Argentina Grocery Price Scraper](https://apify.com/scrapers_lat/dia-ar-scraper): Scrape Dia Argentina product prices, list prices, stock, EAN, brand and sellers by keyword or...
- [Disco Argentina Grocery Price Scraper](https://apify.com/scrapers_lat/disco-ar-scraper): Scrape Disco Argentina product prices, list prices, stock, EAN and sellers by keyword or category....
- [Elektra Mexico Product Price & Installment Scraper](https://apify.com/scrapers_lat/elektra-scraper): Scrape Elektra Mexico product prices, installment plans, EAN codes, stock, brands and sellers by...
- [Exito Colombia Grocery Price Scraper](https://apify.com/scrapers_lat/exito-scraper): Extract product data from Exito Colombia by keyword or category. Scrape prices, list prices, stock...
- [MercadoLibre Product Listings Scraper](https://apify.com/scrapers_lat/mercadolibre-scraper): Extract products, prices and seller data from MercadoLibre across 18 LATAM countries. Scrape...
- [Quince Product Scraper](https://apify.com/scrapers_lat/quince-scraper): Extract Quince.com products with prices, traditional retail price, discounts, variants, images and...

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for Latin American and US public platforms: real estate, jobs, e-commerce, company registries and government data. Browse the full catalog, see live sample output for each one, or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with Grupo Comercial Chedraui. It only accesses data that is publicly available on the Chedraui website. Use it in accordance with Chedraui's terms of service.

# Actor input Schema

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

Maximum number of product offers to collect across all search terms and categories. Each available SKU and seller is one record. Optional.
## `withDetails` (type: `boolean`):

When enabled, each record also includes the product description and specification attributes (content, product type, package size, etc.) from the Chedraui catalog.
## `searchTerms` (type: `array`):

Full-text queries to search the Chedraui catalog (e.g. "coca cola", "leche", "pañales"). Each term is searched separately. Maps to the VTEX ft parameter.
## `categories` (type: `array`):

Restrict results to one or more Chedraui categories. Use either a numeric VTEX category id or a category path. Top-level department ids: 1 Supermercado, 2 Vinos y licores, 3 Bebes, 4 Farmacia, 5 Moda y belleza, 6 Mascotas, 7 Hogar y jardin, 8 Tecnologia, 10 Jugueteria, 11 Cuidado e higiene personal, 13 Electrodomesticos y linea blanca, 15 Deportes. Paths look like "Supermercado/Bebidas". Maps to the VTEX fq=C: filter.
## `sortOrder` (type: `string`):

Order in which the catalog returns products. Maps to the VTEX O parameter.
## `proxyConfiguration` (type: `object`):

Proxy settings. The Chedraui VTEX catalog API has no anti-bot protection and works from datacenter IPs, so a proxy is optional. If you ever need it, Apify Residential proxy with country MX is the recommended fallback.

## Actor input object example

```json
{
  "maxItems": 10,
  "withDetails": true,
  "searchTerms": [
    "coca cola"
  ],
  "sortOrder": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

# Actor output Schema

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

No description

# 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 = {
    "maxItems": 10,
    "searchTerms": [
        "coca cola"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/chedraui-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 = {
    "maxItems": 10,
    "searchTerms": ["coca cola"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/chedraui-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "searchTerms": [
    "coca cola"
  ]
}' |
apify call scrapers_lat/chedraui-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/chedraui-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Chedraui Mexico Grocery Price Scraper",
        "description": "Scrape Chedraui Mexico product prices, EAN codes, stock, brands and installments by keyword or category. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "DtHzDNcTsyH9XZCHn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~chedraui-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-chedraui-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~chedraui-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-chedraui-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~chedraui-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-chedraui-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of product offers to collect across all search terms and categories. Each available SKU and seller is one record. Optional."
                    },
                    "withDetails": {
                        "title": "Include Product Details",
                        "type": "boolean",
                        "description": "When enabled, each record also includes the product description and specification attributes (content, product type, package size, etc.) from the Chedraui catalog.",
                        "default": true
                    },
                    "searchTerms": {
                        "title": "Search Terms",
                        "type": "array",
                        "description": "Full-text queries to search the Chedraui catalog (e.g. \"coca cola\", \"leche\", \"pañales\"). Each term is searched separately. Maps to the VTEX ft parameter.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "categories": {
                        "title": "Categories",
                        "type": "array",
                        "description": "Restrict results to one or more Chedraui categories. Use either a numeric VTEX category id or a category path. Top-level department ids: 1 Supermercado, 2 Vinos y licores, 3 Bebes, 4 Farmacia, 5 Moda y belleza, 6 Mascotas, 7 Hogar y jardin, 8 Tecnologia, 10 Jugueteria, 11 Cuidado e higiene personal, 13 Electrodomesticos y linea blanca, 15 Deportes. Paths look like \"Supermercado/Bebidas\". Maps to the VTEX fq=C: filter.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortOrder": {
                        "title": "Sort Order",
                        "enum": [
                            "",
                            "OrderByPriceASC",
                            "OrderByPriceDESC",
                            "OrderByTopSaleDESC",
                            "OrderByNameASC",
                            "OrderByNameDESC",
                            "OrderByReleaseDateDESC",
                            "OrderByBestDiscountDESC"
                        ],
                        "type": "string",
                        "description": "Order in which the catalog returns products. Maps to the VTEX O parameter.",
                        "default": ""
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. The Chedraui VTEX catalog API has no anti-bot protection and works from datacenter IPs, so a proxy is optional. If you ever need it, Apify Residential proxy with country MX is the recommended fallback.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
