Discover/Coop API
live

Coop APIcoop.ch

Search and browse Coop.ch's product catalog via API. Get prices, nutrition facts, ingredients, reviews, and category listings for Swiss grocery products.

Endpoint health
verified 2d ago
get_categories
search_products
get_product_details
get_category_products
4/4 passing latest checkself-healing
Endpoints
4
Updated
26d ago

What is the Coop API?

The Coop.ch API provides 4 endpoints for searching and browsing Switzerland's Coop supermarket product catalog. Use search_products to find items by keyword and get back pricing, brand, availability, and ratings, or use get_category_products for paginated browsing through specific departments. Product detail responses include structured nutrition facts, ingredient lists with allergen markup, customer reviews, and image URLs.

Try it
Search keyword.
api.parse.bot/scraper/99465d88-0759-4842-bad2-6aac9ca985b2/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/99465d88-0759-4842-bad2-6aac9ca985b2/search_products?query=milch' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace coop-ch-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.coop.ch_grocery_api import Coop, Product, ProductDetail, Category, CategoryProduct

coop = Coop()

# Search for products by keyword
for product in coop.products.search(query="milch"):
    print(product.name, product.price, product.currency, product.available)

# Get full details for a search result
products = list(coop.products.search(query="brot", limit=3))
if products:
    detail = products[0].details()
    print(detail.name, detail.brand_name)
    print(detail.price.formatted_value, detail.price.currency_iso)
    for review in detail.reviews:
        print(review.alias, review.rating, review.date)

# List all available categories
for category in coop.categories.list():
    print(category.id, category.name, category.url)

# Browse products in a specific category
fruit_veg = coop.category(id="m_0001")
for item in fruit_veg.products(slug="food/fruit-vegetables"):
    print(item.code, item.name, item.brand, item.price, item.rating_value)
All endpoints · 4 totalmissing one? ·

Search for products by keyword on Coop.ch. Returns matching products with basic info (name, brand, price, rating) plus related sub-categories via the suggest layer. Returns up to 5 product results per query. Not paginated; use get_category_products for paginated browsing.

Input
ParamTypeDescription
queryrequiredstringSearch keyword.
Response
{
  "type": "object",
  "fields": {
    "total": "integer - total number of results across all result types",
    "products": "array of product objects with code, name, brandName, price, currency, priceValue, available, averageRating, numberOfRatings, url, imageUrl, primaryCategory",
    "pagination": "object with totalNumberOfResults, numberOfPages, currentPage, pageSize",
    "subCategories": "array of related category objects with code, name, productsCount"
  },
  "sample": {
    "data": {
      "total": 18,
      "products": [
        {
          "url": "/food/dairy-products-eggs/milk/uht-milk/milchdrink-uht-15/p/6849615",
          "code": "6849615",
          "name": "Milchdrink UHT 1.5%",
          "price": "0.95",
          "currency": "CHF",
          "imageUrl": "//www.coop.ch/img/produkte/90_90/RGB/6849615_001.jpg",
          "available": true,
          "brandName": "Coop",
          "priceValue": 0.95,
          "averageRating": 4.5,
          "numberOfRatings": 98,
          "primaryCategory": "UHT Milk"
        }
      ],
      "pagination": {
        "pageSize": 15,
        "currentPage": 0,
        "numberOfPages": 1,
        "totalNumberOfResults": 13
      },
      "subCategories": [
        {
          "code": "milchprodukte_glutenfrei",
          "name": "Gluten-free Dairy Products",
          "productsCount": 50
        }
      ]
    },
    "status": "success"
  }
}

About the Coop API

What the API Covers

The Coop.ch API exposes four endpoints covering the full product discovery workflow on Switzerland's Coop online grocery store. search_products accepts a keyword query and returns up to 5 matching products per call, each with code, name, brandName, price, priceValue, currency, available, averageRating, and numberOfRatings, alongside a subCategories array identifying related departments. For broader catalog browsing, get_category_products supports 0-based pagination via the page and limit parameters and returns product tiles including imageUrl, ratingValue, and ratingAmount.

Product Detail and Category Structure

get_product_details takes a numeric product_id — sourced from either search or category results — and returns the most complete view: full description, ingredients (including HTML-marked allergen highlights), a structured price object with formattedValue and value, an images array with format and usage metadata, labels (e.g. dietary certifications), and a reviews array with per-review alias, comment, date, and rating. get_categories requires no inputs and returns the complete navigation tree of top-level and sub-level categories, each with an id (e.g. m_0001), display name, and relative url path usable as a category_slug in get_category_products.

Pagination and Search Limits

search_products is not paginated and caps results at 5 products per query. The pagination object in the response still reports totalNumberOfResults and numberOfPages, which is useful for gauging how much deeper a category browse might go. For full traversal of a department, pass the category_id from get_categories into get_category_products along with an optional category_slug to ensure the correct URL path is resolved. Page numbering is 0-based across all paginated endpoints.

Reliability & maintenanceVerified

The Coop API is a managed, monitored endpoint for coop.ch — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when coop.ch changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official coop.ch API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track CHF price changes on specific Coop products over time using priceValue from search or category results
  • Build a Swiss grocery price comparison tool pulling brandName, price, and available fields across product categories
  • Extract allergen and ingredient data from ingredients HTML for dietary restriction filtering applications
  • Aggregate customer sentiment by collecting averageRating and numberOfRatings across a product category
  • Populate a recipe cost estimator by mapping ingredient names to Coop product prices via search_products
  • Catalog Coop's full product taxonomy using get_categories to enumerate all department IDs and URL slugs
  • Monitor product availability (available boolean) for out-of-stock alerting on specific product codes
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Coop.ch have an official public developer API?+
Coop does not publish a public developer API or documentation for third-party access to its product catalog. This Parse API provides structured access to Coop.ch product data without requiring a developer agreement with Coop.
What does get_product_details return beyond what search results include?+
get_product_details adds fields not present in search or category listings: a full description, an ingredients string with HTML allergen markup, a labels array (e.g. organic or dietary certifications), an images array with format and usage metadata, and a reviews array with individual review text, date, and rating. The product_id input maps directly to the code field returned by search_products or get_category_products.
Why does search_products only return up to 5 results?+
search_products uses the suggest layer of the Coop catalog and is designed for quick keyword lookups, not full catalog traversal. The pagination object in the response reports the true totalNumberOfResults, so you can gauge scope. For paginated access to all products in a department, use get_category_products with a category_id from get_categories.
Does the API return stock levels, promotional pricing, or delivery slot data?+
Not currently. The API exposes a boolean available field and standard shelf pricing via priceValue and formattedValue, but does not include store-level stock quantities, promotional or multi-buy pricing, or delivery availability. You can fork this API on Parse and revise it to add an endpoint targeting those data surfaces.
Are nutrition facts (calories, macros) included in the product detail response?+
The get_product_details endpoint returns a description and ingredients field but does not currently expose a structured nutrition facts object with per-nutrient values like calories or macronutrients. You can fork this API on Parse and revise it to add a nutrition-focused endpoint for products where that data is published on the product page.
Page content last updated . Spec covers 4 endpoints from coop.ch.
Related APIs in Food DiningSee all →
coop.it API
Search and browse Coop Italy's product catalog across categories and subcategories to find detailed information about items, prices, and current offers. Discover product recommendations and get comprehensive details including availability and promotional deals to help you shop more efficiently.
migros.ch API
Search and browse Migros' product catalog to find items by name or category, view detailed product information, and discover current promotional offers. Get everything you need to shop smarter at Switzerland's leading supermarket.
ocado.com API
Search and browse Ocado UK's grocery catalog, view detailed product information including nutritional data, and discover related items to add to your cart. Get instant search suggestions and manage your shopping cart contents all in one place.
coles.com.au API
Search and browse Coles supermarket products by category, view detailed product information, and discover current specials all in one place. Find exactly what you're looking for with powerful search functionality and organized category navigation.
carrefour.eu API
Search and browse Carrefour's European online product catalog to access pricing, promotions, availability, and detailed product information including nutritional data. Retrieve comprehensive product details across categories to compare prices and find current deals in real-time.
toppreise.ch API
Search and compare product prices across Swiss retailers on Toppreise.ch, view detailed specifications, track price history, and discover the best shops for any item. Find exactly what you're looking for with comprehensive product details and real-time pricing information.
carrefour.it API
Search and browse Carrefour Italy's product catalog across categories, view detailed product information, find nearby store locations, and discover current promotions all in one place. Explore online grocery selections and compare products by price, brand, and availability.
superc.ca API
Search for products and browse categories at Super C, a Canadian grocery chain, then view detailed product information and find nearby store locations by postal code. Get real-time access to pricing, availability, and inventory across Super C's network.