migros.ch APImigros.ch ↗
Access Migros product catalog via API: search products, browse categories, get nutritional details, and fetch current Swiss supermarket promotions.
curl -X GET 'https://api.parse.bot/scraper/16789456-081c-42ac-8873-4d20dfea4592/search_products?limit=3&query=bread&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword query. Returns a paginated list of products with name, price, brand, images, and breadcrumb categories.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return |
| queryrequired | string | Search keyword (e.g. 'milk', 'bread', 'chocolate') |
| offset | integer | Number of results to skip for pagination |
{
"type": "object",
"fields": {
"total": "integer total number of matching products",
"facets": "object containing filter facets or null",
"products": "array of product objects with uid, migrosId, name, title, offer, images, breadcrumb"
},
"sample": {
"data": {
"total": 100,
"facets": null,
"products": [
{
"uid": 100050222,
"name": "Sils Wreath",
"offer": {
"price": {
"effectiveValue": 2.75,
"advertisedDisplayValue": "2.75"
},
"quantity": "350g"
},
"title": "Sils Wreath · Light-Coloured Flour",
"images": [
{
"cdn": "rokka",
"url": "https://image.migros.ch/d/{stack}/ea5c6aa9b7431610998d44155746b873ac504899/sils-wreath-light-coloured-flour.jpg"
}
],
"migrosId": "111487700500",
"breadcrumb": [
{
"id": "7494733",
"name": "Bread, pastries & breakfast"
}
]
}
]
},
"status": "success"
}
}About the migros.ch API
The Migros.ch API exposes 5 endpoints covering Switzerland's largest supermarket chain, giving you structured access to product search, category browsing, detailed product information, and live promotional offers. The get_product_details endpoint returns fields including allergens, ingredient lists, nutritional values, ratings, and pricing — all in a single response keyed by Migros product ID.
Product Search and Browsing
The search_products endpoint accepts a required query string and optional limit and offset parameters for pagination. Each result in the products array includes uid, migrosId, name, title, offer (price and quantity), images, and a breadcrumb array that maps the product's category hierarchy. The total field tells you how many matches exist, and facets provides filter metadata when available.
The get_products_by_category endpoint takes a category_id (obtained from get_categories) and returns the same product shape, but also includes a subcategories array with nested children and a filters array showing available filter options with id, label, count, and type. To navigate the full category tree, call get_categories first — it returns top_categories with id, name, and slug for each top-level department.
Product Detail and Nutrition
get_product_details takes a single product_id and returns a productInformation object structured into three sections: mainInformation (allergens, labels, ratings), nutrientsInformation (per-product nutritional breakdown), and otherInformation. This endpoint is the only one that exposes allergen and ingredient data, making it the right call when you need full compliance or dietary filtering beyond what search results carry.
Promotions and Offers
The get_offers endpoint returns current promotional items with startDate and endDate for the promotion window, a weekendPromotions object with its own start date and item list, and an upcomingPromotions field (or null when none are scheduled). Promoted products include discount badges and full offer details. Pagination uses a 0-based page parameter alongside limit.
- Build a price comparison tool tracking Migros product prices and promotional discounts over time using
get_offers - Power a recipe ingredient checker by pulling allergen and nutritional data via
get_product_details - Create a category-level inventory snapshot using
get_products_by_categorywith subcategory traversal - Monitor active Swiss supermarket promotions and their date ranges for deal-alert notifications
- Populate a product catalog or database with Migros breadcrumb categories, images, and brand titles
- Build dietary filter tooling using
mainInformationallergen and label fields from detailed product responses - Implement autocomplete or search suggestions backed by
search_productswith keyword queries
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Migros have an official public developer API?+
How does pagination work across the endpoints?+
search_products and get_products_by_category both use offset and limit integer parameters. The total field in each response tells you the full result count so you can calculate how many pages remain. get_offers uses a 0-based page parameter combined with limit.Does `get_product_details` return customer reviews or review text?+
rating value inside the mainInformation object, but individual review text and reviewer details are not part of the response. You can fork this API on Parse and revise it to add an endpoint targeting per-product review content.Are store-level inventory or stock availability data included?+
How do I find the right category ID to use with `get_products_by_category`?+
get_categories first — it returns a top_categories array where each object includes an id, name, and slug. Pass that id directly to get_products_by_category. The subcategories array in that response contains child category IDs you can use for deeper traversal.