Kurzurlaub.de Offers - Hotels, Prices, Ratings & Geo
Pricing
from $0.67 / 1,000 results
Kurzurlaub.de Offers - Hotels, Prices, Ratings & Geo
Scrape German short-break offers from kurzurlaub.de: hotel name, full address with latitude and longitude, star rating, price range in euros, amenities, languages and the guest rating — with its 1-6 scale made explicit. HTTP-only, no account.
Pricing
from $0.67 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
Kurzurlaub.de Offers — Hotels, Prices, Ratings & Geo
Scrape German short-break offers from kurzurlaub.de: hotel name, full address with latitude and longitude, star rating, price range in euros, amenities, languages and the guest rating. HTTP-only, no account, no browser.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | required | Listing pages (links are followed) or direct offer URLs |
maxOffers | integer | 60 | Stop after this many offer pages; a listing yields ~30 links |
maxRounds | integer | 2 | TLS ladder repeats on a refused page |
maxConcurrency | integer | 3 | Offer pages in parallel |
Output
{"_input": "https://www.kurzurlaub.de/angebote/116561-….html","_source": "S1-jsonld-hotel","_scrapedAt": "2026-09-09T04:18:29Z","offerTitle": "3 Tage - Rheingau in Love inkl. Candlelight Dinner","hotelName": "Hotel Restaurant Ruppert","starRating": 3,"priceRange": "47,00 EUR - 389,00 EUR","priceMinEur": 47.0, "priceMaxEur": 389.0,"ratingValue": 4.9,"ratingScaleMin": 1, "ratingScaleMax": 6, // ← note the scale"ratingOutOf5": 4.08,"ratingCount": 118,"street": "Hauptstr. 61", "postalCode": "65396","city": "Walluf", "region": "Rheingau Taunus", "country": "Deutschland","latitude": 50.036584, "longitude": 8.1615935,"amenities": ["Barzahlung", "Sauna", …], "amenityCount": 20,"languages": ["Deutsch", "Englisch", "Russisch"],"image": "…", "offerUrl": "…"}
All 14 fields were populated on 26–27 of 27 offers in testing; the one gap was a hotel with no reviews yet.
Two things worth knowing
Ratings are out of six, not five. Kurzurlaub grades 1–6. A consumer that assumes the usual
five-point scale reads 4.9 as near-perfect when it is 4.9 /6. The scale is emitted
alongside every value as ratingScaleMin/ratingScaleMax, and ratingOutOf5 is provided so
ratings can be compared with other sources without anyone doing that division by hand.
Prices are German-formatted, and parsed as such. 1.481,00 EUR is 1481, not 1.481 and not
148100 — the dot is a thousands separator and the comma is the decimal. Getting that backwards
inflates or shrinks a price by orders of magnitude with no error raised, so the raw
priceRange string is kept next to the parsed numbers for auditing.
How it works
Listing pages carry only one rendered offer card but ~30 links to offer detail pages, and the
detail page holds a schema.org Hotel node with everything above. So the actor mines links from
listings and reads the structured data from the detail pages.
Worth knowing if you build listing URLs by hand: the site ignores most paths. /angebote,
/angebote.html and /reiseziele/ostsee.html all return the same "Kurzreisen" landing page at
nearly identical length. Only genuinely distinct sections such as /wellness.html differ. The
actor therefore follows whatever links a start page actually yields rather than assuming a path
filtered anything.
Known limits
| Limit | Detail |
|---|---|
| Aggregate ratings only | The offer pages publish a rating value and count, not individual reviews — there is no review text on this surface |
| Price range is the hotel's span | It is the min/max across the hotel's offers, not the price of this specific package |
| No availability or dates | The pages do not expose bookable dates in structured data |