Skip to main content
Scrape idealista property listings (Spain, Italy, Portugal)

Authorizations

x-scrapeunblocker-key
string
header
required

Your ScrapeUnblocker API key. Apply on every request.

Query Parameters

url
string | null

Any idealista search URL (idealista.com, idealista.it or idealista.pt) with its filters, e.g. https://www.idealista.com/alquiler-viviendas/barcelona-barcelona/con-precio-hasta_2000,de-dos-dormitorios/. Overrides location and the filter parameters.

location
string | null

Location as idealista writes it in its URLs: a municipality ('madrid-madrid', 'barcelona-barcelona', 'milano-milano', 'lisboa'), a district ('madrid/centro', 'lisboa/arroios') or a province ('malaga-provincia'). Required unless url is given.

country
string
default:es

es, it, pt (idealista.com / .it / .pt).

operation
string
default:sale

sale or rent.

property_type
string
default:homes

One of: homes, new_homes, offices, premises, garages, lands, storage, buildings, rooms.

min_price
integer | null

Minimum price in EUR (monthly rent with operation=rent).

max_price
integer | null

Maximum price in EUR.

min_size
integer | null

Minimum area in m².

max_size
integer | null

Maximum area in m².

rooms
string | null

Comma-separated room counts: bedrooms in Spain (0 = studio ... 4 = four or more) and Portugal (T0 ... T4+), total rooms in Italy (1 ... 5 = five or more). E.g. '2,3'.

bathrooms
string | null

Comma-separated 1, 2, 3 (3 = three or more).

features
string | null

Comma-separated: lift, terrace, balcony, garage, pool, garden, air_conditioning, storage_room, fitted_wardrobes, accessible, luxury, new_construction, good_condition, to_renovate.

sort
string
default:relevance

One of: relevance, price_asc, price_desc, newest, oldest, size_asc, size_desc, price_per_m2_asc, price_per_m2_desc, biggest_drop.

page
integer | null

1-based results page to start from (30 listings per page, at most 60). Use the nextPage of a previous response to continue.

max_results
integer
default:30

How many listings to collect across pages (1-300); each page fetched is one billed unit.

proxy_country
string | null

Proxy country the request is sent from (ISO-2). Leave blank for the exit chosen for the site.

Response

JSON with a listings array, totalResults and nextPage.