Idealista Scrape- LowCost | HiQuality (ES/PT/IT)
Pricing
from $0.40 / 1,000 results
Idealista Scrape- LowCost | HiQuality (ES/PT/IT)
▎ Reliable Idealista data, at a fair price. ▎ We built the most efficient scraper for Idealista because we believe quality data shouldn't cost a fortune. No captchas, no browser overhead — just ▎ clean, structured data that works. ▎ Questions or ideas? → info@inmocalc.com
Pricing
from $0.40 / 1,000 results
Rating
0.0
(0)
Developer
SMY
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Idealista Scraper
Extract property listings from Idealista — no browser, no captchas, clean JSON in seconds.
👋 Hola equipo — este scraper es para vosotros, usadlo con cariño. 👋 Ciao team — questo scraper è per voi, usatelo con cura. 👋 Olá equipa — este scraper é para vocês, usem-no com carinho.
Questions or issues? Reach us at info@inmocalc.com
What it does
Three modes in one actor:
| Mode | When to use it |
|---|---|
| Search | Get all listings in an area (up to 1,800 per run) |
| Fetch by Property ID | Get full details for specific listings you already know |
| Find Location ID | Look up the area code you need before searching |
Each mode is a separate section in the input form. Fill in one, leave the others empty.
Why this one?
Most Idealista scrapers are slow, fragile, or expensive. We've built the most efficient scraping technology available for Idealista, and we're making it accessible because we want to help our users and friends get their work done — without paying a premium for it.
No captchas, no browser overhead, just clean data at a price that makes sense.
Mode 1 — Search
Get all listings in an area matching your filters.
How to use it
Step 1 — Fill in the required fields
| Field | What to enter |
|---|---|
| Country | 🇪🇸 Spain, 🇵🇹 Portugal or 🇮🇹 Italy |
| Operation | Sale (buy/sell) or Rent |
| Property Type | Type of property — Homes for flats and houses |
| Location ID | The code for the area you want to scrape — see below |
Step 2 — Hit Start
The scraper runs page by page and saves results to the dataset as it goes. You can see data coming in before it finishes.
Step 3 — Download your results
When done, go to Storage → Dataset and export as CSV, JSON or Excel.
How to find a Location ID
Option A — use the built-in lookup (easiest)
Fill in the Search term field in the "📍 Find Location ID" section (see Mode 3 below), run the actor, and copy the locationId you need.
Option B — from the Idealista URL
Search your area on the relevant site (idealista.com for Spain, idealista.pt for Portugal, idealista.it for Italy). Once you're on the results page, look at the URL — the Location ID follows the 0-EU-XX-... pattern.
Option C — use a known ID
🇪🇸 Spain
| Area | Location ID |
|---|---|
| Madrid city | 0-EU-ES-28-07-001-079 |
| Madrid province | 0-EU-ES-28 |
| Barcelona city | 0-EU-ES-08-13-001-019 |
| Soria province | 0-EU-ES-42 |
🇵🇹 Portugal
| Area | Location ID |
|---|---|
| Lisboa (Distrito) | 0-EU-PT-11 |
| Lisboa (Concelho) | 0-EU-PT-11-06 |
| Cascais (Concelho) | 0-EU-PT-11-05 |
🇮🇹 Italy — use Option A (built-in lookup) to find your area code. The pattern is 0-EU-IT-XX-....
Output fields
Each listing includes:
| Field | Description |
|---|---|
id | Idealista listing ID |
url | Direct link to the listing |
address | Full address |
municipality / district | City and neighbourhood |
latitude / longitude | Coordinates for mapping |
price | Price in € |
price_by_area | €/m² |
size | Built area in m² |
rooms / bathrooms | Bedrooms and bathrooms |
floor | Floor number |
exterior | Whether it faces the street |
has_lift | Lift in the building |
status | Property condition |
description | Full listing description |
num_photos | Number of photos |
location_id | Exact sub-area code (neighbourhood level) |
photos | List of photo URLs (requires Fetch full details) |
contact_phone | Agent or owner phone number (requires Fetch full details) |
contact_name | Agent or owner name (requires Fetch full details) |
contact_user_type | Account type: professional, private, etc. (requires Fetch full details) |
energy_certification | Energy performance rating (requires Fetch full details) |
allows_remote_visit | Whether a remote visit is available (requires Fetch full details) |
allows_counter_offers | Whether counter-offers are accepted (requires Fetch full details) |
Full details (photos, contact, energy)
The Fetch full details toggle (enabled by default) makes the scraper retrieve the complete property record for each listing — adding photos, agent contact info, energy certification and remote visit availability.
Trade-off: each listing requires one extra request, so a full 60-page run takes roughly twice as long and uses more proxy bandwidth. Disable it if you only need basic listing data and want faster runs.
⚠️ Photo URLs are signed and expire after approximately 24 hours — download images promptly if you need them.
Limits
- Max 1,800 listings per run — Idealista caps results at 60 pages × 30 listings. For large cities like Madrid or Barcelona, run separate searches per district.
- All filters are optional — price, size, rooms and the amenity toggles can all be left blank.
Mode 2 — Fetch by Property ID
Get full details for specific listings — active or closed.
When to use this:
- You have a list of IDs from a previous run and want the full detail (contact info, photos, full description).
- You want to monitor specific properties over time.
- A listing disappeared from search and you want to know why and at what price.
How to use it: fill in the Property IDs field (one ID per line). The Search section is ignored.
Output for active listings
| Field | Description |
|---|---|
property_id | The ID you requested |
status | active |
_details | Full detail response — contact info, photos, all characteristics |
Output for closed listings
| Field | Description |
|---|---|
property_id | The ID you requested |
status | closed |
deactivation_reason | Why it was removed: user (likely sold/rented), quality, fraud, pending |
last_deactivation_date | Timestamp (ms) when it was taken down |
price_at_close | Last known price — a proxy for the transaction price |
rooms / size | Basic info retained after closure |
Run stats
When Include Run Stats is enabled (default), a summary record is added at the end of the dataset:
{"_type": "run_stats","_stats": {"total": 10,"active": 7,"closed": 2,"errors": 1,"duration_s": 42.3}}
Mode 3 — Find Location ID
Not sure what Location ID to use for your search? Run this mode first.
How to use it: fill in the Search term field under "📍 Find Location ID". Country, Property Type and Operation must be set too (the defaults work fine). Leave everything else empty.
Tip: be specific — "mad" returns Madrid but also Madrigal, Madrigueras and others. "madrid" returns only areas called Madrid.
Output
| Field | Description |
|---|---|
locationId | The code to copy into the Search section |
name | Human-readable area name (e.g. Madrid) |
subTypeText | Area type (e.g. Municipio, Provincia, Barrio) |
total | Active listings in that area for your selected property type and operation |
Tips
- Each run creates a new dataset — results from each execution are saved separately in Apify Storage, so you can always compare previous runs.
- Don't change Items Per Page — the default (30) is the most efficient setting.
- Mode priority: if you fill in multiple sections, the actor uses only one — Find Location ID takes priority, then Fetch by Property ID, then Search.


