Idealista Market Intel Scraper
Pricing
from $0.39 / 1,000 item processeds
Idealista Market Intel Scraper
Extract public Idealista property listings and normalized market intelligence for Spain, Portugal, and Italy.
Pricing
from $0.39 / 1,000 item processeds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
This Idealista scraper turns public search and property pages into analysis-ready Idealista data for Spain, Portugal, and Italy. Use it to monitor asking prices, compare price per square metre, build listing inventories, or access structured results as an Idealista API workflow.
What it extracts
Each unique property record includes its stable Idealista ID, canonical URL, country, operation, property type, title, price and currency. When publicly available, records also include:
- price per square metre, size, rooms, bathrooms, floor, and condition
- address, municipality, province, latitude, and longitude
- lift, parking, terrace, and swimming-pool flags
- description, images, video, virtual tour, and energy ratings
- agency/contact details and publication timestamps
- source input URL, extraction mode, and fetch timestamp
Missing upstream values remain absent; the Actor does not invent market estimates or unavailable attributes.
Output fields
| Group | Dataset fields |
|---|---|
| Identity | id, url, country, operation, propertyType, title |
| Pricing and layout | price, currency, pricePerSquareMeter, size, rooms, bathrooms, floor, condition |
| Location | address, locationName, municipality, province, latitude, longitude |
| Features | hasLift, hasParking, hasTerrace, hasSwimmingPool |
| Content and media | description, images, videoUrl, virtualTourUrl, energyConsumption, energyEmissions |
| Contact and timing | contactName, agencyName, phone, publishedAt, updatedAt |
| Provenance | source (platform, input URL, fetch time, and search/detail mode) |
Input
{"startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid-madrid/" }],"maxItems": 25,"fetchDetails": true}
startUrls(required): public HTTPS Idealista search or property URLs onidealista.com,idealista.pt, oridealista.it.maxItems: global maximum number of unique records saved (1–10,000; default 10).fetchDetails: enrich search results from their public detail endpoint (defaulttrue). Disable it for a faster search-inventory pass.
Multiple inputs are deduplicated by stable property ID. Only successfully persisted dataset items are charged as item events.
Ready-to-run examples
Open a public example to inspect its input, run it, or reuse it as a task:
Fast Madrid sale inventory
{"startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid-madrid/" }],"maxItems": 10,"fetchDetails": false}
One property with all available public detail fields
{"startUrls": [{ "url": "https://www.idealista.com/inmueble/109592362/" }],"maxItems": 1,"fetchDetails": true}
Output example
{"id": "82100417","url": "https://www.idealista.com/inmueble/82100417/","country": "ES","operation": "rent","propertyType": "flat","title": "Flat in Calle Everluz","price": 500,"currency": "EUR","size": 60,"rooms": 1,"bathrooms": 1,"municipality": "Punta Umbria","province": "Huelva","source": {"inputUrl": "https://www.idealista.com/venta-viviendas/madrid-madrid/","mode": "search","fetchedAt": "2026-08-30T00:00:00.000Z"}}
Results are available in the default dataset as JSON, CSV, Excel, XML, or RSS.
API usage, SDK, and MCP
Run the Actor from Apify Console, schedule it as a Task, invoke it through the Apify API, or call it with apify-client from JavaScript or Python.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/idealista-scraper').call({startUrls: [{ url: 'https://www.idealista.com/venta-viviendas/madrid-madrid/' }],maxItems: 25,fetchDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/idealista-scraper').call(run_input={'startUrls': [{'url': 'https://www.idealista.com/venta-viviendas/madrid-madrid/'}],'maxItems': 25,'fetchDetails': True,})items = client.dataset(run['defaultDatasetId']).list_items().items
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~idealista-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"startUrls":[{"url":"https://www.idealista.com/venta-viviendas/madrid-madrid/"}],"maxItems":25,"fetchDetails":true}'
For MCP-compatible assistants, connect to https://mcp.apify.com/?tools=fetch_cat/idealista-scraper and pass the same input object. Webhooks can send completed-run data into databases, spreadsheets, n8n, Make, or custom services.
Pricing and limits
The Actor uses pay-per-event pricing: one run-start event and one item event for each successfully saved property. See the live Apify Pricing tab for current rates and plan-specific discounts.
maxItems is a global cap after deduplication. Search pages can change between runs, detail fields vary by country and listing, and removed properties may stop returning data. Detail enrichment makes additional requests and therefore runs more slowly than search-only inventory. The Actor does not bypass login-only access or return private seller information.
Who is it for?
This Actor is designed for property analysts, real-estate teams, investors, researchers, and automation builders who need repeatable public listing exports without manual copying.
Practical use cases
- Track fresh sale or rental inventory in a target market.
- Compare asking price per square metre across municipalities.
- Monitor individual properties by their detail URLs.
- Feed public listing data into BI, valuation, or lead-qualification workflows.
- Detect listing changes by scheduling repeat runs and joining on
id.
FAQ
Does it require an Idealista login?
No. It accepts only supported public, no-login URLs.
Is this an official Idealista API?
No. This independent Actor extracts publicly observable listing data and may need maintenance when Idealista changes its public interfaces.
Does maxItems apply per URL?
No. It is a global cap across all inputs after deduplication.
Why are some fields missing?
Availability varies by listing and country. Unsupported or hidden claims are omitted rather than guessed.
Can I use an Idealista scraper through an API or MCP?
Yes. The Actor input and dataset output work through Apify API clients and Apify's MCP integration.
How can I export Idealista listings to CSV or Excel?
Run the Actor, open its default dataset, and choose CSV or Excel from the export formats. The same records are also available as JSON, XML, and RSS.
How do I monitor Idealista property prices over time?
Save a bounded search input as an Apify Task, schedule repeat runs, and join snapshots by stable id. Compare price, pricePerSquareMeter, and updatedAt across runs.
What are the responsible-use limits?
Use public data lawfully, respect applicable terms and privacy rules, avoid unnecessary collection, and choose a bounded maxItems. Website rate limits or interface changes can affect runs.
Related Actors
- Leboncoin Listings Scraper
- Marktplaats Listings Scraper
- Apple Maps Places Scraper
- Google Maps Photos Scraper
- Google Images Scraper
Support
For questions, reproducible failures, or field requests, open an issue from the Actor's Apify Store page. Include the public input URL, run ID, expected behavior, and a short description; do not post passwords, cookies, or personal login data.