Intermarché API & Scraper
Intermarché prices are set per store.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
On 2026-11-03 the same search for milk listed 492 products at Intermarché Super Elne and 235 at a Marseille Express, and Grandlait fresh milk 1 l cost 1.62 € in Elne and 1.83 € in Marseille. Every call therefore names its store (store_id from the stores action) and the answer says which store it was priced for. `product` takes an EAN barcode and a store and returns the price charged now, the unit price per kg or litre, the struck price on an immediate reduction, the previous price and the lowest recent price the site publishes, the VAT rate, loyalty-card offers with their percentage, credited amount and end date, the store's stock count, and the food facts: nutrition per 100 g/ml, ingredients, allergens, manufacturer, origin and storage. `search` returns 33 to 40 products per page with the same prices, offers and stock, plus the site's brand and category counts for narrowing a search. `stores` finds Intermarché stores from a French postcode, a town name or a point.
What an Intermarché field actually contains
Fields that read differently from how they look. Every row was measured against live intermarche.com responses on 2026-11-03.
| Field | What it holds |
|---|---|
| store, store_defaulted | The store the prices, assortment and stock belong to. Without store_id the answer is priced for Intermarché Super Elne (06829) and store_defaulted is true. |
| price | The price charged now for one unit at that store. Lactel Matin Léger 6 × 1 l: 10.39 in Elne, 10.38 in Marseille. |
| was_price, discount_percent | Only on an immediate reduction, the struck price: 4.93 to 3.45, discount_percent 30.0. Null otherwise (4 of 155 search rows had one). |
| promotions[], loyalty_offer | Each offer with type, percent, end date and, for loyalty-card offers, loyalty_amount: money credited to the card after purchase. Loyalty offers never lower price. |
| loyalty_amount | The credited amount exactly as the site publishes it. It can disagree with the percentage (5 % of 6.00 € published as 0.00); both are returned as they are. |
| previous_price, lowest_recent_price | The site's previous price and its lowest recent price for the product. previous_price was published on 81 of 155 search rows. |
| unit_price, unit | The comparison price per kg, l or piece: 1.73 per l for the 6 × 1 l pack. |
| stock_quantity | The store's stock count for the product: 28 in Elne and 2 in Marseille for the same pack. |
| product_id | The EAN-13 barcode. A search row's product_id goes straight into product, which returned the same price and stock 10 times out of 10. |
Prices are in euros including VAT, as on intermarche.com. The price is the store's online ordering price; a separate shelf price is not published.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/intermarche/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "lait",
"store_id": "06829"
}
}{
"ok": true,
"meta": {
"api": "intermarche",
"endpoint": "search",
"mode": "live",
"latency_ms": 6101.1,
"record_count": 38,
"bytes": 529509,
"cache_hit": false,
"tiles_dropped": 2,
"store_id": "06829",
"store_defaulted": false,
"upstream_requests": 3,
"refusals": 1,
"session_opens": "[redacted-secret]",
"charged_credits": 3,
"version": "0.1.1",
"request_id": "221ec62917784017",
"queue_ms": 1.2,
"fetched_at": "2026-11-03T17:29:09.446Z"
},
"data": {
"products": [
{
"position": 1,
"product_id": "3533630097654",
"ean": "3533630097654",
"item_id": "127871",
"name": "Grandlait frais - Lait frais de Montagne entier",
"brand": "Grandlait",
"pack_size": "la bouteille de 1 l",
"net_volume": 1000,
"url": "https://www.intermarche.com/produit/grandlait-frais-lait-frais-de-montagne-entier/3533630097654",
"image": "https://assets-big.cdn-mousquetaires.com/medias/domain11815/media140040/12012075-ubbxcayb3o-ecommint.jpg",
"images": [
"https://assets-big.cdn-mousquetaires.com/medias/domain11815/media140040/12012075-ubbxcayb3o-ecommint.jpg",
"https://cdn.intermarche.com/fr/Content/images/pim/03533630097654/d8652149b5084e5fbc19683d2e21fb1b.jpg"
],
"price": 1.62,
"currency": "EUR",
"was_price": null,
"discount_percent": null,
"unit_price": 1.62,
"unit": "l",
"previous_price": 1.64,
"lowest_recent_price": 1.62,
"price_decreasing": false,
"promotions": [],
"loyalty_offer": false,
"banner": null,
"stock_quantity": 2,
"available": true,
"max_quantity": 2,
"flags": [
"contenance moyenne"
],
"category_id": "5963",
"department_id": "2233",
"seller": "Intermarché",
"sponsored": false,
"online_exclusive": false,
"is_lot": false
},
{
"position": 2,
"product_id": "3250390153825",
"ean": "3250390153825",
"item_id": "6315",
"name": "Lait demi-écrémé stérilisé UHT",
"brand": "Pâturages, une marque Intermarché",
"pack_size": "les 6 briques de 1l - 6l",
"net_volume": 6000,
"url": "https://www.intermarche.com/produit/lait-demi-ecreme-sterilise-uht/3250390153825",
"image": "https://assets-big.cdn-mousquetaires.com/medias/domain11815/media140403/12121191-pgo67a2g0n-ecommint.jpg",
"images": [
"https://assets-big.cdn-mousquetaires.com/medias/domain11815/media140403/12121191-pgo67a2g0n-ecommint.jpg",
"https://cdn.intermarche.com/fr/Content/images/boitmal/produit/zoom/48EEE155FF66B195AC9E46E435840C28.jpg"
],
"price": 6,
"currency": "EUR",
"was_price": null,
"discount_percent": null,
"unit_price": 1,
"unit": "l",
"previous_price": null,
"lowest_recent_price": 6,
"price_decreasing": false,
"promotions": [
{
"type": "[trimmed-depth]",
"code": "[trimmed-depth]",
"loyalty": "[trimmed-depth]",
"percent": "[trimmed-depth]",
"value": "[trimmed-depth]",
"value_unit": "[trimmed-depth]",
"loyalty_amount": "[trimmed-depth]",
"amount": "[trimmed-depth]",
"min_quantity": "[trimmed-depth]",
"max_uses": "[trimmed-depth]",
"end_date": "[trimmed-depth]",
"flash_sale": "[trimmed-depth]",
"card_reward_type": "[trimmed-depth]"
}
],
"loyalty_offer": true,
"banner": "Le quotidien à prix bas",
"stock_quantity": 65,
"available": true,
"max_quantity": 65,
"flags": [
"100% lait français"
],
"category_id": "5961",
"department_id": "2233",
"seller": "Intermarché",
"sponsored": false,
"online_exclusive": false,
"is_lot": false
},
{
"position": 3,
"product_id": "3250390012054",
"ean": "3250390012054",
"item_id": "6317",
"name": "Lait demi-écrémé stérilisé UHT",
"brand": "Pâturages, une marque Intermarché",
"pack_size": "les 6 bouteilles de 1L",
"net_volume": 6000,
"url": "https://www.intermarche.com/produit/lait-demi-ecreme-sterilise-uht/3250390012054",
"image": "https://assets-big.cdn-mousquetaires.com/medias/domain11815/media140819/12245973-yag9pvas9i-ecommint.jpg",
"images": [
"https://assets-big.cdn-mousquetaires.com/medias/domain11815/media140819/12245973-yag9pvas9i-ecommint.jpg",
"https://cdn.intermarche.com/fr/Content/images/boitmal/produit/zoom/C86D9CA4C78A27E1D2170FDE83318126.jpg"
],
"price": 6.36,
"currency": "EUR",
"was_price": null,
"discount_percent": null,
"unit_price": 1.06,
"unit": "l",
"previous_price": null,
"lowest_recent_price": 6.36,
"price_decreasing": false,
"promotions": [
{
"type": "[trimmed-depth]",
"code": "[trimmed-depth]",
"loyalty": "[trimmed-depth]",
"percent": "[trimmed-depth]",
"value": "[trimmed-depth]",
"value_unit": "[trimmed-depth]",
"loyalty_amount": "[trimmed-depth]",
"amount": "[trimmed-depth]",
"min_quantity": "[trimmed-depth]",
"max_uses": "[trimmed-depth]",
"end_date": "[trimmed-depth]",
"flash_sale": "[trimmed-depth]",
"card_reward_type": "[trimmed-depth]"
}
],
"loyalty_offer": true,
"banner": null,
"stock_quantity": 127,
"available": true,
"max_quantity": 99,
"flags": [
"100% lait français"
],
"category_id": "5961",
"department_id": "2233",
"seller": "Intermarché",
"sponsored": false,
"online_exclusive": false,
"is_lot": false
}
],
"total": 492,
"pagination": {
"page": 1,
"per_page": 40,
"last_page": 13,
"has_more": true
},
"facets": {
"selection": [
{
"id": "3",
"label": "Promotions",
"count": 14
},
{
"id": "2",
"label": "Produits Intermarché",
"count": 129
},
{
"id": "4",
"label": "Nouveauté",
"count": 3
}
],
"categories": [
{
"id": "5462",
"label": "Lait et Soin corps",
"count": 83
},
{
"id": "5961",
"label": "Laits demi-écrémés",
"count": 38
},
{
"id": "16594",
"label": "Chèvres et Brebis",
"count": 32
}
],
"promotion_types": [
{
"id": "4",
"label": "Avantages fidélités",
"count": 103
},
{
"id": "3",
"label": "Les remises",
"count": 6
},
{
"id": "2",
"label": "Les Lots",
"count": 4
}
],
"brands": [
{
"id": "11303",
"label": "Pâturages, une marque Intermarché",
"count": 84
},
{
"id": "2954",
"label": "Lactel",
"count": 37
},
{
"id": "3704",
"label": "Mixa",
"count": 29
}
],
"preferences": [
{
"id": "569",
"label": "Producteurs d'ici",
"count": 2
},
{
"id": "156",
"label": "Sans lactose",
"count": 12
},
{
"id": "162",
"label": "Sans gluten",
"count": 5
}
]
},
"store": {
"store_id": "06829",
"name": "Intermarche Super Alimentaire Elne",
"banner": "INTERMARCHE",
"format": "SUPER ALIMENTAIRE",
"address": "10 Boulevard Jacques Albert",
"postal_code": "66200",
"city": "Elne",
"latitude": 42.605464,
"longitude": 2.977313,
"distance_km": null,
"online_services": [
"A_DOMICILE",
"DRIVE"
],
"url": "https://www.intermarche.com/magasins/06829/x/infos-pratiques"
},
"store_defaulted": false,
"filters": {},
"query": "lait"
}
}What the Intermarché API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search intermarche.com by keyword for one store, with the site's filters (promotion, loyalty-card offer, brand, category). 40 per page on the site, 35-40 products per page here. | Pricing teams call search to search intermarche.com by keyword for one store, with the site's filters (promotion, loyalty-…. | query, store_id, page, on_promotion, loyalty_offer, ... |
| product | One Intermarché product in full by EAN for one store: price, struck price, previous and lowest recent price, unit price, VAT rate, loyalty-card offers with start and end dates, stock, Nutri-Score, Yuka score, nutrition per 100 g/ml, ingredients, allergens, manufacturer, origin, storage, labels, images. | Marketplace operators call product to get one Intermarché product in full by EAN for one store. | ean, store_id |
| stores | Intermarché stores near a French postcode, a town or a point, with the store_id the other actions take, format, address and (for a point) distance. | Catalog enrichment teams call stores to get intermarché stores near a French postcode, a town or a point, with the store_id the other act…. | postal_code, city, latitude, longitude |
Call search from your stack
curl -X POST https://api.reefapi.com/intermarche/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"lait","store_id":"06829"}'import requests
r = requests.post(
"https://api.reefapi.com/intermarche/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "lait",
"store_id": "06829"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/intermarche/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "lait",
"store_id": "06829"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.intermarche.search with {"query":"lait","store_id":"06829"}.Who uses this API and why
- Refresh a fixed list of EANs every day at the Intermarché stores your users shop at.
- Compare an Intermarché basket with Carrefour, E.Leclerc and Auchan in the same town.
- Track Intermarché immediate reductions and loyalty-card offers with their end dates.
- Build a French grocery product base with EAN, nutrition, ingredients and allergens.
- Map Intermarché stores and their formats around a set of postcodes.
Questions developers ask before integrating
Do I need an Intermarché account or loyalty card?
No. The data is what a visitor sees on intermarche.com after choosing a store: prices, offers, stock and product facts.
How do I get prices for one Intermarché store?
Call stores with a town (Marseille returns 27 stores, Elne 1) or a postcode (66200), take the store_id and pass it to product or search.
Can I look a product up by EAN?
Yes. product takes the EAN and a store_id. Typing an EAN into the site's search finds nothing, so EAN lookups go through product, one call per product and store.
Do prices really differ between Intermarché stores?
Yes. On 2026-11-03 Grandlait fresh milk 1 l was 1.62 € in Elne and 1.83 € in Marseille, and the milk search listed 492 products in Elne against 235 in a Marseille Express.
Is the loyalty-card offer included in the price?
No. Loyalty offers are credited to the card after purchase, so they are returned in promotions with their percentage, amount and end date, and price stays the till price.
Which filters work?
on_promotion (milk at Elne: 492 to 12), loyalty_offer (103), brand_id (Lactel: 36) and category_id (semi-skimmed milk: 38), each checked against the unfiltered result. The brand and category ids come back in facets with their product counts.
How many products can I page through?
The site lists 40 per page; recipe and editorial tiles are removed, so a page carries 33 to 40 products. Milk at Elne ran to 13 pages, with no product repeated across pages 1 to 3. A page past the last returns no product.
How fresh is the data?
Every call reads intermarche.com live; nothing is cached.
What is the Intermarché API?
Intermarché API is a ReefAPI endpoint group for intermarché store prices by ean and search, with loyalty offers, stock, nutrition and a store finder. It returns live JSON through POST requests under /intermarche/v1.
Is the Intermarché API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Intermarché calls use the same shared credit balance as every other ReefAPI engine.
Do I need an Intermarché login or account?
No login to Intermarché is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Intermarché data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Intermarché API use?
Intermarché actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Intermarché from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call intermarche actions with the same key, credit pool and JSON envelope used by normal REST requests.