Is there an Idealista API?
Yes, but you cannot sign up for it yourself. Idealista gives out its Search API by request. You describe your project in a form and Idealista decides whether you get a key.
There is no public price list, quota page or documentation. If you need listing data from Spain, Portugal or Italy without waiting for approval, a scraper is the other route.
Idealista API
The Idealista developer site is one page with one form. It asks for your name, your email and a description of your project. The text on the page:
- "Search API lets you integrate property information published on idealista into your site or app."
- "To receive an API key get in touch and tell us a bit about your project."
There is no public documentation next to the form (checked on 19 October 2026). You learn the request limits, the fields and the price after Idealista says yes. Quota numbers that circulate online could not be checked against a current Idealista page, so we leave them out.
idealista/data
For market analysis Idealista has a separate business, idealista/data. It sells to banks and servicers, appraisers, developers, investors and agencies:
- monthly market reports on sale and rental prices
- portfolio valuation, market studies and an automated valuation tool
- APIs, historical data and custom data deliveries
None of it has a public price. Every product leads to a "request more information" form. It suits a bank valuing a mortgage book. It is a long route for one analyst who wants this week's listings in one city.
Idealista without an API key
Our Idealista Scraper reads the public listing pages on idealista.com, idealista.pt and idealista.it. You choose a country, sale or rent and a location, add filters for price, size, bedrooms or property type, and download the listings as a spreadsheet or JSON.
We ran it today in all three countries:
| Search | Listings | Run time |
|---|---|---|
| Madrid, for sale | 100 | 16 min 28 s |
| Lisbon, to rent | 30 | 11 min 51 s |
| Milan, for sale | 30 | 9 min 8 s |
The Madrid run used this input:
{
"country": "ES",
"listingType": "sale",
"searchQuery": "Madrid",
"maxResults": 100
} One listing from it, trimmed to the main fields:
{
"title": "Ático en venta en Calle de Alcalá",
"price": 990000,
"currency": "EUR",
"listingType": "sale",
"propertyType": "penthouse",
"district": "Guindalera",
"city": "Madrid",
"bedrooms": 2,
"bathrooms": 2,
"surface": 102,
"hasLift": true,
"hasTerrace": true,
"condition": "good",
"imageCount": 29,
"has3DTour": true,
"advertiserType": "professional",
"propertyCode": "104570830",
"url": "https://www.idealista.com/inmueble/104570830/"
} Every row also carries the full description, the photo URLs and the advertiser's name. Idealista blocks most automated traffic, so the actor opens each listing in a real browser session. That is why it is slow, and why the runs above finished instead of returning empty pages.
Private sellers
Idealista marks every listing as particular (a private owner) or profesional (an agency). It only shows that on the listing page itself. The actor reads it for every row and returns it as advertiserType: "private" or "professional".
You can also filter on it, to get only owners renting or selling directly:
{
"country": "PT",
"listingType": "rent",
"searchQuery": "Lisboa",
"advertiserType": "private",
"maxResults": 25
} In the Lisbon rental run above, 10 of the 30 listings came from private owners. A private-only run is slower, because the actor has to open listings it then throws away. Give it a longer timeout.
Field coverage
How often each field came back filled in today's runs (filled rows / all rows):
| Field | Spain | Portugal | Italy |
|---|---|---|---|
| Price, surface, description, photos | 100/100 | 30/30 | 30/30 |
| Advertiser type | 100/100 | 30/30 | 30/30 |
| District | 100/100 | 25/30 | 30/30 |
| Bathrooms | 100/100 | 16/30 | 30/30 |
| Bedrooms | 100/100 | 0/30 | 0/30 |
| Rooms | 100/100 | 0/30 | 30/30 |
| Price per m² | 72/100 | 0/30 | 22/30 |
| Coordinates | 1/100 | 16/30 | 26/30 |
| Phone number | 0/100 | 0/30 | 0/30 |
| Energy certificate | 0/100 | 0/30 | 0/30 |
Limits
- No phone numbers. Idealista shows the advertiser's number only after a click, and the actor does not return it.
- No energy certificate and no floor number yet. Both fields come back empty or wrong at the moment. We are fixing the parser.
- Bedrooms are empty on Portuguese and Italian listings, where Idealista writes the layout as "T2" or "bilocale". Italy has the room count in
rooms. - Coordinates only come back when the listing shows an exact address. Most Spanish listings show an area, so latitude and longitude are mostly empty there.
- Postal code and province are not on the listing page.
- Speed. A few listings per minute is fine for a city or a district. A whole country takes hours.
Cost
The actor charges $0.005 per listing plus $0.01 per run, from 25 October 2026. Until then it is $0.002 per listing and $0.005 per run. At the new price, 1,000 listings cost about $5.
For other Spanish, Portuguese and Italian portals, and the rest of Europe in one search, see European Property Search. If you need listings delivered on a schedule, we also run managed feeds: hello@studioamba.dev.
The actor is on the Apify Store: apify.com/studio-amba/idealista-scraper