Kurzurlaub.de Offers - Hotels, Prices, Ratings & Geo avatar

Kurzurlaub.de Offers - Hotels, Prices, Ratings & Geo

Pricing

from $0.67 / 1,000 results

Go to Apify Store
Kurzurlaub.de Offers - Hotels, Prices, Ratings & Geo

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

Farhan Febrian Nauval

Maintained by Community

Actor 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

FieldTypeDefaultDescription
startUrlsarrayrequiredListing pages (links are followed) or direct offer URLs
maxOffersinteger60Stop after this many offer pages; a listing yields ~30 links
maxRoundsinteger2TLS ladder repeats on a refused page
maxConcurrencyinteger3Offer 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

LimitDetail
Aggregate ratings onlyThe 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 spanIt is the min/max across the hotel's offers, not the price of this specific package
No availability or datesThe pages do not expose bookable dates in structured data