Idealista
Search real estate listings on Idealista for Spain, Portugal, and Italy
Overview
Access property listings from Idealista — the leading real estate portal in Spain, Portugal, and Italy. The typical flow is: search for a location ID with /locations, then pass that ID to /properties to get listings.
Base path: https://api.datacaiman.com/v1/idealista
Cost: 1 credit per call
GET /v1/idealista/locations
Resolve a location name into a location ID required by /properties.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query |
string | Yes | Location name (e.g. madrid, barcelona) |
country |
string | No | es, pt, or it (default: es) |
operation |
string | No | sale or rent (default: sale) |
Response
[
{
"name": "Madrid",
"locationId": "0-EU-ES-28-07-001-079",
"type": "municipality",
"subTypeText": "Municipality",
"total": 12500
}
]
Example
curl "https://api.datacaiman.com/v1/idealista/locations?query=madrid&country=es" \
-H "X-API-Key: dc_your_key_here"
GET /v1/idealista/properties
Search property listings for a location. Returns up to 50 results per page. Use nextPageToken to paginate.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
locationId |
string | Yes | ID from /locations (e.g. 0-EU-ES-28-07-001-079) |
locationName |
string | No | Display name for the location |
country |
string | No | es, pt, or it (default: es) |
operation |
string | No | sale or rent (default: sale) |
propertyType |
string | No | homes, newDevelopments, offices, premises, garages, lands, storageRooms, buildings, bedrooms (default: homes) |
sortBy |
string | No | mostRecent, relevance, lowestPrice, highestPrice, biggest, smallest, and more |
limit |
integer | No | Results per page, max 50 (default: 50) |
pageToken |
string | No | Token from previous response |
minPrice |
integer | No | Minimum price filter |
maxPrice |
integer | No | Maximum price filter |
minSize |
integer | No | Minimum size in m² |
maxSize |
integer | No | Maximum size in m² |
publicationDate |
string | No | T (today), Y (yesterday), W (this week), M (this month) |
bedrooms |
string | No | Comma-separated: studio, 1, 2, 3, 4 |
bathrooms |
string | No | Comma-separated: 1, 2, 3 |
condition |
string | No | Comma-separated: newDevelopment, good, renew |
floor |
string | No | Comma-separated: topFloor, intermediateFloor, groundFloor |
airConditioning |
boolean | No | Filter by air conditioning |
lift |
boolean | No | Filter by lift/elevator |
balcony |
boolean | No | Filter by balcony |
terrace |
boolean | No | Filter by terrace |
garage |
boolean | No | Filter by garage |
swimmingPool |
boolean | No | Filter by swimming pool |
garden |
boolean | No | Filter by garden |
Response
{
"hasNextPage": true,
"nextPageToken": "eyJj...",
"items": [
{ "propertyCode": "106316721", "price": 350000, "size": 85, ... }
]
}
Example
Search apartments for sale in Madrid under €400,000:
curl "https://api.datacaiman.com/v1/idealista/properties?locationId=0-EU-ES-28-07-001-079&operation=sale&propertyType=homes&maxPrice=400000&sortBy=mostRecent" \
-H "X-API-Key: dc_your_key_here"
GET /v1/idealista/details
Fetch raw details for a single property.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
propertyCode |
string | Yes | Property code from a /properties result |
country |
string | No | es, pt, or it (default: es) |
Example
curl "https://api.datacaiman.com/v1/idealista/details?propertyCode=106316721&country=es" \
-H "X-API-Key: dc_your_key_here"
GET /v1/idealista/stats
Fetch statistics for a single property (price history, views, etc.).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
propertyCode |
string | Yes | Property code from a /properties result |
country |
string | No | es, pt, or it (default: es) |
Example
curl "https://api.datacaiman.com/v1/idealista/stats?propertyCode=106316721" \
-H "X-API-Key: dc_your_key_here"