Idealista Scraper
Pricing
from $15.00 / 1,000 property scrapeds
Idealista Scraper
Scrape Idealista real estate listings across Spain, Portugal & Italy. Get 70+ fields per property: price, photos, contacts, energy rating, and price/m² analytics. Filter by location, price, size, features, and more. No account needed.
Pricing
from $15.00 / 1,000 property scrapeds
Rating
0.0
(0)
Developer
Yuliia Kulakova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Share
Idealista Real Estate Scraper — Spain, Portugal & Italy

Extract structured property data from Idealista.com — the #1 real estate platform in Spain, Portugal, and Italy. Get prices, photos, contacts, energy ratings, floor plans, and analytics — ready to use in spreadsheets, dashboards, or your own app.
No coding required. Just enter a location or paste a URL and click Run.
What You Get
Every scraped property includes 70+ data fields, including:
| Category | Fields |
|---|---|
| Listing | Title, URL, price, currency, operation (sale/rent), property type |
| Property | Rooms, bathrooms, built area (m²), usable area, floor, year built |
| Features | Elevator, parking, terrace, garden, pool, AC, furnished, storage |
| Location | Address, city, district, region, neighborhood, postal code |
| Photos | Full image URLs with captions and room tags, thumbnail, photo count |
| Contact | Agent name, phone number, agency name and logo |
| Energy | Energy rating (A–G), consumption value |
| Analytics | Price per m², compatibility fields for data analysis |
| Meta | Scraped timestamp, processing time, source URL, status |
Key Features
🌍 3 Countries, One Tool
Search across Spain (idealista.com), Portugal (idealista.pt), and Italy (idealista.it) — country is auto-detected from your URL or set manually.
🔍 Powerful Search Options
- Search by location — enter any Idealista location slug (e.g.
madrid-madrid,barcelona-barcelona,lisboa,roma) - Filter by operation: sale, rent, or room share
- Filter by property type: homes, offices, premises, garages, rooms
- Paste direct property URLs for targeted scraping
💰 Rich Filters
Narrow results before scraping:
- Min/max price
- Min/max area (m²)
- Minimum bedrooms and bathrooms
- Required features: elevator, parking, terrace, pool, AC, furnished, new build
- Property condition: new, good condition, to renovate
- Publication date: last 24h, 48h, week, or month
📐 GPS Polygon & Radius Search
Draw a custom geographic boundary and scrape only properties inside it — perfect for hyperlocal market research. Or search within a radius from any GPS point.
📊 Price/m² Analytics
Every property automatically gets a pricePerM2 field calculated from price and area. Compare listings on equal terms instantly.
♻️ Deduplication
Running the same search repeatedly? The scraper remembers which properties it already collected and skips them automatically — so you only pay for new listings.
Sample Output
{"propertyId": 111464259,"title": "Ático en Calle de los Mancebos","url": "https://www.idealista.com/inmueble/111464259/","price": 2300,"currency": "EUR","currencySuffix": "€/month","operation": "rent","rooms": 2,"bathrooms": 2,"constructedArea": 79,"floor": "Planta 5ª exterior","hasElevator": true,"hasTerrace": true,"hasAC": true,"condition": "good","energyRating": "C","address": "Palacio, Madrid","city": "Madrid","district": "Palacio","contactName": "Engel & Völkers Madrid","userType": "professional","pricePerM2": 29.11,"imageCount": 25,"thumbnailUrl": "https://img4.idealista.com/...","status": "success","scrapedAt": "2026-05-14T09:29:08.182Z"}
How to Use
Option 1 — Search by Location
- Open the actor and click Try for free
- Enter a location in the Search Location field (e.g.
madrid-madrid) - Choose operation type: sale or rent
- Set your filters (price, size, features)
- Set Max Results (e.g. 100)
- Click Start and wait for results
Option 2 — Scrape Specific URLs
Paste any Idealista property or search page URL into the URLs field. The scraper automatically detects the country and handles both listing pages and individual property pages.
Option 3 — GPS Polygon Search
Pass an array of {lat, lng} points in the GPS Polygon field to scrape only properties within a custom geographic area — ideal for investment zone analysis.
Input Parameters
| Parameter | Type | Description |
|---|---|---|
urls | array | List of Idealista URLs to scrape |
searchLocation | string | Location slug (e.g. madrid-madrid, lisboa) |
operation | string | sale, rent, or share |
propertyType | string | homes, offices, premises, garages, bedrooms |
country | string | es, pt, it, or auto (default) |
minPrice / maxPrice | integer | Price range filter |
minSize / maxSize | integer | Area filter in m² |
bedrooms / bathrooms | integer | Minimum rooms filter |
features | array | Required features: elevator, parking, terrace, pool, ac, furnished, newBuild |
condition | string | new, good, toRenovate, or any |
sinceDate | string | 24h, 48h, week, month, or any |
maxResults | integer | Maximum properties to return (1–10,000) |
includeDetails | boolean | Fetch full property details (default: true) |
includePhotos | boolean | Include photo URLs (default: true) |
includeContact | boolean | Include agent contact info (default: true) |
includeEnergy | boolean | Include energy rating (default: true) |
deduplication | boolean | Skip already-scraped properties (default: true) |
calculatePricePerM2 | boolean | Auto-calculate price per m² (default: true) |
gpsPolygon | array | Custom geographic boundary as [{lat, lng}] |
radiusSearch | object | {center: {lat, lng}, radiusKm: number} |
Pricing
This actor uses pay-per-result pricing — you only pay for what you actually scrape.
| Event | Price |
|---|---|
| Actor start | $0.01 per run |
| Property scraped | $0.015 per property |
Examples:
- 100 properties → ~$1.51
- 1,000 properties → ~$15.01
- 5,000 properties → ~$75.01
$15 per 1,000 properties — one of the most complete Idealista datasets available.
No monthly fees. No minimums. Pay only when you run.
Use Cases
- Real estate investors — monitor price trends and find undervalued properties across Spain, Portugal, and Italy
- Property portals — build or enrich your own listings database with fresh Idealista data
- Market researchers — analyze price-per-m² by neighborhood, city, or region
- Relocation services — compile curated property options for clients moving to Southern Europe
- Rental arbitrage — identify high-yield rental opportunities with GPS polygon precision
- Data journalists — research housing affordability and market dynamics in Mediterranean markets
Frequently Asked Questions
Which countries does it support? Spain (idealista.com), Portugal (idealista.pt), and Italy (idealista.it). Country is auto-detected from the URL — no manual setup needed.
Does it include phone numbers?
Yes — agent phone numbers are included when available via the contactPhone field. Idealista sometimes restricts numbers to logged-in users, in which case the agent name and agency are still returned.
Does it include GPS coordinates? Latitude and longitude are returned when Idealista makes them publicly available. For many listings, Idealista shows only the neighborhood rather than exact coordinates — this is a platform limitation, not a scraper limitation.
How many results can I get? Up to 10,000 per run. For very large datasets, split your search using price range or location filters and run multiple times with deduplication enabled.
What happens if a listing is unavailable?
The property is returned with "status": "failed" so you always know which URLs didn't work. This is normal — listings get sold or removed frequently on active markets.
Can I run it on a schedule? Yes. Use Apify Scheduler to run automatically (daily, weekly, etc.) with deduplication enabled — you'll only collect new listings each time, keeping costs low.
Can I scrape multiple cities at once?
Run the actor multiple times in parallel, or pass multiple search URLs in the urls field. Each URL can point to a different city or search filter.
Support
Having issues or need a custom feature? Open a ticket via the Issues tab on this actor's page. We typically respond within 24 hours.