coop.ch APIcoop.ch ↗
Access Coop.ch product data via API: search the catalog, retrieve pricing, nutrition facts, ingredients, reviews, and category listings from Switzerland's Coop supermarket.
curl -X GET 'https://api.parse.bot/scraper/99465d88-0759-4842-bad2-6aac9ca985b2/search_products' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword. Returns a list of matching products with basic info.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number |
| limit | integer | Number of results per page |
| queryrequired | string | Search keyword |
| filters | string | Additional filter string (e.g. ':availableOnline:true') |
{
"type": "object",
"fields": {
"total": "integer",
"products": "array",
"pagination": "object"
},
"sample": {
"total": 150,
"products": [
{
"code": "3081655",
"name": "Bio Milch Drink",
"brand": "Naturaplan",
"price": "1.90",
"image_url": "..."
}
],
"pagination": {
"numberOfPages": 5,
"totalNumberOfResults": 150
}
}
}About the coop.ch API
The Coop.ch API covers 4 endpoints that expose Switzerland's Coop supermarket product catalog, including prices, nutrition facts, ingredients, labels, and customer reviews. The get_product_details endpoint returns over 10 distinct fields per product — from brandName and price.formattedValue to a full ingredients string and reviews array — while search_products lets you query the catalog by keyword with pagination and filter controls.
Product Search and Browsing
The search_products endpoint accepts a query string and returns a paginated list of matching products alongside a pagination object and a total count. You can narrow results with the filters parameter using Coop's filter syntax (for example, :availableOnline:true to restrict to products available for online purchase). Pagination is controlled via page and limit parameters. The get_category_products endpoint works similarly but scoped to a specific category, accepting a category_id (e.g. m_0001) and an optional category_slug for path-based routing.
Product Detail Fields
get_product_details takes a numeric product_id string and returns a single product record with fields covering identity (code, name, brandName), pricing (price.value, price.formattedValue, price.currencyIso in CHF), content (description, ingredients), media (images array with url, format, and usedFor), classification (labels array with id and name), availability (available boolean), and customer feedback (reviews array with alias, comment, date, id, and rating). The ingredients field may contain inline HTML markup to highlight allergens.
Category Navigation
get_categories takes no parameters and returns the full category tree from Coop's main navigation menu as a categories array. Category IDs returned here can be fed directly into get_category_products to enumerate products within any department, from groceries and fresh produce to household goods.
- Track CHF price changes on specific Coop products over time using
price.valuefromget_product_details - Build a Swiss grocery comparison tool by searching multiple supermarkets and aligning results by product name and brand
- Extract allergen information by parsing the HTML-annotated
ingredientsfield for dietary filtering applications - Aggregate customer review ratings across product categories using the
reviewsarray returned byget_product_details - Enumerate Coop's full product taxonomy with
get_categoriesto seed a grocery catalog database - Filter online-available products by passing
:availableOnline:truein thefiltersparameter ofsearch_products - Monitor product label certifications (organic, fair trade, etc.) via the
labelsarray on individual product records
| 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 Coop.ch have an official public developer API?+
What does the `get_product_details` endpoint return for pricing, and is it in CHF?+
price object contains three fields: value (a numeric amount), formattedValue (a display string), and currencyIso (the ISO currency code, which is CHF for Swiss franc prices on coop.ch). All prices reflect the in-store and online price listed on the product page at retrieval time.Does the ingredients field return plain text or structured data?+
ingredients field returns a string that may contain inline HTML markup — specifically to mark allergen terms. If you need plain text, you will need to strip the HTML tags client-side. Structured allergen data as discrete fields is not currently returned. You can fork the API on Parse and revise it to parse and expose allergens as a separate structured field.Does the API cover Coop's weekly promotions or special offers?+
get_product_details, but there is no endpoint for listing active discounts or weekly specials. You can fork the API on Parse and revise it to add a promotions endpoint.How does pagination work across search and category endpoints?+
search_products and get_category_products accept page (integer, zero- or one-indexed depending on the catalog) and limit parameters. Each response includes a total integer and a pagination object you can use to determine whether additional pages exist. There is no cursor-based pagination — page-number iteration is the supported pattern.