kaufda.de Circulars & Offers Scraper | Germany Prospekte avatar

kaufda.de Circulars & Offers Scraper | Germany Prospekte

Pricing

from $2.18 / 1,000 offer / brochures

Go to Apify Store
kaufda.de Circulars & Offers Scraper | Germany Prospekte

kaufda.de Circulars & Offers Scraper | Germany Prospekte

Collect circulars and offers from kaufda.de pages. Get offer and brochure records with prices, retailers, validity, and images. Run with kaufda.de URLs; no kaufda login or API key. Pricing: $0.00225 per result plus $0.00005 per Actor Start on Free.

Pricing

from $2.18 / 1,000 offer / brochures

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

1

Bookmarked

47

Total users

8

Monthly active users

a day ago

Last modified

Categories

Features

Limited permissions

Share

kaufda.de Circulars & Offers Scraper — Germany Prospekte

Extract German retail circulars (Prospekte) and the offers inside them from public kaufda.de pages, with flat offer and brochure records for price monitoring, retail research and deal aggregation. Free-plan pricing is $0.00225 per returned offer or brochure plus $0.00005 per Actor Start; a Free-plan run returns at most 25 results.

  • Scrape product titles, brands, normalized EUR prices, categories, retailers, validity windows and images for price-monitoring workflows.
  • Track flyer-level publisher, page-count, schedule, cover-image and logo data for retail research.
  • Feed deal-aggregation work with offer and circular rows tagged by recordType.
  • Choose whether to return brochures and set a result cap; no kaufda login or API key is required.

What you get

The Actor reads kaufda.de’s server-rendered __NEXT_DATA__ data layer and returns flat offer and brochure records. Offers and brochures are de-duplicated by their IDs before they are pushed to the dataset. Fields are null when the source does not provide the value.

RecordFieldsTypeWhat it contains
IdentityrecordType, id, contentIdstringIdentifies an offer or brochure; contentId is used for brochure records and can be null when the source does not provide it.
Offer producttitle, brand, descriptionstringProduct headline, brand and offer description. brand and description can be null when the source does not provide them.
Offer pricingmainPrice, priceFormatted, secondaryPriceFormatted, currencynumber; stringNumeric price, displayed German price, optional secondary price and EUR currency. Optional price values can be null when the source does not provide a usable value.
Offer categoriescategory, categoriesstring; array of stringskaufda category labels for the offer. Both fields are null when no category strings are available.
RetailerpublisherName, publisherIdstringRetailer running the circular. Either value can be null when the source does not provide it.
Offer validityvalidFrom, validUntilISO 8601 stringOffer validity window; either value can be null when the source does not provide it.
Offer placementbrochureId, brochureLegacyId, brochurePagestring; string; integerCircular identifiers and the page containing the offer. Values can be null when the source does not provide them.
Offer mediaimageUrlstringOffer image URL, which can be null when the source does not provide it.
Brochure detailstitle, publisherName, publisherId, publisherType, pageCountstring; string; string; string; integerCircular title, publisher information and page count. Optional values can be null when the source does not provide them.
Brochure schedulepublishedFrom, publishedUntil, validFrom, validUntilISO 8601 stringPublication and validity windows for the circular; values can be null when the source does not provide them.
Brochure mediacoverImage, publisherLogostringFlyer cover and publisher logo URLs, which can be null when the source does not provide them.
Run provenancequery, scrapedAtstring; ISO 8601 stringURL used for the extraction and scrape timestamp.
Qualityparse_confidencenumberMachine-readable confidence score based on required fields.

Sample output

The sample is shortened to the main fields of one real offer record; the values shown are unchanged.

{
"recordType": "offer",
"id": "a60bf357-bd6c-4b8e-bc08-d2d967f365c2",
"title": "Monte Maxi",
"brand": "Zott",
"description": "4 x 100-g-Becher",
"mainPrice": 1.49,
"priceFormatted": "1,49 €",
"currency": "EUR",
"category": "Monte Maxi",
"categories": ["Monte Maxi"],
"imageUrl": "https://content-media.bonial.biz/a60bf357-bd6c-4b8e-bc08-d2d967f365c2/ff291e93-1dd9-40d4-911b-d3941ea04bd2.jpg",
"publisherName": "REWE",
"publisherId": "DE-1062",
"validFrom": "2026-10-04T22:00:00.000+0000",
"validUntil": "2026-10-10T21:00:00.000+0000",
"brochureId": "1ce7e722-7f09-414a-af84-f01f047c7c66",
"brochurePage": 12,
"parse_confidence": 1
}

Pricing

You pay per event. Each returned offer or brochure is one result event.

Charge eventUnitFree-plan priceCondition
Actor StartPer start$0.00005 per startCharged when the Actor starts running.
Offer / brochurePer result$0.00225 per resultOne offer or brochure returned, with all fields.

apify-actor-start is charged once per GB of run memory, minimum one event.

Rate-based estimates at Free-plan prices with one start event (these show the rate, not a capped Free-plan run):

ResultsCalculation
1,0001,000 x $0.00225 + $0.00005 = $2.25005 on the Free plan
10,00010,000 x $0.00225 + $0.00005 = $22.50005 on the Free plan

At Free-plan prices, the $5 credit corresponds to 2,222 priced results after one start event.

You pay only for the events listed above. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately. The Apify Free plan includes $5 of monthly platform usage credit.

How to use

  1. Enter one or more kaufda.de URLs, such as the homepage, a retailer page, a city page or a category page.
  2. Choose whether to include brochure rows with includeBrochures. Leave it enabled to also get circular records, or set it to false for product offers only. Offers are added before brochures on each page, so with a small maxItems (or the Free-plan cap) brochure rows can be missing; see Limits.
  3. Set maxItems to choose the maximum number of records; use 0 for no explicit cap.
  4. Keep the default proxy configuration for the recommended German residential egress. You only need your Apify account; no kaufda API key, login or proxy credentials are required.
  5. Run the Actor and inspect the records as they stream into the dataset. Each row is tagged as an offer or brochure.
  6. Schedule repeat runs through Apify Schedules; daily is a reasonable starting point for price-monitoring jobs.
{
"startUrls": ["https://www.kaufda.de/"],
"includeBrochures": true,
"maxItems": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "DE"
}
}

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
startUrlsArray of kaufda.de URLs to read. Supported page types include the homepage, retailer pages, city pages and category pages. If no URLs are supplied, the Actor uses https://www.kaufda.de/.https://www.kaufda.de/
includeBrochuresAlso returns one brochure record per circular alongside product offers.true
maxItemsMaximum number of records returned. 0 means no explicit cap.200
proxyConfigurationProxy configuration used to reach the public kaufda.de pages. The recommended default uses Apify’s RESIDENTIAL group in Germany.useApifyProxy: true, apifyProxyGroups: ["RESIDENTIAL"], apifyProxyCountry: "DE"
disableUsageStatsSet to true to turn off the run summary described in Usage statistics.false

Limits and edge cases

ConditionWhat happensWhat to do
maxItems is reachedThe Actor stops adding records at the requested total across the input URLs.Increase maxItems or use 0 for no explicit cap.
maxItems is small and includeBrochures is trueOffers from a page are added before its brochures, so a page with enough offers can fill the cap and return zero brochure rows. Brochure rows are only returned if room is left under the cap.Raise maxItems, or use a cap above the offer count of the page.
Each URL is read onceEach URL is fetched as one page; the Actor does not follow links to other pages. The sample above covers only the homepage, so other page types are not demonstrated.Add each retailer, city or category page as its own URL and check the output.
includeBrochures is falseBrochure records are not returned; only offer records can be added.Set it to true when circular-level metadata is needed.
The same offer or brochure appears through multiple URLsDuplicate offers are removed by offer ID, and duplicate brochures are removed by content ID or brochure ID.Use multiple URLs for coverage without expecting repeated rows.
An extracted offer has no ID or title, or a brochure has no IDThat incomplete row is skipped rather than pushed to the dataset.Check the target page and run it again if required data is missing.
The run is on the Free planEach run returns at most 25 results, even if maxItems is higher or 0.Use a paid plan for larger runs.
A fetch raises an error, times out, or kaufda returns a detected block responseThe Actor makes up to 4 attempts per URL, rotating the proxy session, then skips the URL and continues with the next one. Records already pushed remain in the dataset.Verify the URL, keep the recommended German residential proxy configuration and rerun.
A run is aborted, times out, or fails after records have been pushedRecords already pushed remain in the dataset; records not yet pushed are not available.Run the Actor again for the remaining records.
A page contains no extractable offer or brochure recordsThe run can finish with no records for that URL.Confirm that the URL is a supported public kaufda.de page and try again.

FAQ

How much does it cost to scrape kaufda.de circulars and offers?

An Actor Start event costs $0.00005 on the Free plan, and each returned offer or brochure result costs $0.00225 on the Free plan. With one start event, 1,000 results at Free-plan rates cost 1,000 x $0.00225 + $0.00005 = $2.25005.

What if the dataset is empty?

The Actor extracts records from kaufda.de’s embedded __NEXT_DATA__ data. Check that the URL is a public kaufda.de homepage, retailer page, city page or category page, and confirm that brochure inclusion is enabled when circular rows are expected.

What if a kaufda.de page is not working?

When a URL cannot be fetched or is blocked, the URL is skipped and the run continues with later URLs. Verify the URL, keep the recommended German residential proxy configuration, and run it again.

The Actor reads public kaufda.de pages. Whether a particular extraction, storage or downstream use is legal or allowed depends on your use case, the source terms and applicable law.

Rate this Actor

If kaufda.de Circulars & Offers Scraper saved you time, please rate it on the Apify Store. A rating takes a few seconds and helps other people find a working scraper. If something did not work, open an issue on the Actor page.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields

⌂ 换网址