atHome Scraper - Luxembourg Property Listings · $1.5/1K
Pricing
from $0.75 / 1,000 result items
atHome Scraper - Luxembourg Property Listings · $1.5/1K
Extract property listings from atHome.lu (Luxembourg) by location and property type: price, bedrooms, area, address, agency, listing date, URL, newest first.
Pricing
from $0.75 / 1,000 result items
Rating
0.0
(0)
Developer
Yusuke Suda
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
atHome Scraper — Luxembourg property listings by commune or quarter
Extract property listings from atHome.lu (Luxembourg) by location and property type: price, bedrooms, area, address, agency, listing date, URL, newest first.
atHome (athome.lu) is Luxembourg's largest property portal. It carries listings from agencies, developers and private owners, and from the French, German and Belgian border regions as well. Luxembourg City alone had more than 2,600 flats for sale on it in September 2026. This Actor turns the site's lists into a clean table. Each row gives:
- a short title, e.g. "Apartment, 2 bedrooms, 61 m² in Luxembourg-Merl"
- the price, or the monthly rent
- the number of bedrooms, and the rooms where the site gives them
- the living area in square metres
- the town or quarter, and the region
- when the listing first went online
- the agency marketing it, and, where the agency shows the address, the street, postcode and map point
- a photo and the link to the listing
Press Start. The prefilled input returns flats for sale in Luxembourg City, newest first.
What a row looks like
{"title": "Apartment, 2 bedrooms, 61 m² in Luxembourg-Merl","property_type": "apartment","listing_type": "sale","price": 545000,"currency": "EUR","bedrooms": 2,"rooms": 4,"living_area_sqm": 61,"address": "291, Route de Longwy","postal_code": "1941","city": "Luxembourg-Merl","state": "Centre","latitude": 49.6050397,"longitude": 6.0961188,"agency": "LA IMMO S.a.r.l.","posted_at": "2026-09-21T09:32:26+00:00","updated_at": "2026-09-21T12:50:32","source_url": "https://www.athome.lu/vente/appartement/luxembourg/id-9346870.html","image_urls": ["https://i1.static.athome.eu//images/annonces2/image_//63/f9/e8/….jpg"],"external_id": "9346870"}
The seller and the address
Most listings come from estate agencies and developers. For those, agency is the name the site shows.
Agencies choose whether the site shows a listing's address. The Actor follows that choice:
- Address shown:
address(the street),postal_code,latitudeandlongitudeare filled. - Address hidden: those four fields stay empty, and only the town or quarter and the region are given. Luxembourg postcodes often cover a single street, so the postcode is treated like the street.
Some listings come from private owners. For those, the Actor publishes no seller at all:
agencyis empty. The owner's name is in the site's page data, but it is never collected.- There is no street, postcode or map point, because for a private owner that is their home.
- No phone number or e-mail address is collected for anyone. The Actor reads the lists only and never opens a listing page.
A seller is named only when the site files them as an agency and does not flag them as a private seller.
Dates
posted_at is when the listing first went online, in UTC, to the second. updated_at is when it was last edited,
as the site writes it. The lists are read in the site's "Date - la plus récente" order, which is by posted_at.
Bedrooms, rooms and area
bedrooms is the site's bedroom count. rooms is filled only where the site gives a room count as well. Most
Luxembourg listings give bedrooms only. A studio with no bedroom count has an empty bedrooms, not a zero.
living_area_sqm is the living area. The site also has a land-area figure whose unit cannot be told from the
list, so it is not published.
Prices
price is the asking price for a sale and the monthly rent for a let, in euros. A listing with no price, or
"price on request", has an empty price, not a zero. A new-development project that is listed as a whole, e.g.
"Maison Béatrice (new development)", also has an empty price. Its units have different prices.
What people use it for
Price monitoring for Luxembourg property by commune and quarter. Comparing asking prices and rents across
Luxembourg City quarters, Esch-sur-Alzette and the rest of the country. A daily feed of what is new, using
postedAfter. Tracking which agencies list what, and where.
Input
| Field | What it does |
|---|---|
location | A commune or town as the site writes it (Luxembourg, Esch-sur-Alzette, Differdange, Strassen), or a commune and one of its quarters (luxembourg/kirchberg, luxembourg/bonnevoie). Accents and capitals are fine. |
listingType | sale (the default) or rent. |
propertyType | apartment or house. Leave it empty for apartments. |
postedAfter | Only keep listings that went online at or after this time (ISO 8601). The list is read newest first, so the run stops shortly after passing this date. Handy for daily runs that should return only what is new. |
maxItems | Hard stop, so your bill is predictable. |
proxyConfiguration | Off by default. Most runs do not need one. |
If the site does not know the place you give, the run fails and tells you. This check matters on atHome: for a place it does not recognise, the site quietly answers with every listing on the portal, border regions included, and the Actor refuses that page.
Pricing
$1.50 per 1,000 listings, dropping to $0.75 per 1,000 on higher Apify plans, plus $0.005 each time a run starts. Platform usage is not passed on to you.
You are charged for rows you actually receive. If you set a maximum charge for the run, it stops cleanly at that limit instead of overshooting it.
Scope and limits
Public listings only, from the site's lists by type, sale or rent, and place, which atHome's robots.txt allows. The pages it disallows (search and results paths, agency pages, listing print and PDF views) are never requested, and neither is the site's internal API. The Actor reads one page every 2 seconds, twice the delay the robots.txt asks for. That makes 20 listings every 2 seconds, or about 1,000 in under 2 minutes.
Apartments and houses are covered. Land, offices, shops and parking exist on the site but are not offered here yet. The full description, the energy rating, the floor and the year built are not collected. Prices are in euros.
If athome.lu changes its page structure, the run goes red. It does not return zero rows and report success. A silent scraper is worse than a broken one, because you find out weeks later. The Actor also checks that every page answers the question it asked (type, sale or rent, place, order and page number) and fails rather than delivering a page for something else.
A run that is blocked or cut short partway also goes red, even though the rows it did collect are in the dataset and yours to keep. Red here means "this is not the complete answer", not "you lost the data". On a schedule, a run that quietly came back short is the thing you most need to hear about.
Every run also publishes the site's own result count next to the rows it delivered, so you can see "100 rows of 2,636 the site reports" without going back to the site to check. That number is what the site says, not a promise about what one run returns.
Same data, other countries
This Actor shares its output shape with the Immoweb Scraper (Belgium), the Ohne-Makler Scraper and the Immowelt Scraper (Germany), the Bezrealitky Scraper (Czech Republic) and the Willhaben Immobilien Scraper (Austria). A parser you write for one keeps working on the others.
Support
Open an issue on this Actor with the run ID and your input. Answered within one business day.