Documentation Blog Free tools [email protected]Log in

Idealista Scraper API

An Idealista scraper API for Spain, Italy and Portugal: pass a location slug or a listing URL and get one row per property — title, price as shown and parsed, price per m², rooms, size in m², the detail chips, description excerpt, listing agency and thumbnail. Sale or rent, per country site.

$0.001 per delivered listing · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/idealista_search/run
$ curl $QD/idealista_search/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{"location": "madrid-madrid", "operation": "sale", "site": "es", "max_results": 30}'
{ "status": "done", "count": 30,
  "results": [
    {
      "listing_id": "…",
      "title": "…",
      "url": "…",
      "price": "…" } ],
  "cost": 0.03 }
# 30 listings × $0.001 · nothing delivered, nothing charged
$0.001 / listing2,000 listings on the free $2 every month
Semantic inputlocation, operation, site — no URL lists
Up to 100listings per run, pagination handled for you
No browserread over HTTP/TLS — cheaper and faster than rendering

What an Idealista scraper API does

Idealista runs three national sites and this collector treats them as one input: site picks es, it or pt, operation picks sale or rent, and the location is either a slug like "madrid-madrid" or a full results URL you paste to read exactly that search. The address zone and property type arrive already joined into the listing title.

Money is returned in two shapes because a portal shows it in one: price is the string as printed, price_value the parsed number, and price_per_m2 the ratio as Idealista displays it. Listings from an agency carry the agency name; private ads leave it null rather than inventing a seller, and the on-card details chips (floor, elevator, condition) are kept verbatim.

What one listing looks like

Every delivered listing carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

FieldTypeWhat it holds
rankinteger1-based position.
listing_idstring · nullableIdealista listing id.
titlestringListing title (type + street/zone).
urlstring · nullableListing URL.
pricestring · nullablePrice as shown.
price_valuenumber · nullableParsed price.
price_per_m2string · nullablePrice per m² as shown.
roomsinteger · nullableRooms.
size_m2number · nullableSize in m².
detailsstring[]Detail chips as shown (floor, elevator…).
descriptionstring · nullableListing description excerpt.
agencystring · nullableListing agency (null for private).
thumbnailstring · nullableFirst photo.

Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

InputTypeRequiredWhat it does
locationstringyesIdealista location slug ("madrid-madrid") or a full listing URL.
operationstringnosale (default) or rent. One of: sale, rent.
sitestringnoCountry site: es (default), it, pt. One of: es, it, pt.
max_resultsintegernoHow many listings to deliver at most (1–100). You pay only for delivered listings.

Pricing

Idealista Scraper API pricing

$0.001 per delivered listing. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,000 listings before you spend anything.

$0.001per delivered listing$0.8 per 1,000 delivered listings
2,000 listingson the free allowance$2 every month, no card
Zero rowszero chargeblocks, captchas and retries are on us
−30%on volume tiersthe catalog returns your key's price

Pay as you go

$0/mo
  • $2 free credit / month
  • 60 requests / min
  • List unit prices

Starter

$19/mo
  • $15 free credit / month
  • 300 requests / min
  • 10% off unit prices

Scale

$299/mo
  • $250 free credit / month
  • 1,200 requests / min
  • 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.

Integration

One POST, typed rows

Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/scraper/collectors/idealista_search/run.

curl -X POST https://api.quanticdata.io/v1/scraper/collectors/idealista_search/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"location":"madrid-madrid","operation":"sale","site":"es","max_results":30}'

What people build with the Idealista scraper API

Three shapes of work this endpoint was designed around.

Iberian market analysis

Build price-per-m² distributions for a city from rows, across the Spanish, Italian and Portuguese sites.

Rent-versus-buy

Run the same location for sale and for rent and compare what each side of the market asks.

Agency mapping

See which agencies list a zone and at what price, with private ads separated out.

Idealista Scraper API versus rolling your own

The differences that actually cost time when you build this in-house.

DIY scraperThis collector
Three sitesOne domain hardcoded per scraperes, it and pt from one field
Location inputOnly a URL you must findA slug or a pasted results URL
Private listingsA guessed or blank agencyagency null, kept honest

FAQ

Questions we get about the Idealista scraper API.

Something else? Ask us →

Does Idealista offer a public data API?

Its API is gated behind an application and approval that most requests never clear. This collector reads the public results page, so you work from a location slug or URL instead of waiting on credentials.

How do I specify the location?

Use Idealista's own slug — "madrid-madrid", "barcelona-barcelona" — or paste a full results URL and the collector reads exactly that search, including any filters already in it.

Which countries and operations are covered?

The three Idealista markets — Spain (es), Italy (it) and Portugal (pt) — each for sale or rent via operation. There is no fourth site; Idealista does not operate one.

Is there a free Idealista scraper API?

Every account gets $2 of credit every month with no card, which is about 2,000 delivered listings on this endpoint at $0.001 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

How much does one run cost?

Multiply the rows you actually receive by $0.001. A run capped at 100 listings — the maximum for this collector — costs $0.1 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.

Run the Idealista scraper API now

$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.

Get my free API key
Get my free API key