Discover/Super C API
live

Super C APIsuperc.ca ↗

Access Super C grocery data via API: search products by keyword, browse 23 categories, get product details with ingredients, and find stores by postal code.

Endpoint health
verified 2d ago
search_products
get_store_by_postal_code
get_product_details
get_categories
get_category_products
5/5 passing latest checkself-healing
Endpoints
5
Updated
24d ago

What is the Super C API?

The Super C API exposes 5 endpoints covering product search, category browsing, product details, and store lookup for Super C, a Quebec-based grocery chain. search_products returns up to 42 results per query sorted by price ascending, with fields like price, unit_price, brand, format, and image_url. get_product_details adds ingredients, description, and product attributes not returned in search.

This call costs1 credit / call— charged only on success
Try it
1-based result page number in the site's fixed pagination (up to 42 products per page). Use has_more from the previous response to know whether page+1 exists. A value below 1 returns a stale_input error.
Search keyword in French or English (e.g. 'lait', 'pain', 'poulet').
Numeric Super C store identifier from get_store_by_postal_code stores[*].store_id (one shape: '633'). When supplied, that store is selected before searching so assortment and prices reflect it; an unknown id returns a stale_input error. Omitting uses the site's default store.
→ api.parse.bot/scraper/3659a62f-08e4-4d9e-a3ca-163af337c7f5/<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/3659a62f-08e4-4d9e-a3ca-163af337c7f5/search_products?query=lait' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 5 totalmissing one? ·

Full-text search over Super C's online grocery catalog by keyword. One round trip per call (two when a store is selected); no automatic multi-page fetching. The site paginates results in fixed pages of up to 42 products; page selects which page is returned (page 1 when omitted), has_more tells whether a further page exists, and total_matches is the site's published count of matching products across all pages ('224 résultats'), while total_results is the number of unique products actually returned on this page. Only genuine search results are returned: the page's sponsored tiles (advertised copies of products already in the grid, and unrelated recommended products such as a ham appearing in a yogurt search) are excluded, and results are deduplicated by product_id, so brand searches such as 'Activia' still return the full brand assortment. Products within the returned page are sorted by numeric price ascending. Search relevance is the site's own: a product can be missing from a generic keyword search while appearing in a brand search, because the site's search index does not match it to that keyword (e.g. some Activia drinkable yogurts are not returned for 'yogourt' on any page). A keyword with no matches returns products as an empty array, total_results 0, total_matches null and has_more false. Query matches product names in French or English. Prices are the online-shopping prices of the selected store; when no store is selected the site's default store is used and its name is returned in store.name. In-store shelf prices are not published separately, so pricing_context is always 'online'. Each product carries the source unit price as-is (unit_price), separate numeric price_per_kg/price_per_lb for products sold by weight, promotion fields (on_promotion, regular_price, promotional_price, discount_amount, discount_percent, multi_buy_quantity/multi_buy_total_price, loyalty_points) that are null when the site does not publish them, and for multipack formats such as '8x93 mL' a recomputed unit_price_calculated over the full package with a unit_price_discrepancy flag when it differs from the source figure. promotion_end_date is never shown on result tiles (always null here) and estimated_weight_g only rarely is; use get_product_details for them. For multi-buy offers such as '2 / 4,00 $', price is the per-unit share (2.00) and price_formatted is the offer text. collected_at is the UTC time the data was fetched.

Input
ParamTypeDescription
pageinteger1-based result page number in the site's fixed pagination (up to 42 products per page). Use has_more from the previous response to know whether page+1 exists. A value below 1 returns a stale_input error.
queryrequiredstringSearch keyword in French or English (e.g. 'lait', 'pain', 'poulet').
store_idstringNumeric Super C store identifier from get_store_by_postal_code stores[*].store_id (one shape: '633'). When supplied, that store is selected before searching so assortment and prices reflect it; an unknown id returns a stale_input error. Omitting uses the site's default store.
Response
{
  "type": "object",
  "fields": {
    "page": "integer — the result page returned (echoes the page input, 1 when omitted)",
    "query": "string — the search keyword used",
    "store": "object — store context used for pricing: store_id (string, echoes the store_id input or null when the default store was used), name (string, store name shown by the site), pricing_context (string, always 'online')",
    "has_more": "boolean — true when the site offers a further result page (page + 1)",
    "products": "array of product objects (genuine search results only, deduplicated by product_id): product_id, name, brand, category, format, url, image_url, price (number, per unit or per multi-buy share), price_formatted, price_unit_label (string such as 'ch.' or 'env. ch.', null for multi-buy offers), unit_price (string, source unit price as displayed), selling_basis ('weight' or 'unit'), price_is_estimated (boolean, price shown as approximate), estimated_weight_g (number or null, rarely published on tiles), price_per_kg, price_per_lb (number or null), plus_taxes (boolean, price shown '+tx'), multi_buy_quantity, multi_buy_total_price (number or null), on_promotion (boolean, Promo badge), regular_price (number or null; null for per-weight regular prices), regular_price_formatted (string or null), promotional_price (number or null, equals price when on_promotion), discount_amount, discount_percent (number or null), promotion_end_date (null on tiles), loyalty_points (integer or null), unit_price_calculated (number or null, price over full multipack quantity), unit_price_calculated_unit (string such as '100 ml'), unit_price_discrepancy (boolean or null)",
    "collected_at": "string — UTC ISO-8601 timestamp of when the data was fetched",
    "total_matches": "integer or null — total number of matching products across all pages as published by the site; null when the site shows no count (no matches)",
    "total_results": "integer — number of unique products returned on this page (0 when the keyword has no matches)"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "Activia",
      "store": {
        "name": "Super C - St-Romuald",
        "store_id": "6131",
        "pricing_context": "online"
      },
      "has_more": false,
      "products": [
        {
          "url": "https://www.superc.ca/allees/produits-laitiers-et-oeufs/yogourts/yogourts-probiotiques/yogourt-probiotique-a-la-vanille-2-2/p/056800098297",
          "name": "Yogourt probiotique à la vanille 2,2 %",
          "brand": "Activia",
          "price": 3.99,
          "format": "650 g",
          "category": "Produits laitiers et œufs",
          "image_url": "https://product-images.metro.ca/images/h72/h12/16838829637662.jpg",
          "plus_taxes": false,
          "product_id": "056800098297",
          "unit_price": "0,61 $ /100g",
          "on_promotion": false,
          "price_per_kg": null,
          "price_per_lb": null,
          "regular_price": null,
          "selling_basis": "unit",
          "loyalty_points": null,
          "discount_amount": null,
          "price_formatted": "3,99 $",
          "discount_percent": null,
          "price_unit_label": "ch.",
          "promotional_price": null,
          "estimated_weight_g": null,
          "multi_buy_quantity": null,
          "price_is_estimated": false,
          "promotion_end_date": null,
          "multi_buy_total_price": null,
          "unit_price_calculated": null,
          "unit_price_discrepancy": null,
          "regular_price_formatted": null,
          "unit_price_calculated_unit": null
        }
      ],
      "collected_at": "2026-09-16T02:28:39+00:00",
      "total_matches": 30,
      "total_results": 30
    },
    "status": "success"
  }
}

About the Super C API

Product Search and Browsing

The search_products endpoint accepts a query string in French or English (e.g. lait, pain, poulet) and returns up to approximately 42 product objects sorted by price ascending. Each result includes product_id, name, brand, category, price (numeric CAD), price_formatted, unit_price, format, url, and image_url. The get_category_products endpoint takes a category_slug from get_categories results (e.g. /allees/fruits-et-legumes) and returns the same product shape for that aisle.

Category Navigation

get_categories requires no inputs and returns approximately 23 top-level category objects, each with name, url, and slug. These slugs feed directly into get_category_products as the category_slug parameter, making it straightforward to iterate over all aisles and collect products.

Product Details

get_product_details accepts a full product URL or path from any search_products or get_category_products result. It returns the full set of product fields plus description, ingredients, and attributes (an array of characteristic strings). These three fields may be null or empty depending on the product — not all listings include structured ingredient or description data.

Store Finder

get_store_by_postal_code accepts an optional Canadian postal_code (e.g. H2X 1Y4). When provided, it returns the nearest Super C stores ordered by proximity. Omitting the parameter returns all stores. Each store object includes name, address, city, postal_code, and phone.

Reliability & maintenanceVerified

The Super C API is a managed, monitored endpoint for superc.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when superc.ca 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 superc.ca 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
5/5 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
  • Compare prices across product categories by iterating get_category_products for multiple slugs and sorting on the price field.
  • Build a grocery price tracker that monitors changes to price and unit_price for specific products over time.
  • Extract ingredient lists and allergen attributes from get_product_details to support dietary filtering applications.
  • Locate the nearest Super C store for a given customer postal code using get_store_by_postal_code.
  • Populate a French-language grocery catalog using French query terms with search_products and the returned name, brand, and format fields.
  • Aggregate all products across all 23 categories for a full-catalog price index using get_categories chained with get_category_products.
  • Enrich product listings with image_url and description for display in a recipe or meal-planning app.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Super C have an official public developer API?+
No. Super C does not publish a public developer API or documented data feed. This Parse API is the way to access Super C product and store data programmatically.
What does `search_products` return and how are results ordered?+
It returns up to approximately 42 product objects sorted by price ascending (cheapest first). Each object includes product_id, name, brand, category, price (numeric CAD), price_formatted, unit_price, format, url, and image_url. There is no parameter to change sort order or page through additional results beyond the first ~42.
Are nutritional facts (calories, macros) available from `get_product_details`?+
Not currently. get_product_details returns ingredients, description, and attributes, but structured nutritional facts like calories or macronutrient breakdowns are not exposed as distinct fields. You can fork this API on Parse and revise it to add a nutritional data endpoint if that information is available on the product page.
Does the API support pagination to retrieve more than ~42 products per search or category?+
Not currently. Both search_products and get_category_products return up to approximately 42 results per call, with no offset or page parameter. You can fork this API on Parse and revise it to add pagination support for deeper result sets.
Can I get store hours or flyer/promotion data through this API?+
Not currently. Store data is limited to name, address, city, postal_code, and phone. Weekly flyers and promotional pricing are not covered by any endpoint. You can fork this API on Parse and revise it to add store hours or flyer data endpoints.
Page content last updated . Spec covers 5 endpoints from superc.ca.
Related APIs in Food DiningSee all →