Discover/marktguru API
live

marktguru APImarktguru.de ↗

Fetch current weekly supermarket offers, prices, and promotions across German retailers by postal code. Search by product keyword or retailer slug.

Endpoint health
verified 1h ago
get_weekly_promotions
list_supermarkets
get_retailer_offers
search_offers
4/4 passing latest checkself-healing
Endpoints
4
Updated
2h ago

What is the marktguru API?

The marktguru.de API exposes 4 endpoints covering current weekly promotional offers from German supermarkets. Use list_supermarkets to discover which retailers have active leaflets for any 5-digit German postal code, then pull per-retailer offer pages with get_retailer_offers, query across all chains at once with get_weekly_promotions, or search by product keyword with search_offers. Each offer includes promotional price in EUR, old price, reference price per unit, brand, and product description.

This call costs2 credits / call— charged only on success
Try it
5-digit German postal code, leading zeros preserved (e.g. 99084). Omitted = the site's default location.
→ api.parse.bot/scraper/8ad337ef-7e61-410e-9d6a-274d4ee45e93/<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/8ad337ef-7e61-410e-9d6a-274d4ee45e93/list_supermarkets?zip_code=99084' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 4 totalmissing one? ·

Lists the supermarket retailers that currently have offers for a German postal code. One round trip; returns up to 200 retailers in one call (total_results reports how many the site has). Each row carries retailer_id, retailer_slug (the identifier accepted by get_retailer_offers) and the display name. When zip_code is omitted the site's default location (Berlin Mitte, 10178) is used and echoed in zip_code.

Input
ParamTypeDescription
zip_codestring5-digit German postal code, leading zeros preserved (e.g. 99084). Omitted = the site's default location.
Response
{
  "type": "object",
  "fields": {
    "zip_code": "postal code the list was resolved for",
    "retailers": "array of retailers: retailer_id (integer), retailer_slug (string, use as retailer_slug in get_retailer_offers), retailer_name (display name)",
    "total_results": "integer, number of supermarket retailers the site reports for this postal code"
  },
  "sample": {
    "data": {
      "zip_code": "99084",
      "retailers": [
        {
          "retailer_id": 126802,
          "retailer_name": "REWE",
          "retailer_slug": "rewe"
        },
        {
          "retailer_id": 126806,
          "retailer_name": "REWE Dortmund",
          "retailer_slug": "rewe-dortmund"
        }
      ],
      "total_results": 101
    },
    "status": "success"
  }
}

About the marktguru API

Retailer Discovery and Offer Pages

Start with list_supermarkets, passing a zip_code (5-digit German postal code, e.g. 99084) to receive an array of retailers currently advertising offers in that area. Each row exposes retailer_id, retailer_slug, and retailer_name. The retailer_slug is the identifier accepted by get_retailer_offers and get_weekly_promotions. total_results tells you how many retailers the source reports — the call returns up to 200 in one response.

get_retailer_offers pages through a specific retailer's active promotional offers. Pass retailer_slug and an optional zip_code. The limit parameter is clamped to 100; use offset together with the has_more boolean and total_results integer to walk through all pages. Each offer in the offers array carries offer_id, product_name, description (pack size and variants), brand, price (EUR), old_price (EUR or null when no prior price is listed), reference_price, reference_unit, and image_url (null when no image is available).

Cross-Retailer Search and Weekly Promotions

search_offers accepts a free-text query (e.g. Kaffee, Butter, or a brand name) and returns matching offers across all retailers for the given zip_code. The response shape is identical to get_retailer_offers — same offer fields, same pagination via limit, offset, has_more, and total_results.

get_weekly_promotions fetches the current weekly promotional offers for several major chains in one call. By default it covers Lidl, ALDI NORD, ALDI SÜD, Kaufland, REWE, Markant Nord, Markant NW, EDEKA, PENNY, and Netto Marken-Discount. You can override this with the retailers parameter, supplying a comma-separated list of retailer_slug values. The response includes a flat offers array across all requested retailers and a per-retailer retailers coverage array reporting retailer_slug and total_results for each.

Reliability & maintenanceVerified

The marktguru API is a managed, monitored endpoint for marktguru.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when marktguru.de 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 marktguru.de 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
1h 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 weekly price drops on grocery products across German discounters using old_price vs price fields.
  • Build a price comparison tool for a specific postal code by iterating get_retailer_offers across slugs from list_supermarkets.
  • Monitor promotional prices for a specific brand or product type with search_offers using keyword queries.
  • Aggregate all major discounter leaflets in one request via get_weekly_promotions for a given zip_code.
  • Identify which retailers are active in a given German region using list_supermarkets and its total_results count.
  • Feed reference_price and reference_unit data into a unit-price comparison for grocery shopping apps.
  • Alert users when a product matching their search query drops below a price threshold using offer_id and price fields.
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 marktguru.de have an official developer API?+
marktguru.de does not publish an official public developer API or developer portal for third-party access to its offer data.
How do I page through all of a retailer's offers when there are more than 100?+
The limit parameter in get_retailer_offers is clamped to a maximum of 100. Use the offset parameter to advance through pages. After each response, check the has_more boolean: if true, increment offset by your limit and make another request. total_results tells you the total offer count for that retailer and postal code so you can calculate how many pages remain.
Is offer data available for all of Germany or only certain regions?+
The API resolves offers by 5-digit German postal code. Coverage depends on which retailers have active leaflets for a given zip_code. list_supermarkets reports total_results for the requested postal code, so querying it first tells you whether a given area has active retailer coverage before fetching offer pages.
Does the API expose historical offer data or past leaflets?+
Not currently. All four endpoints return only currently active promotional offers — there is no date-range parameter or archive endpoint for past weeks' prices. You can fork this API on Parse and revise it to add an endpoint targeting historical leaflet data if the source exposes it.
Can I retrieve store-level details such as store addresses, opening hours, or specific branch identifiers?+
Not currently. The API returns retailer-level data (retailer_id, retailer_slug, retailer_name) and offer-level pricing data. Individual store locations, addresses, and opening hours are not fields in any response. You can fork this API on Parse and revise it to add a store-detail endpoint if that data is available on the source.
Page content last updated . Spec covers 4 endpoints from marktguru.de.
Related APIs in Food DiningSee all →
penny.de API
Access data from Penny.de.
kaufland.de API
Search for current deals and discounts at Kaufland Germany stores, viewing detailed pricing information and offer validity periods. Find nearby store locations and browse the latest promotional products all in one place.
metro.de API
Search and retrieve product information from Metro Germany's Online Marketplace and Wholesale Store, including detailed product data and refrigeration subcategories. Find exactly what you're looking for across both retail channels with comprehensive product listings and specifications.
shop.rewe.de API
Search for grocery products across REWE's online catalog and instantly see current prices for your specific German postal code. Find the items you need with real-time pricing information to compare costs and plan your shopping efficiently.
colruyt.be API
Access data from colruyt.be.
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.
rewe.de API
Search REWE online shop products with local delivery pricing by German postal code, browse the delivery catalog, and check whether delivery or pickup is available in a given area.
aldi.de API
Browse current and upcoming Aldi Nord offers, search products, and discover deals organized by category or date. Access detailed product information, weekly flyers, and explore items across all available categories to find the best bargains.