The fastest way to start scraping Idealista at scale. Our Idealista API returns structured JSON for location codes, property listings, and full listing details across Spain, Italy, and Portugal — no upstream API key, no proxy setup.
No credit card required · PAYG credits never expire
# Search listings for a location code
import scrapebadger
client = scrapebadger.ScrapeBadger("sb_live_...")
results = client.idealista.search(
location="0-EU-ES-28",
market="es"
){
"propertyCode": "104928374",
"propertyType": "flat",
"operation": "sale",
"price": 385000,
"priceByArea": 4620,
"size": 83,
"rooms": 3,
"municipality": "Madrid"
}Structured JSON responses with normalized data models. No HTML parsing. No proxy management.
/v1/idealista/suggest/v1/idealista/search/v1/idealista/search/all/v1/idealista/properties/{property_code}/v1/idealista/properties/{property_code}/stats/v1/idealista/agency/{short_name}/v1/idealista/agency/by-phone/{phone}/v1/idealista/marketsAll fields are normalized across markets. Prices are in EUR. Property types, features, and operations are standardized regardless of local language.
propertyCodestringIdealista listing identifierurlstringListing URL on IdealistapricenumberAsking price in local currency (EUR)priceByAreanumberPrice per m²propertyTypestringFlat, house, chalet, etc.operationstringSale or rentsizenumberFloor area in m²roomsintegerNumber of roomsbathroomsintegerNumber of bathroomsfloorstringFloor levelfeaturesobjectLift, pool, terrace, air-con, garden…parkingSpaceobjectParking availability and priceaddressstringMunicipality, district, neighborhoodmultimediaobjectImages, videos, and 3D tourscommercialNamestringAgency or advertiser namecontactNamestringContact personuserTypestringPrivate, professional, or agencyphone1objectFormatted phone number and prefixmicrositeShortNamestringAgency microsite sluglatitudefloatListing latitudelongitudefloatListing longitudeenergyCertificationobjectEnergy consumption & emissions ratingpriceDropInfoobjectFormer price and price-drop percentagemodificationDatestringLast update to the listingSpain, Italy, and Portugal — each accessed with the correct domain and locale. Results include local currency (EUR), language, and availability.
No proxy setup. No OAuth handshake. No anti-bot configuration.
Call /suggest with free text like a city, district, or landmark to get a precise Idealista location code.
ScrapeBadger signs and routes the request to the Idealista mobile API server-side, handling OAuth, HMAC, and market selection.
Receive normalized JSON with typed fields, image CDN links, geolocation, and EUR pricing — ready to store, analyse, or pipe into your app.
Scraping Idealista gives you real-time real-estate signals — asking prices, price-per-m², price drops, property features, and agency contacts across three markets.
Track asking prices, price-per-m², and price drops across Spain, Italy, and Portugal. Detect market shifts and undervalued listings in near real time.
Analyze supply, average prices, and property mix by location code, district, and neighborhood to spot emerging areas before competitors.
Map agencies and advertisers by catalog, contact details, and listing volume to build lead lists and competitive intelligence.
Resolve free-text places into precise location codes, then pull every matching listing to power maps, alerts, and search portals.
Collect structured listing data — price, size, rooms, features, energy rating, and images — to train pricing and valuation models.
Compare comparable properties across ES, IT, and PT to understand pricing gaps, yields, and demand between regions.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
| Endpoint | Credits / request | PAYG | Subscription |
|---|---|---|---|
Location Suggest /suggest | 2 credits | — | — |
Search Listings /search | 5 credits | — | — |
Search All /search/all | 5 credits | — | — |
Property Detail /properties/{property_code} | 10 credits | — | — |
Property Stats /properties/{property_code}/stats | 2 credits | — | — |
Get Agency /agency/{short_name} | 5 credits | — | — |
Agency by Phone /agency/by-phone/{phone} | 5 credits | — | — |
List Markets /markets | Free | — | — |
See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.
ScrapeBadger's Idealista Scraper API handles the OAuth, signing, and market routing — so your pipeline keeps running.
Each Idealista market is accessed with the correct locale and domain, so you get accurate local pricing, availability, and language for Spain, Italy, and Portugal.
ScrapeBadger handles the OAuth handshake and request signing to the Idealista mobile API server-side. You just send a request with your ScrapeBadger key.
Responses are normalized typed JSON — full property models with media, features, and contact info. No HTML to parse, no fragile CSS selectors.
A dedicated property-detail endpoint returns characteristics, energy certification, geolocation, and agent contact — far beyond what a search result exposes.
Credits are only deducted for successful responses. If a request errors or times out, no credits are consumed. You only pay for data you actually receive.
Official SDKs for Python, Node.js, Go, Rust, PHP, C#, Java, Kotlin, Ruby, Swift, Dart and C++ — generated from one OpenAPI spec, always in sync with the API. Full docs with working examples for every endpoint.
Get started in minutes with Python, Node.js, or plain HTTP requests.
The scrapebadger Node.js library wraps the Idealista API with typed methods. Install with npm install scrapebadger, then start scraping Idealista in a few lines of code.
from scrapebadger import ScrapeBadger
client = ScrapeBadger("sb_live_...")
# Resolve a location to a code
sug = client.idealista.suggest(
query="sagrada familia",
market="es",
)
code = sug.locations[0].location_id
# Search listings for that location
results = client.idealista.search(
location=code,
market="es",
max_price=500000,
)
for p in results.element_list[:3]:
print(p.property_code, p.price)import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
// Get full detail for a single listing
const property = await client.idealista.property({
propertyCode: '104928374',
market: 'es',
})
console.log(property.price, property.municipality)Common questions about scraping Idealista with the API — Python, Node.js, or REST.
Search returns each property listing with code, URL, price, price-per-m², property type, operation (sale/rent), size, rooms, bathrooms, floor, features (lift, pool, terrace, air-con, garden), parking, address, geolocation, and agency contact. Property detail adds full characteristics, energy certification, all media (images, videos, 3D tours), and richer contact and location data. Location suggest returns location codes you feed into search, and markets lists supported countries.
Three markets: Spain (es), Italy (it), and Portugal (pt), all priced in EUR. Select a market with the market parameter (es, it, or pt). Each market is accessed with the correct domain and locale so results reflect the right country.
Call the /suggest endpoint with free text such as "sagrada familia" or a city name. It returns location candidates; entries of type "location" carry a usable locationId (e.g. 0-EU-ES-28-07-001-079). Pass that code as the location parameter to /search to list every matching property.
The API sources data from the Idealista mobile API, which returns rich real-estate JSON and is not behind DataDome. ScrapeBadger manages the OAuth and request signing server-side and routes requests appropriately, so you never configure proxies, manage tokens, or handle anti-bot challenges.
Install with `pip install scrapebadger`, then call client.idealista.suggest(query="sagrada familia", market="es") to get a location code, client.idealista.search(location="0-EU-ES-08-...", market="es") to list properties, and client.idealista.property(property_code="123456789", market="es") for full detail. The SDK returns typed objects with normalized fields.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All Idealista endpoints — suggest, search, and property detail across Spain, Italy, and Portugal — included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · 3 markets included