atHome.lu Scraper — Luxembourg Real Estate Listings & Prices
Pricing
Pay per usage
atHome.lu Scraper — Luxembourg Real Estate Listings & Prices
Scrape real estate listings, prices, and property details from atHome.lu. Luxembourg's #1 property portal. Supports rent and sale, filtering by city, property type, price range, and more.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Jelle Desramaults
Actor stats
0
Bookmarked
3
Total users
0
Monthly active users
10 days ago
Last modified
Categories
Share
atHome.lu Scraper
Scrape real estate listings from atHome.lu, Luxembourg's dominant property portal. Supports both rental and sales listings with filtering by city, property type, bedrooms, and price range.
How the scraper works
It's a two-step process:
-
Search page crawling: The scraper loads search result pages from atHome.lu and extracts property IDs from the
dataLayerJavaScript object (or falls back to URL pattern matching for/id-{number}.html). -
API detail fetching: Each property ID is then fetched from atHome's REST API at
apigw.prd.athomegroup.lu/api-listings/listings/{id}, which returns full structured data including exact GPS coordinates, agency info, photos, and energy ratings.
Project listings (new builds with multiple units) are automatically expanded -- each child unit becomes a separate result.
Input
| Field | Type | Required | Description |
|---|---|---|---|
transactionType | String | No | "rent" (default) or "buy" |
propertyType | String | No | "apartment", "house", "studio", "office", "land", etc. |
city | String | No | City name, e.g. "Luxembourg", "Esch-sur-Alzette" |
searchQuery | String | No | Free text, e.g. "garden terrace parking" |
minPrice | Integer | No | Minimum price in EUR |
maxPrice | Integer | No | Maximum price in EUR |
minBedrooms | Integer | No | Minimum bedrooms |
maxResults | Integer | No | Listing limit (default: 100) |
language | String | No | "en" (default), "fr", or "de" |
proxyConfiguration | Object | No | Proxy settings |
Output
| Field | Type | Example |
|---|---|---|
title | String | "Apartment -- Luxembourg" |
price | Number | 2500 |
currency | String | "EUR" |
propertyType | String | "apartment" |
transactionType | String | "rent" |
address | String | "12 Rue de Hollerich, 1740 Luxembourg" |
city | String | "Luxembourg" |
postalCode | String | "1740" |
bedrooms | Number | 2 |
bathrooms | Number | 1 |
surface | Number | 85 |
landArea | Number | Ground surface in m2 |
latitude | Number | 49.5990 |
longitude | Number | 6.1198 |
energyRating | String | "B" |
agencyName | String | "Immobiliere Luxembourg" |
agencyPhone | String | "+352 123 456" |
imageUrl | String | Primary photo |
imageUrls | Array | All listing photos |
isNewBuild | Boolean | true for project listings |
parking | Number | Total parking spots |
{"title": "Apartment -- Luxembourg","price": 2500,"currency": "EUR","propertyType": "apartment","transactionType": "rent","city": "Luxembourg","postalCode": "1740","bedrooms": 2,"surface": 85,"latitude": 49.5990,"longitude": 6.1198,"agencyName": "Immobiliere Luxembourg","url": "https://www.athome.lu/en/rent/apartment/luxembourg/id-123456.html","scrapedAt": "2026-03-15T14:00:00.000Z"}
Cost
API-based, no browser needed. ~$0.15 per 1,000 listings including search page fetching and individual API calls.
Limitations
- Property photos are served from
i1.static.athome.euCDN - Sold/rented/inactive listings are automatically filtered out
- The URL structure adapts to the selected language (e.g.
/location/for French,/mieten/for German) - Agent contact details (phone) may not always be available