Idealista API Scraper
Pricing
from $2.70 / 1,000 results
Idealista API Scraper
Scrape Idealista listings in Spain, Italy and Portugal through Idealista's mobile app API: every search filter, GPS radius search, special zones like beachfronts, listings by agency phone, price drops, all photos and advertiser contacts.
Pricing
from $2.70 / 1,000 results
Rating
5.0
(1)
Developer
axly
Maintained by CommunityActor stats
2
Bookmarked
64
Total users
4
Monthly active users
13 hours ago
Last modified
Categories
Share
Extract property listings from Idealista in Spain, Italy and Portugal: price, size, rooms, bathrooms, floor, address, GPS coordinates, price-drop history, energy certificate, features, all photos and the listing agency's contact details. Search by place name, by Idealista location ID, by GPS radius, or list every property an agency advertises under one phone number.
The actor talks to the API behind Idealista's mobile app rather than scraping web pages, so results come back as clean structured JSON with no browser involved.
Who it's for
- Property investors: screen whole cities or neighbourhoods by price, price per m², size and condition, and spot price drops early.
- Agencies & lead generation: build lists of listings and the agencies behind them, or monitor a competitor's full portfolio by phone number.
- PropTech & data teams: feed valuation models, dashboards and comparison tools with a consistent schema across three countries.
- Researchers & journalists: track asking prices, rents and supply over time.
What you get
Every row is one Idealista listing, with around 80 fields when Fetch full details is on. The most useful ones (fields marked (detail) need that option):
| Field | Description |
|---|---|
propertyCode, url | Idealista listing ID and listing URL |
price, priceInfo, priceByArea | Asking price (€), currency info, price per m² |
priceDropValue, priceDropPercentage, dropDate | Latest price reduction and when it happened |
size, rooms, bathrooms, floor | Size (m²), bedrooms, bathrooms, floor |
propertyType, detailedType, operation | Category (homes, offices…), subtype (flat, chalet…), sale or rent |
address, province, municipality, district, neighborhood | Location text |
latitude, longitude, locationId | GPS coordinates and Idealista location ID |
status, newDevelopment, exterior, hasLift | Condition and building info |
features | Pool, terrace, air conditioning, storage room, etc. |
energyCertification | Energy rating and consumption/emissions (detail) |
description | Listing text |
propertyComment, comments | Full listing text, in other languages when available (detail) |
thumbnail, numPhotos, multimedia | Main photo, photo count, every image URL |
hasVideo, has3DTour, hasPlan | Media available on the listing |
contactInfo | Advertiser name and phone number |
modificationDate | When the listing was last updated (detail) |
country, searchType | Country code and how the listing was found |
Without full details runs are faster and still include price, price drops, size, rooms, address, coordinates, description, photos and advertiser contact.
High-value use cases
- Deal screening: pull every flat for sale in a district, compute price per m² and flag listings far below the local median.
- Price-drop alerts: schedule daily runs sorted by publication date and watch
priceDropPercentage. - Rental yield analysis: run the same area for
saleandrentand compare price per m². - Competitor monitoring: list everything an agency advertises using its phone number.
- Beachfront property research: an
autosearch for "primera línea de playa" resolves to Idealista's beachfront zones across Spain and searches them; to target one zone, pass its ID withsearchType: "zoiId".
Input
Required: country, operation, propertyType. Everything else is optional.
Core
| Field | Values | Default |
|---|---|---|
country | es (Spain) · it (Italy) · pt (Portugal) | es |
operation | sale · rent · share (rooms) · transfers (business transfers) | sale |
propertyType | homes · offices · premises · garages · bedrooms · lands · storageRooms · buildings · newDevelopments · transfers | homes |
Where to search
searchType | What it does | Fields it needs |
|---|---|---|
auto (default) | Resolves a place name to Idealista locations, plus any matching special zone, and searches them | locationPrefix |
locationIds | Searches one Idealista location ID directly, e.g. 0-EU-ES-28-07-001-079 | locationIds |
zoiId | Searches one Idealista special zone, e.g. primera-linea-de-playa-calafell | zoiId |
phone | Lists all properties advertised under one agency phone number | phone |
center | Searches a circle around a GPS point | center (lat,lng), distance (metres) |
Results & sorting
| Field | Description | Default |
|---|---|---|
maxProperties | Maximum number of listings to return (minimum 10) | 1000 |
sortBy | weigh (Idealista relevance) · price · publicationDate · size, always descending | weigh |
sinceDate | Published within: -1 any time · T 24 h · Y 48 h · W week · M month | -1 |
Filters
- Price & size:
minPrice,maxPrice(€),minSize,maxSize(m²),minRooms,minBathrooms,minTransferCost,maxTransferCost. - Features (true/false):
elevator,garage,garden,swimmingPool,terrance(terrace),airConditioning,petsAllowed,seaViews,balcony,builtinWardrobes,storeRoom,accessible,exterior,heating,corner,smokeVentilation,bankOffer,hasPlan,virtualTour. - Quality:
energyEfficiency(high= A+/A/B,medium= C/D,low= E/F/G),furnished,preservations(condition),floorHeights,subTypology(detached, semi-detached, terraced, apartment). - Commercial:
ubication,commercialActivitySubcategories,businessOperationType.
Output options
| Field | Description | Default |
|---|---|---|
fetchFullDetails | Also fetch each listing's detail record: full text in all languages, energy certificate, detailed characteristics, last-update date | false |
generateMarketStats | Add one summary row at the end (type: "market_stats") with the listing count and search settings | false |
proxyConfiguration | Proxy used when Idealista temporarily blocks an IP | Apify residential proxy |
customProxyUrl | Your own proxy URL, used instead of Apify Proxy | — |
Example input
{"country": "es","operation": "sale","propertyType": "homes","locationPrefix": "Valencia","maxProperties": 500,"minPrice": 200000,"maxPrice": 800000,"elevator": true,"energyEfficiency": ["high"],"fetchFullDetails": true}
More starting points:
{ "country": "es", "operation": "rent", "propertyType": "homes", "searchType": "center", "center": "40.4168,-3.7038", "distance": 5000, "maxProperties": 150 }
{ "country": "es", "operation": "sale", "propertyType": "homes", "searchType": "phone", "phone": "960000000", "maxProperties": 100 }
Example output (one row, trimmed)
{"propertyCode": "110258143","url": "https://www.idealista.com/inmueble/110258143/","price": 795000,"priceByArea": 4119,"priceDropValue": 65000,"priceDropPercentage": 8,"size": 193,"rooms": 4,"bathrooms": 3,"floor": "7","propertyType": "homes","detailedType": { "typology": "flat" },"operation": "sale","address": "Flat / apartment in Calle De en Sanz, Sant Francesc, València","municipality": "València","district": "Ciutat Vella","neighborhood": "Sant Francesc","latitude": 39.4690659,"longitude": -0.3774947,"status": "good","hasLift": true,"exterior": true,"numPhotos": 48,"hasVideo": true,"has3DTour": true,"country": "es","searchType": "locationIds"}
Scheduling & integrations
- Schedules: run daily or weekly from Apify Console → Schedules to track new listings and price drops.
- Export: download JSON, CSV, Excel or XML, or read results through the Apify API.
- Integrations: send results to Google Sheets, Slack, Make, Zapier, n8n, Airbyte or your own webhook.
- API:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("axlymxp/idealista-api-actor").call(run_input={"country": "pt", "operation": "rent", "propertyType": "homes","locationPrefix": "Lisboa", "maxProperties": 200,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("price"), item.get("size"), item.get("address"))
Use with AI agents (MCP)
Every public Apify actor can be called by AI assistants such as Claude, Cursor or ChatGPT through the Apify MCP server. Ask something like "find 3-bedroom flats for rent in Lisbon under €2,000 on Idealista", and the agent runs this actor and reads the results.
FAQ
Do I need a proxy?
Usually it isn't needed, but Idealista sometimes blocks datacenter IPs for a while. The actor then switches to a fresh proxy IP and retries, using Apify's residential proxy by default. You can pass your own proxy with customProxyUrl.
How many listings can I get?
Up to maxProperties per run (default 1,000). For very large areas, splitting by district or price band keeps runs shorter and easier to re-run.
How fresh is the data?
Live. Each run queries Idealista at run time; modificationDate shows when each listing was last updated.
Which countries are supported? Spain (idealista.com), Italy (idealista.it) and Portugal (idealista.pt).
Can I search beachfront or other special zones?
Yes. An auto search for "primera línea de playa" resolves to Idealista's beachfront zones (the run log lists each zone ID, such as primera-linea-de-playa-calafell). To search a single zone, set searchType to zoiId and pass that ID in zoiId.
Why is the market-stats row so small? It's a run summary (listing count and search settings), handy as a marker in scheduled datasets. Compute averages such as price per m² from the listing rows themselves.
Is it legal? The actor collects publicly listed property information and the business contact details advertisers publish with their listings. You're responsible for using the data in line with Idealista's terms and data-protection law (GDPR) where you operate.
Something's missing or broken? Open an issue on the actor's Issues tab with the input you used.