Is there an Idealista API?

Three routes to Idealista property data: the Search API by request, the paid idealista/data service and a scraper, all ending in the same JSON listing record

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.

3countries
3-6listings per minute
$0.005per listing from 25 Oct
No keyor account needed

We ran it today in all three countries:

SearchListingsRun time
Madrid, for sale10016 min 28 s
Lisbon, to rent3011 min 51 s
Milan, for sale309 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):

FieldSpainPortugalItaly
Price, surface, description, photos100/10030/3030/30
Advertiser type100/10030/3030/30
District100/10025/3030/30
Bathrooms100/10016/3030/30
Bedrooms100/1000/300/30
Rooms100/1000/3030/30
Price per m²72/1000/3022/30
Coordinates1/10016/3026/30
Phone number0/1000/300/30
Energy certificate0/1000/300/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