REWE Scraper for Store-Level Prices and Product Data

Rewe Scraper
Solutions

Scoping a REWE extract

A REWE project starts with the market list, because that list decides what the numbers mean. Give us postcodes, a region, or named wwIdent market IDs, and we resolve each one before any catalogue work begins.

Scope comes next: the full catalogue walked from the sitemaps, a set of categories, or a watchlist of Artikelnummern. Cadence follows the question, daily for price and promotion movement, weekly or monthly for range and label audits. Output is CSV, JSON, XLSX or an API, with a fixed schema, a run timestamp and the source URL on every row.

What a REWE product record holds

A REWE record has two halves, and the seam between them shapes the whole project. One half is national and stable. The other exists only once a market is attached to the session.

  • Artikelnummer - the numeric article number that closes the product URL and keys the record.
  • EAN - carried as gtin13 in the page's Product JSON-LD, beside a separate alphanumeric sku that does not match the URL number.
  • Name, brand and the full category path, for example Käse, Eier & Molkerei / Milch / Frischmilch.
  • Image URLs on img.rewe-static.de, keyed by the zero-padded Artikelnummer.
  • Eigenschaften (properties): Bio, Regional, Gekühlt (chilled), Laktosefrei (lactose free), Vegan, Vegetarisch, Neu (new) and Tiefpreis (standing low price), each held as a machine key plus a German label.
  • Own-label tier, from ja! and REWE Beste Wahl through REWE Bio, REWE Regional, REWE frei von and REWE Feine Welt.
  • Price and Grundpreis (unit price), both resolved per market and per service type.
  • Angebot (promotion) state, and whether the promotion is national or belongs to one market.
  • Maximale Bestellmenge (maximum order quantity) wherever REWE caps a line.
  • Pfand (deposit) on drinks, and the crate surcharge that starts once a basket passes REWE's crate threshold.
  • Market context: the wwIdent market ID, the postcode and the service type that the figures belong to.

The first eight items come back from an anonymous fetch. The price fields do not. In the JSON behind a listing page, each product carries an articles array that stays empty until a market is set, which is why an unscoped crawl of rewe.de returns a complete catalogue with no money in it. Every row we ship states the market ID, postcode and service type it was collected under, so two extracts can be compared without guesswork.

What a REWE product record holds
What REWE scraping adds beyond price

What REWE scraping adds beyond price

German food listings carry more regulated detail than most retail pages, and REWE renders it as structured tabs rather than loose prose, which makes it worth taking.

Nährwerte (nutrition values) arrive as a table headed pro 100 g or pro 100 ml with a % NRV column. The rows follow EU labelling: Energie in both kJ and kcal, Fett (fat) and its saturated share, Kohlenhydrate (carbohydrate) and its sugar share, Ballaststoffe (fibre) where declared, Eiweiß (protein) and Salz (salt). Zutaten (ingredients) and Allergene (allergens) share one tab, with organic components marked by the standard asterisk footnote. Kontaktname and Kontaktadresse give the food business operator behind the pack.

Origin is labelled Ursprung rather than Herkunft, and on fresh produce it frequently holds several countries at once: an apple listing can read Südafrika, Neuseeland, Chile oder Argentinien. A schema that assumes one country per product breaks in the produce aisle, so we keep the raw string alongside a parsed country list. Produce also carries Klasse, the EU quality grade.

Dietary marks appear twice, as Eigenschaften tags and again as Mögliche Auslobungen (possible claims) such as Vegan geeignet. Nutri-Score is on pages where the manufacturer has adopted it, and adoption in Germany is voluntary, so a missing score means unlabelled rather than poor.

Market first, then catalogue

REWE operates supermarkets across Germany and an online shop on the same host. The old shop.rewe.de now redirects to www.rewe.de/shop, so a single domain carries the store finder, the weekly leaflet and the ordering catalogue.

Product pages follow one pattern, /shop/p/{slug}/{Artikelnummer}. The trailing number is the Artikelnummer (article number), which the page also prints under the title and reuses as the record key in the JSON it loads. Category pages sit at /shop/c/{slug}/ and paginate with ?page=N. Store pages use a third scheme, /marktseite/{town}/{marketId}/{name-and-street}/, and that market ID is the same wwIdent value the shop uses internally when it prices a basket.

Measured on 27 August 2026, the two product sitemaps under /sitemaps/ listed 95,585 product URLs between them, next to 3,592 category URLs and 4,217 store pages. Those sitemaps are the sensible entry point for a REWE scraper: REWE publishes paginated category URLs in them outright, while its robots.txt disallows the ?search=, ?sorting= and ?objectsPerPage= parameters. The file states plainly which paths a crawler is meant to walk, and we work inside that.

Little of it holds still. Assortment, promotions and seasonal lines turn over weekly, and REWE labels its own campaigns by Kalenderwoche (calendar week), so a late-August 2026 offer teaser carries KW35-2026 in its campaign parameters.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Questions a REWE feed settles

Teams scrape REWE to answer a narrow set of things: is our line listed, in which markets, at what price, and against which promotion. Germany's full-assortment grocery segment is contested between REWE and Edeka while the discounters press from below, so listing and price movement at REWE is read closely by brand and category managers.

Because REWE prices attach to a market, a single national figure hides most of what people are paid to find. A promotion that runs in one region and not another, a listing that quietly drops out across half the country, a Tiefpreis line held in some markets only - none of that surfaces unless markets are sampled on purpose. We agree the market set with you, then hold it fixed so the series stays comparable from one week to the next.

The Grundpreis does useful work here. German sellers must show it under the Preisangabenverordnung, the price indication ordinance, which normalises to a kilogram or a litre for packaged goods and permits 100 g or 100 ml for loose ones. That makes REWE data comparable across pack sizes without parsing weights out of product titles, and it makes shrinkflation visible as a Grundpreis move while the shelf figure sits still.

Related Case Studies

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days

Scraping supplement products from iHerb.com with full details, including descriptions and packaging variations.

Learn More about The Entire Iherb Supplements Catalog, Captured End-to-End in 3 Days
The Lowest Allegro Prices from 150K Eans Collected

The Lowest Allegro Prices from 150K Eans Collected

Daily scraping of lowest prices for 150K products on Allegro.pl to support marketplace pricing and margin optimization.

Learn More about The Lowest Allegro Prices from 150K Eans Collected
Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset

Regular monitoring of Ralph Lauren clothing, footwear, and accessories sold across Amazon subdomains: AE, DE, ES, FR, IT, NL, PL, UK.

Learn More about Ralph Lauren Monitoring on Amazon, 8 Markets Scanned Into One Clean Dataset
Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

6 E-Commerce Sites Like eBay to Scrape in 2026

6 E-Commerce Sites Like eBay to Scrape in 2026

If you sell online, run a marketplace, or advise e-commerce clients, you already know why eBay matters: it’s one of the few places where big retailers compete side by side with thousands of small merchants and private sellers.

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

Top 8 E-commerce Websites to Scrape in 2026 (From Amazon to 1688)

E-commerce teams do not just need “some” competitor data anymore. They need a continuous stream of real prices, discounts, stock levels, reviews, and seller behavior from the platforms that actually shape their markets.

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

How to Scrape Amazon Data: Benefits, Challenges & Best Practices

Amazon provides valuable information gathered in one place: products, reviews, ratings, exclusive offers, news, etc. So scraping data from Amazon will help solve the problems of the time-consuming process of extracting data from e-commerce.

scrapeit logo

Who runs the crawler

ScrapeIt takes on the whole scraping job. We design the crawler, run it to your schedule, watch it, and repair it when a site changes shape. Your side receives data on a timetable; the engineering stays with us.

We have no affiliation with REWE or REWE Group. We read robots.txt before planning a crawl, keep request rates modest, and collect only what an ordinary visitor is shown. Where something is not reachable, we say so during scoping rather than after.

FAQ

Does REWE have a public API?

No. There is no REWE developer programme and no documented public API for the shop catalogue. Checked on 27 August 2026, the obvious hosts developer.rewe.de and api.rewe.de do not resolve at all. REWE's mobile app does talk to a backend of its own, but those endpoints were moved behind Cloudflare mutual TLS in March 2024 and expect the app's client certificate, so an ordinary HTTP client never completes a handshake with them. What is genuinely public is the website: sitemaps, category pages and product pages. That is what we work from.

Which REWE market will my prices come from?

Whichever markets you nominate, and the file records them. This is not a formality at REWE. Request a product page without a market and the site prints "Konkreter Preis abhängig vom Standort" - actual price depends on the location - in the space where the price would sit, and offers the visitor a Standort wählen link instead. The chosen market and service type live in session state, not in the URL, so adding a marketCode parameter to a product link changes nothing. We resolve each market properly, then stamp the market ID, postcode and service type onto every row.

Can the full REWE catalogue be pulled in a single run?

Not through the shop's search, and that is a structural limit rather than throttling. A result set there stops at 10,000 items; ask for a page past that window and the response is HTTP 400 with a validation error, whatever page size you request. The catalogue is much larger, 95,585 product URLs across the two product sitemaps when we counted on 27 August 2026. A complete pull therefore walks the sitemaps and the category tree rather than paging one broad query, which is also the route REWE's robots.txt points a crawler down.

How are Angebote and REWE Bonus offers represented?

Angebote run on a weekly Kalenderwoche cycle and split by surface: rewe.de keeps Angebote im Markt, the leaflet promotions tied to a single store, apart from Angebote im Lieferservice in the online shop. Individual markets also add promotions of their own, and some campaigns exclude sibling formats outright. REWE Bonus is different from a member price. REWE stopped PAYBACK point collection on 28 December 2024 and launched REWE Bonus the following day, and it accrues euro credit through Bonus-Coupons, Bonus-Aktionen and a Bonus-Booster at checkout. It does not print a second price on the listing, so we do not invent a column for one.

Is Lieferservice data the same as Abholservice data?

No, and they should not be merged. Every request carries a service type of DELIVERY (Lieferservice) or PICKUP (Abholservice), a given market supports only what it supports, and asking for the wrong one is rejected as an invalid market selection. Price, assortment and availability can all differ between the two for the same Artikelnummer. We collect the service types you name and label each row with its own, so a delivery series and a pickup series stay separable.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582