Idealista Scraper — Property Listings & Agents
Pricing
from $1.60 / 1,000 result items
Idealista Scraper — Property Listings & Agents
Scrape Idealista property listings with prices, features, locations, images, descriptions, and agency names for real estate research.
Pricing
from $1.60 / 1,000 result items
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
Idealista Scraper collects public property listings from Idealista Spain, Italy and Portugal, with price, price per m², rooms, size, floor, price drops, photos and the advertising agency, plus coordinates, address, energy rating and bathrooms when you turn on detail pages. It is built for property investors, valuation teams and market analysts. Search records cost USD 2.00 per 1,000 and detail-enriched records USD 3.00 per 1,000 on the FREE tier, and you pay only for listings saved to your dataset.
Free users: maximum 20 results per run. Paid plans can request up to 1,800 listings per search.
What data does Idealista Scraper return?
Each saved listing has these fields:
| Field | Type | Description |
|---|---|---|
listingId, url | string | Idealista listing ID and page |
locale, operation | string | ES, IT or PT; sale or rent |
title, propertyType | string | Headline and type as Idealista shows it (Piso, Ático, Trilocale, Apartamento T2) |
price, pricePeriod, currency | number, string | Asking price in euros; pricePeriod is month for rents |
originalPrice, priceDropPercent | number or null | Previous price and drop when Idealista shows a reduction |
pricePerSqm | number or null | Price per m² |
rooms, size, floor | number, number, string | Bedrooms (total rooms in Italy), built m², floor text |
elevator, parking | boolean or null | Lift in the building; parking included in the price |
description, amenities, photos | string, arrays | Snippet, feature lines and photos from the search card |
agencyName, agencySlug, agencyUrl | string or null | Advertising agency and its Idealista profile |
bathrooms, address, latitude, longitude, energyRating | mixed | Filled with Fetch listing details |
detailsFetched, scraped_at, source_url | mixed | Whether the listing page was read, save time, source page |
With Fetch listing details on, description is the full text, amenities the full feature list and photos the whole gallery.
Example row (detail-enriched, shortened):
{"listingId": "112611698","url": "https://www.idealista.com/inmueble/112611698/","locale": "ES","operation": "sale","title": "Piso en Calle de Buitrago del Lozoya, Peñagrande, Madrid","propertyType": "Piso","price": 995000,"pricePeriod": "total","originalPrice": 1050000,"priceDropPercent": 5,"pricePerSqm": 5621,"rooms": 3,"bathrooms": 3,"size": 177,"floor": "4ª planta exterior con ascensor","elevator": true,"parking": true,"address": "Calle de Buitrago del Lozoya, Barrio Peñagrande, Distrito Fuencarral, Madrid","latitude": 40.4725488,"longitude": -3.7157945,"energyRating": "E","agencyName": "aProperties Real Estate Madrid","agencyUrl": "https://www.idealista.com/pro/aproperties-mad/","detailsFetched": true}
How do I scrape Idealista listings?
Pick a country and operation, then give either a location slug or full Idealista search URLs.
Search by location slug with filters:
{"country": "es","operation": "sale","propertyType": "homes","location": "madrid-madrid","maxItems": 50,"minPrice": 200000,"maxPrice": 600000,"bedrooms": ["2", "3"],"lift": true,"sortBy": "lowestPrice"}
The location slug is the part of an Idealista search URL after the property type: madrid-madrid, barcelona-barcelona, madrid/chamberi (a district), milano-milano, lisboa. If Idealista does not know a slug or filter, the run ends with outcome REJECTED; a valid search with no matching listings ends with outcome EMPTY. Neither charges anything for results.
Search by URL (any filters you set on the site are kept):
{"startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid-madrid/" }],"maxItems": 50}
When startUrls is set, location, operation, propertyType and the filter fields are ignored.
What each country supports:
| Input | Spain | Italy | Portugal |
|---|---|---|---|
| Homes, offices, garages, land, storage rooms, buildings | yes | yes | yes |
| New developments | yes | no | yes |
| Premises (shops) | yes | yes | no |
| Rooms (rent only) | yes | yes | yes |
exterior filter | yes | no | no |
| Other filters, sorting, publication date | yes | yes | yes |
Italy filters by total rooms, so bedrooms: ["2"] searches three-room homes (trilocali). Size filters use Idealista's steps (60, 80 … 200, 300 … 600 m² for sale; 40 … 400 m² for rent); other values search the nearest wider step and rows outside your range are dropped. Idealista shows at most about 1,800 results per search, so split big markets by district, type or price band.
How much does Idealista Scraper cost?
Each saved listing is charged exactly one event. A listing is saved and charged once per run, even if it appears on several result pages.
| Event | FREE | BRONZE | SILVER | GOLD and above |
|---|---|---|---|---|
Search listing (result-item) | USD 0.002001 | USD 0.00195 | USD 0.0019 | USD 0.0016 |
Detail-enriched listing (enriched-listing) | USD 0.003001 | USD 0.002925 | USD 0.00285 | USD 0.0024 |
With Fetch listing details on, each listing is saved once, after its listing page is read, and charged the enriched price instead of the search price. If a listing page cannot be read, the search-card data is saved without a charge. The current build charges no start fee. Worked totals on the FREE tier: 100 search listings cost about USD 0.20; 100 detail-enriched listings cost about USD 0.30. Free Apify plans receive up to 20 listings per run; a larger maxItems is reduced to 20 and the run status says so.
How fast is it, and what happens when Idealista refuses a page?
One result page holds 30 listings and loads in about 5–20 seconds; detail pages take about 7 seconds each, several in parallel. The 3-listing example in the Console finishes in well under a minute.
Idealista's bot check refuses some requests in bursts. The Actor retries a refused page and then loads it with JavaScript rendering: up to five loaded attempts for a result page and three for a listing page, plus extra free retries when the data route itself times out. If every attempt for a search is refused, nothing is saved or charged for that search: the run ends as failed with outcome BLOCKED when no search delivered listings, or succeeds with outcome PARTIAL when others did. On 2026-10-30 Portuguese pages were refused for a stretch of about 15 minutes while Spanish and Italian pages loaded normally.
Every run writes an OUTPUT record with the outcome (DATA, PARTIAL, EMPTY, REJECTED, BLOCKED, FAILED or CONFIGURATION), the result count Idealista reported for each search, the charged events and the stop reason.
Use it from an AI assistant
Idealista Scraper can be called from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server at https://mcp.apify.com/?tools=muhammadafzal/idealista-scraper. Example prompt: "Get 30 two-bedroom flats for sale in Madrid city under 500,000 euros from Idealista with price per m² and floor."
API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/idealista-scraper').call({country: 'es',operation: 'rent',location: 'barcelona-barcelona',maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(run.status, items.length);
FAQ
Is there an official Idealista API? Idealista offers a partner API to approved real-estate professionals only. This Actor reads the public website instead.
Does it return agency phone numbers? No. Idealista shows phone numbers only after a visitor clicks, so they are not in the page and not in the data. You get the agency name and its Idealista profile URL.
Can I scrape Spain, Italy and Portugal in one run?
With startUrls, yes: paste search URLs from any of the three sites. With location, one country per run.
Why did my run end as Blocked? Idealista refused every attempt to load the search page. Nothing was saved for it and no result events were charged. Retry later.
How many listings do free Apify plans get? Up to 20 per run. Paid plans can request up to 1,800 per search.
Are duplicate listings charged twice? No. Each listing ID is saved and charged once per run.
Related Actors
- Dubizzle Scraper — UAE Property, Cars & Brokers for UAE property listings and agent contacts.
Legal note
Results can contain personal data, such as names of private advertisers or agents in listing descriptions, which the GDPR protects. Collect and use it only with a legitimate purpose, and respect Idealista's terms.
Last verified: 2026-10-30