Fahrradkenner.de Bike Shop Reviews Scraper avatar

Fahrradkenner.de Bike Shop Reviews Scraper

Pricing

from $1.49 / 1,000 reviews

Go to Apify Store
Fahrradkenner.de Bike Shop Reviews Scraper

Fahrradkenner.de Bike Shop Reviews Scraper

Extract verified Fahrradkenner.de customer reviews for German bike shops: star ratings, review text, service categories, trust badges, and dealer scores. Paste a location URL — no login, no coding. Export JSON/CSV, schedule runs, and pull Fahrradkenner Bewertungen via the Apify API.

Pricing

from $1.49 / 1,000 reviews

Rating

0.0

(0)

Developer

rainminer

rainminer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

2 days ago

Last modified

Share

Fahrradkenner.de

What does Fahrradkenner.de Reviews Scraper do?

Fahrradkenner.de Reviews Scraper extracts verified customer reviews and trust ratings for German bike shops from Fahrradkenner.de — the industry portal for Radhändler reputation with 500,000+ customer voices. Paste a dealer location URL (for example https://fahrradkenner.de/location/bonn-radladen-hoenig-rohrig) and get structured review data without coding.

This Fahrradkenner API-style export is built for agencies, OEMs, and marketplace operators who need Fahrradkenner Bewertungen (bike-shop reviews) in JSON or CSV, not a screenshot of the public profile.

What can this Fahrradkenner scraper do?

  • Scrape location profile reviews from /location/{slug} pages (and /ratings pagination)
  • Extract star rating, review text, service category, reviewer name, and trust badges
  • Keep the portal's newest-first order via reviewPosition, plus scrapedAt and the shop's reviewsSince bound (Fahrradkenner publishes no per-review date)
  • Attach dealer name, city, address, phone, website, logo, and review counts — Fahrradkenner's own (verifiedReviewCount) split from totals imported from Google, Facebook, or Trusted Shops (externalRatings)
  • Cap results with maxItems per start URL (not a global crawl limit)
  • Run on the Apify platform: scheduling, monitoring, dataset export, webhooks, and API access
  • Work without a login and without a proxy by default (HTTP crawler, no browser)

Why scrape Fahrradkenner.de reviews?

Use cases teams actually run:

  1. Dealer reputation monitoring — Track Werkstatt vs Radkauf sentiment for local bike shops.
  2. OEM partner scorecards — Compare Fahrradkenner ratings across authorized dealers in a region.
  3. Marketplace due diligence — Vet a Radhändler before listing or onboarding.
  4. Agency reporting — Feed verified reviews into monthly client dashboards.
  5. Competitive research — See which shops in Bonn, Köln, München, or Hamburg lead on volume and stars.
  6. Service-quality analytics — Slice comments by service category (workshop vs bike purchase).
  7. Trust-factor audits — Count ID, regular-customer, and fairplay badges over time.
  8. Lead enrichment — Attach public review stats and contact fields to a dealer CRM row.
  9. Alerting — Schedule daily runs and flag rating drops or new low-star reviews.
  10. SEO / local content — Research what customers praise or complain about in a city.
  11. M&A / network expansion — Screen multi-store groups by aggregate review count.
  12. Python / no-code pipelines — Pull Fahrradkenner data via Apify API, then export Excel.

What data can you extract from Fahrradkenner.de?

FieldDescription
reviewIdUnique review identifier
reviewDateReview publication date (ISO 8601). null — Fahrradkenner does not publish per-review dates
reviewPosition1-based rank in Fahrradkenner's newest-first review order (1 = newest review on the profile)
scrapedAtISO 8601 timestamp of when this run read the review
locationNameBike shop / dealer name
cityCity from the location profile
reviewerNameReviewer display name (when shown)
ratingStar rating (1–5)
textReview body
serviceCategoryService type (e.g. Werkstatt, Radkauf)
trustFactorsVerified trust badges (ID, reference, regular customer, fairplay, social login)
reviewUrlDirect link to the review on Fahrradkenner
imageUrl / locationImageUrlDealer logo from the location profile (reviews have no photos)
aggregateRatingHeadline score next to the shop name — blended across Fahrradkenner and the shop's other review sources
aggregateReviewCountHeadline review count — Fahrradkenner reviews plus reviews imported from other sources. Not the number of reviews you can scrape
verifiedRatingFahrradkenner's own score from the rating seal ("Gesamtbewertung")
verifiedReviewCountNumber of Fahrradkenner reviews published individually — this is what the Actor can return
externalReviewCountReviews counted in the aggregate but held at another portal ("ohne Vertrauensfaktoren")
externalRatingsPer-source score and count, e.g. [{ "source": "Google", "rating": 4.3, "reviewCount": 1183 }]
reviewsSinceDate the shop started collecting Fahrradkenner reviews ("Bewertungen seit", ISO 8601) — the earliest possible date for any review of this shop
profileUrlFahrradkenner location page URL

Why a shop page shows more reviews than the Actor returns

The big number next to the shop name is not the number of reviews Fahrradkenner publishes. It adds the shop's own Fahrradkenner reviews to review totals imported from other portals, which the site shows only as a score and a count per source — never as individual reviews. Take Bike Market, Rostock:

Number on the pageFieldMeaning
1779 BewertungenaggregateReviewCountHeadline total (209 + 1570)
209 Bewertungen seit 27.10.2023verifiedReviewCountFahrradkenner reviews, listed one by one — scrapeable
1570 Bewertungen ohne VertrauensfaktorenexternalReviewCountGoogle 1183 + facebook 13 + Trustedshops 374 — counts only

So a full run of that shop returns ~209 reviews, not 1779, and the run log says so up front:

Bike Market , Rostock lists 209 Fahrradkenner review(s) that can be scraped individually.
A further 1570 review(s) come from Google, facebook, Trustedshops. Fahrradkenner publishes
only their score and count, so they are part of aggregateReviewCount (1779) but cannot be scraped.

Compare your item count against verifiedReviewCount, not aggregateReviewCount. It can land one or two short: Fahrradkenner occasionally repeats a review on two pagination pages, and the Actor drops the repeat rather than emitting a duplicate row. The run log names how many it skipped, and because reviewPosition mirrors the portal's listing slots, the skipped slot shows up as a gap in the numbering (the Rostock run returns 208 rows numbered 1–209, missing 16).

Some shop pages carry a headline count with nothing behind it at all — no Fahrradkenner reviews of their own, only imported ones. A run on such a shop returns zero rows and logs a warning naming the headline count, rather than finishing silently.

How review dates work on Fahrradkenner

Fahrradkenner publishes no date on a review. There is no timestamp on the profile page, on /ratings pages, on the ?rating={id} permalink, or in the page's structured data — the portal shows only reviewer, service category, stars, trust badges, and text. reviewDate is therefore null for every row, and the Actor never invents one. If Fahrradkenner starts rendering dates, reviewDate fills in automatically.

Three fields let you build a correct timeline anyway:

  • reviewPosition — Fahrradkenner lists reviews newest-first ("Letzte Einzelbewertungen"). Position 1 is the newest review, so sorting by reviewPosition ascending gives you the true newest → oldest order within a run.
  • scrapedAt — when the run saw the review. It is an upper bound on the real publication date.
  • reviewsSince — the shop's "Bewertungen seit" date. It is a lower bound for every review of that shop.

If your database requires a non-null date column, map it explicitly instead of silently using import time:

-- honest fill: real date when the portal has one, observation time otherwise
review_posted_at = COALESCE(review_date, scraped_at)
-- and keep the ordering the portal actually guarantees
ORDER BY review_position ASC

reviewsSince lives on the shop profile page, so it is null only when you start a run directly on a deep /ratings?page=N URL. Start from /location/{slug} (or /location/{slug}/ratings) to always get it.

For dates close to reality, schedule the Actor daily with a small maxItems. New reviews appear at reviewPosition 1, so the first scrapedAt you record for a reviewId is within a day of its publication. reviewPosition is only comparable within a single snapshot — new reviews push older ones down — so store it per run alongside scrapedAt.

How to scrape Fahrradkenner.de reviews

  1. Open Fahrradkenner.de Reviews Scraper in Apify Console.
  2. Add one or more Fahrradkenner location URLs under Start URLs.
  3. Set Maximum items (reviews per URL). Keep it small for a test run.
  4. Leave proxy off unless your network blocks the site.
  5. Run the Actor and download results from the dataset tab (JSON, CSV, Excel, or HTML).

Input

Fahrradkenner.de Reviews Scraper accepts Start URLs, maxItems (per start URL), and optional proxy configuration. See the Input tab in Apify Console for details.

Supported URLs:

  • Location profile: https://fahrradkenner.de/location/{slug}
  • Ratings pages: https://fahrradkenner.de/location/{slug}/ratings?page=2

The scraper follows paginated review listings automatically until maxItems is reached.

Output example

{
"reviewId": "870af149478c16e60881",
"reviewDate": null,
"reviewPosition": 3,
"scrapedAt": "2026-09-22T06:12:41.118Z",
"locationName": "Radladen Hoenig & Röhrig , Bonn",
"city": "Bonn",
"reviewerName": null,
"rating": 4,
"text": "Außer der vereinbarten Zeit war alles ok.",
"serviceCategory": "Werkstatt",
"trustFactors": {
"identification": false,
"referenceNumber": false,
"regularCustomer": true,
"fairplay": false,
"socialLogin": false
},
"reviewUrl": "https://fahrradkenner.de/location/bonn-radladen-hoenig-rohrig?rating=870af149478c16e60881#870af149478c16e60881",
"locationImageUrl": "https://fahrradkenner.de/storage/media/images/809fa6d5-a10d-4224-9364-717ffdd90e98/604612.jpeg",
"imageUrl": "https://fahrradkenner.de/storage/media/images/809fa6d5-a10d-4224-9364-717ffdd90e98/604612.jpeg",
"aggregateRating": 4.8,
"aggregateReviewCount": 1592,
"verifiedRating": 4.8,
"verifiedReviewCount": 816,
"externalReviewCount": 776,
"externalRatings": [
{ "source": "Google", "rating": 4.8, "reviewCount": 761 },
{ "source": "facebook", "rating": 4.6, "reviewCount": 15 }
],
"reviewsSince": "2019-03-07T12:00:00.000Z",
"profileUrl": "https://fahrradkenner.de/location/bonn-radladen-hoenig-rohrig"
}

You can download the dataset in JSON, CSV, Excel, or HTML.

How much does scraping Fahrradkenner.de cost?

This Actor uses an HTTP crawler (no browser) and no proxy by default, keeping compute usage low.

You pay a per-review Store fee (see the Actor Pricing tab). Platform compute is included at the default HTTP / no-proxy settings — a short test with 5 reviews per URL usually finishes in under a minute.

FAQ

Is scraping Fahrradkenner.de legal?
Our scrapers collect only public review content shown on Fahrradkenner pages. You are responsible for complying with applicable laws (including GDPR) when processing personal data in reviews.

Which URLs are supported?
Bike shop location pages under /location/{slug} — for example /location/bonn-radladen-hoenig-rohrig. The scraper follows paginated review listings automatically.

Do I need the official Fahrradkenner API?
No. This Actor is a no-code Fahrradkenner data extractor. Paste public location URLs and export structured reviews.

Are reviewer names always present?
No. Many Fahrradkenner reviews are published without a display name. Those rows still include rating, text, and trust factors.

Does every review have a photo?
No. Reviews on Fahrradkenner typically have no customer photos. imageUrl is the dealer logo from the location profile.

The shop page says 1779 reviews — why did I get 209?
Because 1570 of those are counted from Google, Facebook, or Trusted Shops and are never published individually on Fahrradkenner. Use verifiedReviewCount as the target for a full run — see Why a shop page shows more reviews than the Actor returns.

Do Fahrradkenner reviews have a date?
No. The portal publishes no per-review date, so reviewDate is null. Use reviewPosition (newest-first rank), scrapedAt (upper bound), and reviewsSince (lower bound) instead — see How review dates work on Fahrradkenner.

How do I scrape Fahrradkenner reviews with Python?
Run the Actor from Apify Console or call it via the Apify API / apify-client. Schedule recurring exports for dealer monitoring.

Related rainminer review Actors: Shopauskunft.de Reviews Scraper, eKomi.de Reviews Scraper, ShopVote.de Reviews Scraper.

Image Credit

Image credit: fahrradkenner.de