Idealista Scraper: Spain, Italy & Portugal Property Listings
Pricing
from $0.69 / 1,000 listings
Idealista Scraper: Spain, Italy & Portugal Property Listings
Scrape Idealista property listings from Spain, Italy and Portugal by place name or search link: price, rent per month, price per m², price drops, rooms, size, floor, parking, description, tags, agency and photos. Only new listings mode for alerts. No login.
Pricing
from $0.69 / 1,000 listings
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
16 days ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.
Why choose this actor?
- Three countries, one table. Homes for sale and for rent from idealista.com (Spain), idealista.it (Italy) and idealista.pt (Portugal) come back in the same columns: price, rent per month, price per m², the previous price after a drop, rooms, size, floor, parking, description, tags, agency, photo count and link. Our proof run returned 120 listings from Madrid and Barcelona in 72 seconds, with price, size and link on every row. No Idealista account, no cookies to paste, no proxy to set up.
- Type a place or paste your own search. Give a town, district or province name and the actor uses Idealista's own search to find it, or paste any Idealista results link with your filters (price, size, bedrooms, property type, order) and every filter is kept. A Barcelona rentals link capped at 2,000 € a month returned only rents up to 2,000 €.
- You pay only for listings you receive. One charge per listing saved to your dataset, plus a flat start fee per run. Pages Idealista refused, place names it does not know, and a listing already delivered earlier in the run cost nothing; with "only listings not delivered before" a daily alert pays only for new listings.
Part of The Mine Works Real estate family: Zillow Rentals Scraper, Zillow Sold Comps Scraper, India Real Estate MCP, Housing.com Scraper, 99acres Scraper, MagicBricks Scraper.
Try it in one minute
Paste this input and press Start. It returns the first 30 homes for sale that Idealista shows for Madrid, each with price, rooms, size, floor, agency and link, in about 35 seconds:
{"locations": ["Madrid"],"country": "es","operation": "sale","maxItemsPerSearch": 30}
You can tell the actor what to read in two plain forms, and mix them in one run:
- Place names in
locations: a town, district or province as you would type it on Idealista (Madrid,Marbella,Chamberí,Milano,Bergamo,Lisboa), searched for homes for sale or for rent on the country site you choose. In Spain and Italy Idealista's own text search finds the place. In Portugal the name is used as the place part of the link (lisboa,porto), so use the spelling Idealista uses in its links. - Idealista search links in
startUrls: copy the address of any results page from idealista.com, idealista.it or idealista.pt after setting filters and order there. Any property type works (homes, rooms, offices, premises, garages, land, new builds), and a link to page 3 starts at page 3.
Apify's free plan includes $5 of credit every month, which covers about 4,800 results at this actor's price.
Copy to your AI assistant
themineworks/idealista-scraper on Apify. Returns Idealista property listings from Spain (idealista.com), Italy (idealista.it) and Portugal (idealista.pt) by place name or Idealista search link, one row per listing with property code, link, title, price, price period for rents, price per m², previous price and drop percent, rooms, size in m², floor, parking included, detail lines, description snippet, tags, professional or private advertiser, agency name and page for professionals, photo count, main photo, and floor plan, video and 3D tour flags. Call ApifyClient("TOKEN").actor("themineworks/idealista-scraper").call(run_input={"locations": ["Marbella"], "country": "es", "operation": "sale", "maxItemsPerSearch": 90}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: locations (place names) or startUrls (Idealista search results links). Optional: country ("es", "it" or "pt", default "es", for place names), operation ("sale" or "rent", default "sale", for place names), maxItemsPerSearch (30 to 1,800, default 90), onlyNewListings (default false). Skip rows that have "_type": "info". Full spec: GET https://api.apify.com/v2/acts/themineworks~idealista-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
Key features
- About 30 fields per listing: property code, link, title (type and address), price, price as shown, currency, price period (month for rentals), price per m², previous price and drop percent, rooms (bedrooms in Spain, locali in Italy, the T number in Portugal), size in m², floor line, parking included, the raw detail lines, the start of the description, Idealista tags, professional or private advertiser, agency name and Idealista page, photo count, main photo, and whether there is a floor plan, a video or a 3D tour.
- Spain, Italy and Portugal, sale and rent, from place names or from any Idealista results link, in the site's own language.
- Idealista's own filters, through your link: the filters and order you set on Idealista become part of the page address, so pasting that link makes the actor read the same results you see. Tested with a Barcelona rentals link capped at 2,000 € a month: 749 results on Idealista, and every row we read was at or under 2,000 €.
- Up to 1,800 listings per search, 30 a page. After the first page the actor knows the total and fetches the pages it still needs four at a time.
- Alerts on a schedule: "only listings not delivered before" remembers what earlier runs with the same searches delivered and returns only new listings.
- Private advertisers are respected: they are marked
is_professional: false, carry no name, and any phone number or email they wrote into the description is removed.
How to use it
Basic: homes for sale in one town
{"locations": ["Marbella"],"country": "es","operation": "sale","maxItemsPerSearch": 300}
Several places at once
Each line is its own search on the chosen country site.
{"locations": ["Roma", "Bergamo"],"country": "it","operation": "rent","maxItemsPerSearch": 150}
Your own filters: paste the Idealista link
Set price, size, bedrooms, property type and order on Idealista, copy the address of the results page and paste it. Links from all three countries can go in one run.
{"startUrls": ["https://www.idealista.com/alquiler-viviendas/barcelona-barcelona/con-precio-hasta_2000/","https://www.idealista.pt/arrendar-casas/porto/"],"maxItemsPerSearch": 120}
Daily alert: new listings in a town
Investors and buyers' agents watch a few areas for anything new. Turn on "only listings not delivered before" and put the run on an Apify schedule once a day; each run returns, and charges for, only listings that earlier runs with the same searches did not deliver.
{"locations": ["Marbella"],"country": "es","operation": "sale","maxItemsPerSearch": 90,"onlyNewListings": true}
Tip: in your Idealista link choose the newest first order, so the newest listings are on the first pages.
Price drop watch for an agency or investor
Every row carries previous_price and price_drop_percent when Idealista shows a drop. Run a city weekly and filter the dataset on price_drop_percent to see who is cutting prices and by how much.
{"locations": ["Madrid"],"country": "es","operation": "sale","maxItemsPerSearch": 900}
Rental market snapshot for Portugal
{"locations": ["lisboa", "porto"],"country": "pt","operation": "rent","maxItemsPerSearch": 300}
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
locations | array of strings | ["Madrid"] | Place names, one per line, searched on the country site for the operation. Idealista links are accepted here too. |
country | string | es | es (idealista.com), it (idealista.it) or pt (idealista.pt), for place names. |
operation | string | sale | sale or rent, homes, for place names. |
startUrls | array of strings | empty | Idealista search results links with your filters and order, from any of the three sites. |
maxItemsPerSearch | integer | 90 | Most listings per place or link, 30 to 1,800. |
onlyNewListings | boolean | false | Skip listings that an earlier run with the same searches delivered. |
Up to 50 searches per run. Links keep their own country, operation, property type, filters and order.
What data do you get?
One row per listing, grouped here by what it describes:
- The listing:
property_code,url,title,description,tags,details,photo_count,main_photo_url,has_floor_plan,has_video,has_3d_tour. - Price:
price,price_text,currency,price_period,price_per_m2,previous_price,price_drop_percent. - The property:
rooms,size_m2,floor,parking_included. - Who advertises it:
is_professional,agency_name,agency_url(agencies and developers only). - Where it came from:
country,site,search,page,rank,scraped_at.
title holds the property type and the address as Idealista shows it (for example "Piso en Calle de Ibiza, Ibiza, Madrid"). A field Idealista does not show for a listing is left out of that row, for example price_period on sales and previous_price when there was no drop.
Stable fields for automations
These fields were present in every row of our proof runs (180 listings from Spain, Italy and Portugal) and are safe to build on:
| Field | Meaning |
|---|---|
property_code | Idealista's listing code, the same across runs |
url | Link to the listing |
title | Property type and address |
price | Asking price, or rent per period |
price_text | Price as Idealista shows it |
currency | EUR |
size_m2 | Size in square metres |
parking_included | True or false |
is_professional | Agency or private advertiser |
photo_count | Number of photos |
country | es, it or pt |
search | Your place name or link |
rank | Position in the results |
scraped_at | Collection time, UTC |
These names will not change. New fields may be added next to them.
Output examples
A flat for sale in Madrid with a price drop (description shortened):
{"property_code": "111278716","url": "https://www.idealista.com/inmueble/111278716/","title": "Piso en Calle de Ibiza, Ibiza, Madrid","price": 895000,"price_text": "895.000€","currency": "EUR","previous_price": 945000,"price_drop_percent": 5,"rooms": 3,"size_m2": 104,"floor": "1ª planta exterior con ascensor","parking_included": false,"details": ["3 hab.", "104 m²", "1ª planta exterior con ascensor"],"description": "PISO EN VENTA REFORMADO EN CALLE IBIZA Piso exterior en venta en Calle Ibiza...","tags": [],"is_professional": true,"agency_name": "aProperties Real Estate Madrid","agency_url": "https://www.idealista.com/pro/aproperties-mad/","photo_count": 49,"main_photo_url": "https://img4.idealista.com/blur/591_420_mq/0/id.pro.es.image.master/52/48/fe/1431430872.jpg","has_floor_plan": true,"has_video": true,"has_3d_tour": true,"country": "es","site": "idealista.com","search": "Madrid","page": 1,"rank": 1,"scraped_at": "2026-10-05T22:01:56.520Z"}
A flat for rent in Barcelona with a garage, from a filtered link:
{"property_code": "112541737","url": "https://www.idealista.com/inmueble/112541737/","title": "Piso en Paseo de Francesc Candel, 47, La Marina del Prat Vermell, Barcelona","price": 1750,"price_text": "1.750€/mes","currency": "EUR","price_period": "month","rooms": 2,"size_m2": 70,"floor": "5ª planta exterior con ascensor","parking_included": true,"details": ["Garaje incluido", "2 hab.", "70 m²", "5ª planta exterior con ascensor"],"is_professional": true,"agency_name": "Glover Barcelona Real Estate S.L","photo_count": 38,"country": "es","search": "https://www.idealista.com/alquiler-viviendas/barcelona-barcelona/con-precio-hasta_2000/","rank": 16}
A rental in Rome from idealista.it:
{"property_code": "32410651","url": "https://www.idealista.it/immobile/32410651/","title": "Appartamento in Via della Castelluccia di San Paolo, Castel di Leva, Roma","price": 1500,"price_text": "1.500€/mese","price_period": "month","rooms": 5,"size_m2": 90,"floor": "2º piano senza ascensore","is_professional": true,"agency_name": "Ciacci Studio Immobiliare","agency_url": "https://www.idealista.it/pro/ciacci-immobiliare-roma/","photo_count": 33,"has_floor_plan": true,"has_video": true,"country": "it","site": "idealista.it","search": "Roma"}
A studio for rent in Porto from a private advertiser (no name, no contact details; title shortened):
{"property_code": "34790115","url": "https://www.idealista.pt/imovel/34790115/","title": "Apartamento T0 na Rua dos Caldeireiros, 90, ...","price": 850,"price_text": "850€/mês","price_period": "month","rooms": 0,"size_m2": 30,"floor": "3º andar sem elevador","is_professional": false,"photo_count": 12,"country": "pt","site": "idealista.pt"}
The last row of every run that delivered something is an information row. It is never charged; skip rows that have "_type": "info".
Pricing
Pay per event: you pay for each listing delivered to your dataset, plus a flat $0.005 per run, whatever memory you choose. Prices by Apify plan:
| Event | Free plan | Bronze (Starter) | Silver (Scale) | Gold and above (Business) |
|---|---|---|---|---|
Listing delivered (listing-scraped), per 1,000 | $0.99 | $0.89 | $0.79 | $0.69 |
Run start (run-start), once per run | $0.005 | $0.005 | $0.005 | $0.005 |
What is never charged:
- Place names Idealista does not know, and searches with no listings.
- Pages Idealista refused, even after a retry.
- A listing already delivered earlier in the same run (two searches that overlap).
- Listings an earlier run delivered, when "only listings not delivered before" is on.
- The information row at the end of the dataset (it has
"_type": "info").
The proxy that gets through Idealista's bot protection is included in the price; there is no separate proxy fee. To cap a run's cost, set a maximum total charge in the run options; the actor stops cleanly when it is reached.
FAQ
What is Idealista, and what does this actor read? Idealista is the largest property portal in Spain and one of the largest in Italy and Portugal, listing homes, rooms, offices, shops, garages and land for sale and rent. The actor reads Idealista's public search results pages, the same pages any visitor sees, and returns each listing card as a row.
How many listings can I get? Up to 1,800 per place or link and up to 50 searches per run. Idealista shows 30 listings a page. For a big city, split it into districts or use links with price bands, and run them as separate lines.
How fresh is the data? Live. Every run reads Idealista at that moment. For alerts, put the run on a schedule with "only listings not delivered before".
Do I need an Idealista account, cookies or an API key? No. Nothing to sign in to and nothing to supply. The actor reads what an anonymous visitor sees.
Do I need to set up a proxy? No. Idealista blocks plain automated requests, so the actor sends every page through Apify's unblocking proxy, which is included in the price. A page takes about 25 seconds to come back; the actor fetches four at a time.
Does it read the full listing page?
No. It reads the search results, which carry the price, size, rooms, floor, description start, tags and agency for every listing at one request per 30 listings. That keeps runs fast and the price low. Use url to open a listing.
What about private advertisers?
They are marked is_professional: false and the row has no advertiser name. If a private advertiser wrote a phone number or an email into the description, it is replaced with "[phone removed]" or "[email removed]". Phone numbers are never read.
Why is a field missing on some rows?
Idealista does not show it on that card: price_per_m2 appears on some sites and cards only, previous_price only after a drop, floor not for houses, and agency_name not for private advertisers. Missing fields are left out of the row instead of being set to empty.
What happens when a place is not found?
That search is reported in the run summary (OUTPUT in the key-value store) as not_found, the rest of the run continues, and nothing is charged for it. In Portugal, use the place as Idealista writes it in its links (lisboa, porto), or paste a link.
Can I search offices, garages, rooms or new builds?
Yes, with a link: choose the property type on Idealista, copy the results address and put it in startUrls. Place names search homes.
Which export formats are there? JSON, CSV, Excel, XML, HTML table and RSS from the dataset, or the API.
Can I use it from Claude, ChatGPT or Cursor (MCP)? Yes, through Apify's MCP server.
- Connector URL: https://mcp.apify.com/?tools=themineworks/idealista-listings-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http idealista-listings-scraper "https://mcp.apify.com/?tools=themineworks/idealista-listings-scraper"
Is it legal to scrape Idealista? The actor reads only public listing pages that any visitor can see, leaves out private advertisers' names and contact details, and never reads phone numbers. You are responsible for how you use the data, including Idealista's terms and data protection law such as GDPR.
Integrations
- Google Sheets: add the Google Sheets integration to the actor or a schedule, and new listings land in a sheet after each run.
- Make, Zapier and n8n: use the Apify app to start a run and read the dataset, for example to send each new listing in your areas to Slack or email.
- Webhooks: call your own endpoint when a run finishes.
- API: start runs and read results from any language; the Python and JavaScript clients are a few lines each.
- MCP clients: Claude, ChatGPT, Cursor, VS Code and Claude Code, as in the FAQ above.
More from The Mine Works
Real estate
- Zillow Rentals Scraper
- Zillow Sold Comps Scraper
- India Real Estate MCP
- Housing.com Scraper
- 99acres Scraper
- MagicBricks Scraper
- Zillow Property Scraper
- Zillow Photos Scraper
- Real Estate MCP
- Airbnb Scraper
- Domain.com.au Property Scraper
- realestate.com.au Scraper
Social media and video
Leads and business directories
Marketing, SEO and reviews
Science, health and government data
Jobs and hiring
Company and business data
E-commerce and marketplaces
Food and local services
Developer and AI tools
More tools
Support
Found a place, link or field that does not come through? Open an issue on the Issues tab and include the input you used; we answer there. For a new site or source, email dmineworks@gmail.com.
Idealista Scraper turns place names and Idealista links from Spain, Italy and Portugal into one clean table of listings with prices, drops, sizes and agencies, with a charge only for the listings you get.

