Prices
Two endpoints per product: aggregated history stats and raw
observations. Both take a product id (rp_ + 32 hex, verbatim from a
search hit) and a date range, and require an API key.
History
Section titled “History”curl -H "X-API-Key: $MEALCP_API_KEY" \ "https://api.mealcp.com/v1/prices/rp_01a0145398b47b208224e57d6f126eb1?from=2026-06-01"| Param | Type | Required | Description |
|---|---|---|---|
from |
date | yes | ISO date, inclusive lower bound |
to |
date | no | Inclusive upper bound; defaults to today |
Live response - a Hungarian UHT milk (Auchan Kedvenc UHT tej 2,8% 1 l)
that dropped 24% over the window:
{ "id": "rp_01a0145398b47b208224e57d6f126eb1", "name": "Auchan Kedvenc UHT tej 2,8% 1 l", "brand": "Auchan", "retailer_slug": "auchan-hu", "currency": "HUF", "from_date": "2026-06-01", "to_date": "2026-08-20", "observation_count": 36, "store_count": 1, "first_price": 315.0, "last_price": 239.0, "min_price": 229.0, "max_price": 315.0, "avg_price": 251.83, "first_observed_at": "2026-07-11T08:36:08.301168Z", "last_observed_at": "2026-08-20T05:30:31.624920Z", "change": -76.0, "change_pct": -24.13}Stats are pooled across every store carrying the product - store_count
tells you how many contributed. change/change_pct are last - first
relative to the first observation in the window. All stats fields are
null when the product has no observations in range.
Raw observations
Section titled “Raw observations”curl -H "X-API-Key: $MEALCP_API_KEY" \ "https://api.mealcp.com/v1/prices/rp_01a0145398b47b208224e57d6f126eb1/observations?from=2026-08-14&page_size=100"Same from/to params as history, plus page (default 1) and page_size
(default 100, max 100).
{ "id": "rp_01a0145398b47b208224e57d6f126eb1", "name": "Auchan Kedvenc UHT tej 2,8% 1 l", "brand": "Auchan", "retailer_slug": "auchan-hu", "from_date": "2026-08-14", "to_date": "2026-08-20", "found": 7, "page": 1, "page_size": 100, "observations": [ { "observed_at": "2026-08-14T05:31:15.949979Z", "price": 239.0, "currency": "HUF", "unit_price": 239.0, "unit_price_uom": "l", "store_id": "st_01a015b29ab07c10b627ef8325164bdf", "store_name": "Auchan HU online", "store_city": null } ]}Unmodified rows - product × store × observation run - at stored precision. Ordered by
observed_at ascending (tiebreak: store). found is the total count for the
window, not the page size. store_id (st_ + hex) is the stable grouping
key across observations.