All scrapers

Real estate

Idealista Scraper

idealista.com

94.2% Success rate
4.3s Avg response
DataDome Protection
1,120 calls Measured over

Idealista is served through two dedicated plugin endpoints rather than the generic page fetch, across its three sites: idealista.com (Spain), idealista.it (Italy) and idealista.pt (Portugal). The search endpoint takes a location the way idealista writes it in its URLs - a municipality such as madrid-madrid or milano-milano, a district such as madrid/centro or lisboa/arroios, or a province such as malaga-provincia - or any idealista search URL with its filters, and returns the listings already parsed: id, link, title, price with currency and rent period, the original price and the drop in percent after a price cut, price per m², area, rooms, floor, lift, exterior and parking flags, description, tags, photos, plan, video and 3D tour flags, and the agency. Filter by sale or rent, property type (homes, new homes, offices, premises, garages, land, storage, buildings or rooms to rent), price and size ranges, rooms, bathrooms and features such as lift, terrace, pool or garden, and order by price, date, size, price per m² or the biggest price drop. Results come 30 to a page, and a call collects up to 300 across pages, up to the 60 pages idealista shows per search. The detail endpoint takes a listing id or URL and returns the full listing: title, location, operation, property type, price, the price breakdown idealista shows (such as community fees or a deposit), area and usable area, rooms, bathrooms, floor, lift, year built, energy class and consumption, every feature group idealista lists, description, address lines, coordinates, the photo gallery, floor plans, the advertiser and the last update. No idealista account or API key is involved.

What you can extract

  • Listing id, link, title, price, currency and rent period
  • Original price and price drop in percent after a cut, and price per m²
  • Area, rooms, floor, lift, exterior and parking flags
  • Description, tags, photos and plan, video and 3D tour flags
  • Agency, and whether the advertiser is a professional
  • Filters: sale or rent, nine property types, price and size ranges, rooms, bathrooms and 14 features; 10 sort orders
  • Detail: price breakdown, usable area, bathrooms, year built, energy class and consumption, and every feature group
  • Detail: address lines, coordinates, photo gallery, floor plans, advertiser and last update
  • Spain, Italy and Portugal; 30 listings per page, up to 300 per call and 60 pages per search

Dedicated endpoints

/realestate/idealista

Idealista property search

Listings for a location (a municipality, district or province as idealista writes it, with country es, it or pt) or any idealista search URL: listings with id, url, title, priceText, price, currency, pricePeriod, originalPrice, priceDropPercent, pricePerM2, area, rooms, floor, lift, exterior, parking, description, tags, images, imageCount, multimedia (plan, video, 3D tour), agency and professional, plus totalResults, heading, page, nextPage and viewLimitReached. operation (sale or rent), property_type, min_price and max_price, min_size and max_size, rooms, bathrooms, features and sort filter and order the search; 30 listings per page, max_results up to 300 and at most 60 pages per search. A search with no match answers 200 with an empty listings array.

/realestate/idealista-detail

One idealista listing in full

A listing id (with country) or a listing URL: listing with title, locationLine, operation, propertyType, price, currency, pricePeriod, originalPrice and priceDropPercent, pricePerM2, priceDetails, area, usableArea, rooms, bathrooms, floor, lift, builtYear, energyRating, energyConsumption, features (every group idealista lists), description, address, coordinates (with locationApproximate when the advertiser hid the exact spot), images, floorPlans, multimediaCounts, advertiser (name, type, reference, agency page) and updated. A listing its advertiser removed answers 404 with the removal date.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/realestate/idealista?location=madrid-madrid&country=es&operation=rent"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/realestate/idealista",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"location": "madrid-madrid", "country": "es", "operation": "rent"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const results = await su.idealistaSearch('madrid-madrid', {
  country: 'es',
  operation: 'rent',
});
const listing = await su.idealistaDetail('https://www.idealista.it/immobile/37068709/');
console.log(results);
console.log(listing);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "listings": [
    {
      "id": "88108287",
      "url": "https://www.idealista.com/inmueble/88108287/",
      "title": "Dúplex en Calle de Fortuny, Almagro, Madrid",
      "priceText": "6.750 €/mes",
      "price": 6750,
      "currency": "EUR",
      "pricePeriod": "month",
      "parking": "included",
      "rooms": 4,
      "area": 176,
      "floor": "6ª planta exterior con ascensor",
      "lift": true,
      "exterior": true,
      "description": "ÁTICO - DUPLEX, en el mejor tramo de la calle Fortuny, en edificio representativo, con PLAZA de GARAJE en el mismo edificio, esta propiedad está distribuida de la siguiente manera:...",
      "tags": [
        "Lujo"
      ],
      "images": [
        "https://img4.idealista.com/blur/480_360_mq/0/id.pro.es.image.master/4d/4c/40/738803992.jpg"
      ],
      "imageCount": 41,
      "multimedia": [
        "VIDEO"
      ],
      "agency": {
        "name": "Jaime Valcarce Consulting Inmobiliario",
        "url": "https://www.idealista.com/pro/jaime-valcarce-consulting-inmobiliario/",
        "logo": "https://st3.idealista.com/df/c3/43/jaime-valcarce-consulting-inmobiliario.gif"
      },
      "professional": true
    },
    {
      "id": "109738824",
      "url": "https://www.idealista.com/inmueble/109738824/",
      "title": "Piso en Calle de Villamanín, Lucero, Madrid",
      "priceText": "1.800 €/mes",
      "price": 1800,
      "currency": "EUR",
      "pricePeriod": "month",
      "rooms": 3,
      "area": 115,
      "floor": "6ª planta exterior con ascensor",
      "lift": true,
      "exterior": true,
      "published": "1 hora",
      "description": "DISPONIBLE DESDE 1 DE DICIEMBRE. CONTRATO HABITUAL, LARGA ESTANCIA! SE PUEDE VISITAR Y RESERVAR DESDE AHORA. METRO BATAN A 1 MIN. ANDANDO. ¡Descubre tu nuevo hogar en el corazón de...",
      "images": [
        "https://img4.idealista.com/blur/480_360_mq/0/id.pro.es.image.master/fb/a8/89/1384095761.jpg"
      ],
      "imageCount": 33,
      "professional": true
    }
  ],
  "resultsCollected": 30,
  "totalResults": 9133,
  "heading": "9.133 casas y pisos en alquiler en Madrid",
  "page": 1,
  "pagesFetched": 1,
  "hasMore": true,
  "nextPage": 2,
  "viewLimitReached": false,
  "country": "es",
  "searchUrl": "https://www.idealista.com/alquiler-viviendas/madrid-madrid/",
  "query": {
    "country": "es",
    "operation": "rent",
    "propertyType": "homes",
    "location": "madrid-madrid",
    "sort": "relevance"
  }
}

Read the API docs

Frequently asked questions

Is it legal to scrape idealista?

Collecting publicly visible idealista listings such as prices, areas and features is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Listings from private advertisers can carry personal data, so follow the privacy rules that apply to you, including the GDPR in Spain, Italy and Portugal. ScrapeUnblocker returns the public pages; what you collect and how you use it is your responsibility.

How do I scrape idealista without getting blocked?

idealista.com, the Spanish site, is protected by DataDome. The plugin replays a DataDome clearance kept warm on ScrapeUnblocker's ISP exits instead of opening a browser for every call, so a Spanish call takes several seconds, and while that clearance is being renewed a call can get a fast 502 that is not billed and is worth retrying. idealista.it and idealista.pt answer in about 1-2 s. In ScrapeUnblocker's benchmark it returned data on 94.2% of 1,120 calls (560 searches and 560 listing details over 617 live locations), about 4.3s per call: Italy 357 of 357, Portugal 387 of 388 (the miss a listing its advertiser had removed) and Spain 311 of 375, its misses those fast 502s.

Which countries and locations can I search on idealista?

Spain (idealista.com), Italy (idealista.it) and Portugal (idealista.pt), picked with country (es, it or pt). Pass location the way idealista writes it in its URLs: a municipality such as madrid-madrid, barcelona-barcelona, milano-milano or lisboa, a district such as madrid/centro or lisboa/arroios, or a province such as malaga-provincia; or pass url with any idealista search URL, filters included. A location idealista does not know answers 404. The rooms filter follows each site: it counts bedrooms in Spain (0 = studio up to 4 = four or more) and Portugal (T0 to T4+), but all rooms in Italy (1 up to 5 = five or more), and the rooms field of each listing follows the same rule.

How many idealista listings can I get per search?

idealista shows 30 listings per page and at most 60 pages per search. A call collects up to 300 (max_results, default 30) from the page you start at, and nextPage continues in a later call; viewLimitReached says the 60-page limit was reached. To go past it, split the search by district, price range or property type. totalResults shows how many listings idealista has for the search, and a search with no match answers 200 with an empty listings array.

What data does an idealista listing detail return?

The full listing: title, location line, sale or rent, property type, price with the rent period, the original price and drop after a cut, price per m², the price breakdown idealista shows (such as community fees or a deposit), area and usable area, rooms, bathrooms, floor, lift, year built, the energy class and consumption, every feature group idealista lists, the description, address lines, coordinates (flagged with locationApproximate when the advertiser hid the exact spot), the photo gallery, floor plans, the advertiser with its type, reference and agency page, and the last update. Pass a listing id with country, or a listing URL. A listing its advertiser removed answers 404 with the removal date idealista shows.

How much does it cost to scrape idealista?

Each page fetched is billed as one request: a search page of 30 listings is 1 request, so max_results=300 is 10, and a listing detail is 1; pagesFetched shows the exact number. 1 request = 1 credit, EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. Blocks and timeouts are not billed, including the 502 a Spanish call can get while the clearance is renewed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.