LATAM Wholesale Food Prices Scraper (Mexico & Peru)
Pricing
from $10.20 / 1,000 results
LATAM Wholesale Food Prices Scraper (Mexico & Peru)
Scrape daily wholesale (mayorista) agricultural and food prices from LATAM central markets: Mexico's national wholesale market network and Peru's Gran Mercado Mayorista de Lima. Get product, variety, market, city, unit, min/max/average price, currency and date. Export to JSON, CSV or Excel.
Pricing
from $10.20 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
LATAM Wholesale Food Prices Scraper (Mexico & Peru)
Here is one real result, with every field the actor returns:
{"country": "Mexico","productName": "Aguacate Criollo","variety": "Primera","marketName": "Mercado de Abasto \"Estrella\" de San Nicolás de los Garza","city": "Nuevo León","origin": "Nuevo León","unit": "Caja de 9 kg.","priceMin": 32.22,"priceMax": 35.56,"priceAvg": 33.33,"currency": "MXN","priceDate": "2026-08-04","source": "SNIIM","observedAt": "2026-08-10T14:34:33.744Z"}
The most complete LATAM wholesale food price scraper available. It returns official daily wholesale prices from Mexico's national market network (SNIIM) and Peru's Gran Mercado Mayorista de Lima (EMMSA), with product, variety, market, origin, unit and min/max/average price per day, filterable by market, product keyword and lookback window.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor collects published daily wholesale food prices from Latin American central markets, applies the country, product-keyword and lookback filters you pass as input, and writes one normalized record per product/variety/market/date to the run's dataset. Two sources are covered: Mexico's national wholesale market network (SNIIM) and Peru's Gran Mercado Mayorista de Lima (EMMSA). Each record includes the product name and variety, the wholesale market and city, the production origin, the sale unit/presentation and the minimum, maximum and average (frequent) price for the day. Product keyword matching is accent-insensitive. Missing source values are returned as null.
Quickstart
Open the actor, paste this into the input, and press Run. It returns recent prices for a staple basket across both countries.
{"countries": ["mexico", "peru"],"products": ["tomate", "aguacate", "cebolla", "papa", "limon", "platano"],"days": 7,"maxPrices": 10}
Leave products empty to return all products (Peru) or a default basket of staples (Mexico). Widen days to look further back; prices are published on business days.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
countries | string[] | no | ["mexico","peru"] | Markets to scrape: mexico (SNIIM national network) and/or peru (EMMSA, Gran Mercado Mayorista de Lima). |
products | string[] | no | staples basket | Keep only products whose name contains one of these keywords (accent-insensitive), for example tomate, aguacate, limon, papa, platano. Empty returns all products. |
days | integer | no | 7 | How many recent days of prices to collect, ending today (1 to 60). |
maxPrices | integer | no | 10 | Maximum price records to collect across all selected markets. |
Output reference
One dataset item per product/variety/market/date. Types: string, number, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
country | string | Country: Mexico or Peru. |
productName | string | Product name. |
variety | string | Variety / quality grade. |
marketName | string | Wholesale market name. |
city | string | City / state of the market. |
origin | string | Production origin (region). |
unit | string | Sale unit / presentation, for example Caja de 9 kg.. |
priceMin | number | Minimum price for the day. |
priceMax | number | Maximum price for the day. |
priceAvg | number | Average / frequent price for the day. |
currency | string | Currency: MXN or PEN. |
priceDate | string | Price date (YYYY-MM-DD). |
source | string | Data source: SNIIM (Mexico) or EMMSA (Peru). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"countries":["mexico","peru"],"products":["tomate","aguacate","cebolla","papa","limon","platano"],"days":7,"maxPrices":10}):
{"country": "Mexico","productName": "Aguacate Criollo","variety": "Primera","marketName": "Mercado de Abasto \"Estrella\" de San Nicolás de los Garza","city": "Nuevo León","origin": "Nuevo León","unit": "Caja de 9 kg.","priceMin": 32.22,"priceMax": 35.56,"priceAvg": 33.33,"currency": "MXN","priceDate": "2026-08-04","source": "SNIIM","observedAt": "2026-08-10T14:34:33.744Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~latam-wholesale-food-prices-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"countries":["mexico"],"products":["aguacate"],"days":14,"maxPrices":100}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~latam-wholesale-food-prices-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"countries":["peru"],"products":[],"days":7,"maxPrices":500}'
Apify CLI:
apify call scrapers_lat/latam-wholesale-food-prices-scraper \--input '{"countries":["mexico","peru"],"products":["tomate"],"days":7,"maxPrices":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per price record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxPrices.
FAQ and troubleshooting
A run returned 0 records. Why?
The product keyword or lookback window matched no published prices (wholesale prices publish on business days). Widen days, clear products, or select both countries. Zero-result runs are not charged.
Which markets are covered?
Mexico's national wholesale market network (SNIIM) and Peru's Gran Mercado Mayorista de Lima (EMMSA). Select one or both in countries.
How does product filtering work?
products matches product names accent-insensitively, so limon matches Limón. Leave it empty to return all products (Peru) or a default staples basket (Mexico).
What do priceMin, priceMax and priceAvg mean? They are the minimum, maximum and average (most frequent) wholesale prices reported for that product/variety/market on that day, in the local currency.
Why is a field null?
The source did not publish that value for the day (for example a missing origin). Missing values are returned as null, never invented.
Is this an official government tool? No. This actor is independent and has no affiliation with SNIIM, EMMSA or any government body. It reads only data these markets publish publicly. Use it in accordance with each source's terms.
Related scrapers
- LATAM Central Banks FX Scraper: FX, policy and inflation rates from LATAM central banks.
- LATAM Stock Exchanges Scraper: Latin American exchange quotes and listed companies.
- Brazil Import & Export Trade Data Scraper: Brazilian trade data by HS code and country.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with SNIIM, EMMSA or any government body. Accesses only publicly published wholesale market prices. Use in accordance with each source's terms.
