Coop APIcoop.it ↗
Access Coop Italy's online grocery catalog via API: product search, category browsing, product details with nutritional data, offers, and store finder.
What is the Coop API?
The CoopShop.it API exposes 8 endpoints covering the full Coop Italy online grocery catalog, from hierarchical category browsing to full product detail pages. The get_product_details endpoint returns structured nutritional information, ingredients, allergens, conservation instructions, and recycling data keyed to individual product slugs. Category navigation supports up to three levels of nesting, and a warehouse_id parameter scopes results to a specific fulfillment location.
curl -X GET 'https://api.parse.bot/scraper/887773c5-cd58-4639-8d2e-34a6cb94ee41/get_categories?warehouse_id=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns the full hierarchy of product categories from the CoopShop catalog, including up to 3 levels of nesting. Each category includes its ID, name, slug, URL, and nested subcategories.
| Param | Type | Description |
|---|---|---|
| warehouse_id | string | Warehouse ID to scope categories. |
{
"type": "object",
"fields": {
"categories": "array of category objects, each containing categoryId, name, slug, itemUrl, description, metaData, and nested categories array"
},
"sample": {
"data": {
"categories": [
{
"name": "Protezioni solari",
"slug": "protezioni-solari",
"itemUrl": "/protezioni-solari",
"categories": [
{
"name": "Viso",
"slug": "protezioni solari/viso",
"itemUrl": "/protezioni solari/viso",
"parentId": 42754,
"categoryId": 42755
}
],
"categoryId": 42754
}
]
},
"status": "success"
}
}About the Coop API
Category and Product Browsing
get_categories returns the full CoopShop category tree with up to three levels of nesting. Each node includes a categoryId, name, slug, itemUrl, and a nested categories array. To drill into a specific branch, get_subcategories accepts a category_slug and returns that category's children array along with breadcrumb and SEO metadata. Once you have a categoryId, get_products_by_category returns a paginated product list with totPages, totItems, and itemsPerPage counters, plus a facets array for filtering. The promo boolean parameter narrows results to promotional items only.
Product Search and Detail
search_products accepts a free-text query string and returns the same paginated structure with facets covering category, brand line, and promotion filters. Each product in any listing response carries productId, name, slug, vendor (with vendorId and name), and mediaURL. To get the full record, pass the slug to get_product_details, which adds structured metaData containing product description, ingredients, allergens, and nutritional information, plus a description field for weight or quantity.
Offers and Suggestions
get_offers returns promotional products for an optional category_id. When no active promotions are found, it falls back to newly added products and sets offer_type to 'new_product' rather than 'promo', so callers can distinguish the two cases. get_suggested_products takes a product_id from any listing result and returns a bounded array of related product objects, useful for recommendation surfaces.
Store Finder
find_stores queries the national Coop physical store directory. At least one of province (2-letter Italian sigla, e.g. 'BO') or city must be supplied. Results include each store's name, cooperativa, address, cap (postal code), and province, alongside pagination fields total, offset, limit, and has_more.
The Coop API is a managed, monitored endpoint for coop.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when coop.it 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.it 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a price-monitoring tool for Italian grocery products using
search_productsandget_product_detailsto track vendor and promotional status over time. - Populate a recipe app's ingredient lookup by querying
search_productsand pulling allergen and nutritional data fromget_product_detailsmetaData. - Render a promotional deals feed using
get_offersfiltered bycategory_id, distinguishing active promos from new arrivals via theoffer_typefield. - Implement a 'you might also like' recommendation section in a grocery comparison app with
get_suggested_productskeyed toproductId. - Sync a category-tree navigation component by fetching
get_categoriesand lazily loading subcategory detail withget_subcategorieson user interaction. - Let users locate the nearest Coop physical store by querying
find_storeswith a province code and paginating through results usingoffsetandhas_more. - Audit product catalog coverage across different warehouses by scoping
get_products_by_categorycalls with distinctwarehouse_idvalues.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Coop Italy offer an official developer API?+
What does get_product_details return beyond a product name and image?+
metaData object containing structured product description, ingredients, allergens, and nutritional information, along with description (weight/quantity), vendor details, and mediaURL for the thumbnail. The slug used as input comes from any listing endpoint such as search_products or get_products_by_category.How does get_offers decide what to return when there are no active promotions?+
offer_type field to 'new_product'. When promotions are found, offer_type is 'promo'. This lets you handle both cases explicitly in your application logic.Does the API return product pricing or stock availability?+
Can I filter search results by brand or dietary attribute?+
search_products and get_products_by_category responses include a facets array describing available filters such as category, promotions, and brand lines, but the endpoints themselves do not currently accept those facet values as direct input parameters. You can fork this API on Parse and revise it to expose facet-based filtering as query parameters.