Chedraui Mexico Price, Promo & Stock Tracker
Pricing
from $0.80 / 1,000 results
Chedraui Mexico Price, Promo & Stock Tracker
Product price search on Chedraui, a major Mexican supermarket chain. Search by keyword and get structured records: name, brand, price, list price, stock, unit data, price-per-kg and URLs.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Search Chedraui Mexico's online supermarket for structured prices in MXN — groceries, fresh produce and household goods with brands, per-kg prices, stock and URLs.
🇲🇽 Mexico · storefront: www.chedraui.com.mx · prices in MXN (MX)
Every run returns normalized product records — name, brand, current and list price in MXN, per-kilogram price, stock level, product and image URLs — ready for datasets, spreadsheets or dashboards. Fast, structured results: no manual copy-paste.
Use cases
- Mexican grocery price monitoring — staples from one of Mexico's largest chains.
- Basket comparison — pair with other MX banners for market-wide coverage.
- Promo tracking —
pricevslistPriceplus stock flags. - Assortment feeds — structured fields for price pages and research.
What it returns
productKey— stable unique product ID for this store; join and dedupe on this, never the bareidname/brand— product display name and brandprice/listPrice/currency— current and list price; the currency for this store is always MXNunitMultiplier/measurementUnit— pack size (a 5 kg bag → multiplier 5, unit kg)pricePerKg— normalized per-kilogram price when the weight is known,nullotherwiseavailableQuantity/inStock— stock count (99999 means effectively unlimited) and availability flagurl/imageUrl— product page and product imagestore/searchQuery/categoryResolved— run provenance: store slug, the query used, and whether the optional category filter resolved
Input
search— free-text product search, e.g.arroz; defaults to a starter search when omittedcategory— optional; free-text category to scope the search against the store's own category tree (e.g.huevos)maxPages— 1–5 result pages (default 1; 24 products per page)maxResults— cap on returned products (default 50, max 200)
This record always searches www.chedraui.com.mx — no store selection is needed (or offered); every record of this family is fixed to one storefront.
Example queries
{"store": "chedraui", "search": "arroz", "maxResults": 10} {"store": "chedraui", "search": "frijol", "maxResults": 10} {"store": "chedraui", "search": "leche", "maxResults": 5} {"store": "chedraui", "search": "jabón", "maxResults": 20}
Output example
[{"productKey": "chedraui.com.mx:34075","name": "Arroz Extra 5 kg","brand": "Marca Blanca","price": 26.9,"listPrice": 29.9,"currency": "MXN","unitMultiplier": 5,"measurementUnit": "kg","availableQuantity": 147,"pricePerKg": 5.38,"inStock": true,"url": "https://www.chedraui.com.mx/arroz-extra-5kg/p","imageUrl": "https://www.chedraui.com.mx/arquivos/ids/34075/arroz-extra.jpg","store": "chedraui","searchQuery": "arroz","categoryResolved": true}]
Quirks
- Search in es-MX ("frijol", "jabón de barra") for best recall.
- Produce pricing varies by unit/kg —
measurementUnitdisambiguates. - Category names resolve against Chedraui's tree; fallback sets
categoryResolved: false.
Promo signals and price history
Unit prices are limited to grocery/consumer-goods bindings. unitPriceSource records name, measurement, or none; ambiguous sizes yield null. Non-grocery bindings return null, including appliance capacities.
Every product row now includes skuSignals for all returned SKUs: discount amount and percent against list price, promo/teaser names, installment plans, and each seller's stock flag. The displayed SKU also has these fields at the top level. unitPrice and unitPriceBasis normalize known weights, volumes and unit multipliers to kg, l or unit. Unknown measurements remain null; name-based pack estimates can be imperfect. A list-price discount does not guarantee checkout eligibility for a promotion or installment plan.
Set optional historyStoreName to a named key-value store in your own Apify account, then reuse that name and the same search/category/page/result limits. History starts with your first run, with no pre-existing price archive. Each SKU gets previousPrice, priceChange, priceChangePercent, newSku, promoStarted, promoEnded, backInStock, outOfStock and daysSinceLastChange. The displayed SKU's changes also appear on its product row. Days measure observed changes in price, promo status or stock, not the exact time a store changed them. First observations establish a baseline with newSku: null. Unit prices are null for clearly non-consumable catalog category paths (including appliances, electronics, furniture and clothing), even in mixed stores; ambiguous size/count names such as Yogurt 1 kg 6 un also remain null.
History retains at most 3,200 compact SKU observations in 16 chunks per search scope in your named store. Scopes never evict each other. Only active SKUs count toward the cap. Removed-SKU markers are retained for at most 30 days and 3,200 markers, evicting oldest first. Scopes exceeding 3,200 observed active SKUs report historyStatus: "truncated", newSku: null (unknown), and suppress removals. When a complete scope fits again, one recovery pass reports baseline and newSku: null, then normal comparisons resume. Use a separate name for independent monitoring. Concurrent runs using the same store can overwrite each other's observations. Writes are best effort; interrupted writes can leave a partial baseline. Read/write failures preserve catalog rows and set historyStatus to unavailable. Bounded search results cannot prove catalog deletion: removedSku is false for observed SKUs. With history enabled, a SKU missing from a completed repeat of the same bounded query produces one rowType: "historyRemoval" event with removedSku: true and removalReason: "notObservedInRepeatedSearchScope". This means disappearance from the monitored window, not verified catalog deletion. Current price and stock are null on these events; previousPrice is the last observation. Empty runs and unresolved categories report incomplete-observation, preserve SKU history without comparing or saving observations, and reset the smaller-observation streak. Resolved observations below 50% of the stored active scope also report incomplete-observation: seen SKUs are compared and saved, including price, promo and stock changes, while removals are withheld. After three consecutive non-empty smaller observations with resolved categories, the smaller scope is accepted and the run status explains this; up to 200 removals are emitted per run, with the remainder on later runs. Incomplete deadline-limited crawls skip history. Search ranking changes, page limits and outages can hide products. This is observation history, not a complete inventory audit.
For example, add "historyStoreName": "my-store-price-history" to one of the working search examples above. Keep the default dataset-item pricing: one product row or history-removal event is one charged item; nested SKU signals add no rows. maxResults caps product rows; history can add up to 200 disappearance events per run. No new custom charging events are used.
Set includeCategorySummary: true to add one categorySummary row per observed category: count, pricedCount, medianPrice and promoShare (0–1). These describe collected displayed-product offers, not the whole store; categories with unknown prices have a null median. Each summary row is one additional charged dataset item. History-removal events are excluded from summaries.