Idealista Search Listings Price & Feature Scraper
Pull real estate search-result listings from Idealista for Spain, Italy, and Portugal: price, size, rooms, address, thumbnail, feature flags, and agency name for homes, offices, land, and more.
Open in Apify Store$0.99 / 1K on Free
Short answer
Idealista Search Listings Price & Feature Scraper is an Apify Store Actor for Idealista data that returns 14 published output fields, including price, size, bathrooms, address. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 37 input settings, none required. It covers 5 of the 7 core Idealista fields this site tracks. Last updated Oct 23, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
14 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
propertyCodepricepriceDropPercentsizeroomsbathroomsaddressmunicipalitypropertyTypepropertySubtypeenergyRatingphoneupdatedAturl
Not in the schema among the core Idealista fields: bedrooms, agency. The field matrix shows which other tools return them.
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| mode | string | No | – | What to scrape: a location search, your own search URLs, or individual property URLs/IDs. Inferred from the supplied URLs when omitted. |
| location | string | No | madrid-madrid | City or area slug from an Idealista URL (e.g. madrid-madrid, barcelona-barcelona, lisboa, roma-roma). You can also paste a full Idealista search URL. Used in Search by location mode. |
| operation | string | No | sale | Properties for sale or for rent. |
| propertyType | string | No | homes | Type of property to search for. |
| country | string | No | es | Idealista market: Spain, Portugal, or Italy. Auto-detected when you use URLs. |
| startUrls | array | No | – | Idealista search-result URLs to scrape (filters and map-area URLs are kept as-is). Used in Search URLs mode. |
| propertyUrls | array | No | – | Individual Idealista property URLs or numeric property IDs. Used in Property URLs / IDs mode. |
| propertySubtype | string | No | any | Narrow homes to a subtype (flat, penthouse, duplex, villa, etc.). |
| priceMin | integer | No | – | Drop listings cheaper than this price. Rounded to Idealista's nearest price bucket. |
| priceMax | integer | No | – | Drop listings more expensive than this price. Rounded to Idealista's nearest price bucket. |
Show the other 27 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| sizeMin | integer | No | – | Drop listings smaller than this size. Rounded to Idealista's nearest size bucket. |
| sizeMax | integer | No | – | Drop listings larger than this size. Rounded to Idealista's nearest size bucket. |
| rooms | string | No | any | Number of rooms. |
| bathrooms | string | No | any | Number of bathrooms. |
| condition | string | No | any | Property condition. |
| hasLift | boolean | No | false | Only listings with a lift. |
| hasTerrace | boolean | No | false | Only listings with a terrace. |
| hasPool | boolean | No | false | Only listings with a swimming pool. |
| hasGarden | boolean | No | false | Only listings with a garden. |
| hasGarage | boolean | No | false | Only listings with a garage or parking space. |
| hasStorageRoom | boolean | No | false | Only listings with a storage room. |
| hasAirConditioning | boolean | No | false | Only listings with air conditioning. |
| hasBalcony | boolean | No | false | Only listings with a balcony. |
| isNewDevelopment | boolean | No | false | Only new-development listings. |
| isBankOwned | boolean | No | false | Only bank-owned listings where the source marks them. |
| isAuction | boolean | No | false | Only auction listings where the source marks them. |
| isLuxury | boolean | No | false | Only luxury listings. |
| hasSeaViews | boolean | No | false | Only listings advertised with sea views. |
| isAccessible | boolean | No | false | Only accessible homes. |
| sortBy | string | No | relevance | Result order. |
| onlyPriceDrops | boolean | No | false | Keep only listings whose price was reduced. |
| minPriceDropPercent | integer | No | – | Keep only listings reduced by at least this percentage. Implies price-drop filtering. |
| onlyPrivateOwners | boolean | No | false | Keep only private-seller listings. |
| fetchDetails | boolean | No | false | Visit each listing's page to add bathrooms, energy rating, year built, condition, full description, gallery and agency phone. Slower and uses more requests. |
| maxDetails | integer | No | 100 | Maximum number of listing pages to enrich when Fetch Details is on. |
| maxItems | integer | No | 100 | Maximum number of listings to save. |
| partitionLargeSearches | boolean | No | true | When a search has more than 1,800 results and you ask for more, split it by price buckets so the 1,800-per-search cap is bypassed. |
Example input
Built from the input form's published example values and defaults.
{
"mode": "search",
"location": "roma-roma",
"operation": "sale",
"propertyType": "homes",
"country": "it",
"propertySubtype": "any",
"rooms": "any",
"bathrooms": "any",
"condition": "any",
"hasLift": false,
"hasTerrace": false,
"hasPool": false,
"hasGarden": false,
"hasGarage": false,
"hasStorageRoom": false,
"hasAirConditioning": false,
"hasBalcony": false,
"isNewDevelopment": false,
"isBankOwned": false,
"isAuction": false,
"isLuxury": false,
"hasSeaViews": false,
"isAccessible": false,
"sortBy": "relevance",
"onlyPriceDrops": false,
"onlyPrivateOwners": false,
"fetchDetails": false,
"maxDetails": 3,
"maxItems": 3,
"partitionLargeSearches": false
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search",
"location": "roma-roma",
"operation": "sale",
"propertyType": "homes",
"country": "it",
"propertySubtype": "any",
"rooms": "any",
"bathrooms": "any",
"condition": "any",
"hasLift": False,
"hasTerrace": False,
"hasPool": False,
"hasGarden": False,
"hasGarage": False,
"hasStorageRoom": False,
"hasAirConditioning": False,
"hasBalcony": False,
"isNewDevelopment": False,
"isBankOwned": False,
"isAuction": False,
"isLuxury": False,
"hasSeaViews": False,
"isAccessible": False,
"sortBy": "relevance",
"onlyPriceDrops": False,
"onlyPrivateOwners": False,
"fetchDetails": False,
"maxDetails": 3,
"maxItems": 3,
"partitionLargeSearches": False
}
run = client.actor("vexaloom-labs/idealista-search-listings-price-and-feature").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "search",
"location": "roma-roma",
"operation": "sale",
"propertyType": "homes",
"country": "it",
"propertySubtype": "any",
"rooms": "any",
"bathrooms": "any",
"condition": "any",
"hasLift": false,
"hasTerrace": false,
"hasPool": false,
"hasGarden": false,
"hasGarage": false,
"hasStorageRoom": false,
"hasAirConditioning": false,
"hasBalcony": false,
"isNewDevelopment": false,
"isBankOwned": false,
"isAuction": false,
"isLuxury": false,
"hasSeaViews": false,
"isAccessible": false,
"sortBy": "relevance",
"onlyPriceDrops": false,
"onlyPrivateOwners": false,
"fetchDetails": false,
"maxDetails": 3,
"maxItems": 3,
"partitionLargeSearches": false
};
const run = await client.actor("vexaloom-labs/idealista-search-listings-price-and-feature").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/vexaloom-labs~idealista-search-listings-price-and-feature/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"search","location":"roma-roma","operation":"sale","propertyType":"homes","country":"it","propertySubtype":"any","rooms":"any","bathrooms":"any","condition":"any","hasLift":false,"hasTerrace":false,"hasPool":false,"hasGarden":false,"hasGarage":false,"hasStorageRoom":false,"hasAirConditioning":false,"hasBalcony":false,"isNewDevelopment":false,"isBankOwned":false,"isAuction":false,"isLuxury":false,"hasSeaViews":false,"isAccessible":false,"sortBy":"relevance","onlyPriceDrops":false,"onlyPrivateOwners":false,"fetchDetails":false,"maxDetails":3,"maxItems":3,"partitionLargeSearches":false}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=vexaloom-labs/idealista-search-listings-price-and-feature",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among Idealista routes
It ranks 1 of 1 catalogue Actors for Idealista on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Idealista Search Listings Price & Feature Scraper 14 output fields, pay per event 5 of 7 core fields
$0.99 / 1K - + 7 other Store tools, combined Reference only 6 of 7 core fields
from $0.49 / 1K - API Idealista API for professionals Partner only fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: Idealista API for professionals
Partner only. Idealista publishes a professional API for approved real-estate customers, focused on property data and listings.
Professional access; rates are not a general public rate card.
Other Store tools for Idealista
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| Idealista Scraper | 120 | $0.49 |
| Idealista Scraper | 21 | $0.90 |
| Idealista Scraper API Any Search URL, No Result Cap & France | 30 | $3.00 |
| Idealista Scraper: Extract Rent & Sale Listings | 36 | $5.00 |
| Idealista Scraper | 43 | not listed |
What people use it for
- Find property listings
- Track price changes
- Analyze property features
Similar Actors
Trulia Listings & Price History Scraper
Scrape property listings from Trulia - for sale, for rent, and sold. Supports search pages and direct property URLs. No login required.
VivaReal Colombia Real Estate Listings by City & Price
Search VivaReal Colombia for properties for sale or rent by city, neighborhood, property type, price range, bedrooms, and area, and get back…
Brazil Rental & Sale Listings by City (QuintoAndar)
Search Brazilian rental and sale property listings by city and transaction type: price breakdown, bedrooms, bathrooms, area, furnishing, and…
Century 21 Listings & Property Detail Finder
Find Century 21 homes for sale or rent by city, county, neighborhood, or ZIP with price and size filters, or look up a property by address with…
Crexi Commercial Property Listings & Pricing Extractor
Collects active commercial real estate listings from Crexi across any US state and 14 property types, with asking price, square footage, location,…
Fotocasa Spain Sale & Rental Listings Scraper
Search Fotocasa listings for sale or rent across Spain by city, property type, price range, and bedrooms. Each result includes price, size,…
Questions people ask
How much does Idealista Search Listings Price & Feature Scraper cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does Idealista Search Listings Price & Feature Scraper return?
Its published output schema lists 14 fields: propertyCode, price, priceDropPercent, size, rooms, bathrooms, address, municipality, propertyType, propertySubtype, energyRating, phone, and 2 more. A listed field is not guaranteed to be filled in every row.
What input does Idealista Search Listings Price & Feature Scraper need?
No input is strictly required; the defaults run as is. Common settings: mode, location, operation, propertyType, country, startUrls.
How do I run Idealista Search Listings Price & Feature Scraper from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("vexaloom-labs/idealista-search-listings-price-and-feature").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("vexaloom-labs/idealista-search-listings-price-and-feature").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/vexaloom-labs~idealista-search-listings-price-and-feature/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- Idealista Search Listings Price & Feature Scraper on Apify Store
- Published build with input and output schema (JSON)
- Idealista API for professionals documentation
Cite this page
Scraper Finder. "Idealista Search Listings Price & Feature Scraper." https://scraperfinder.com/catalogue/idealista-search-listings-price-and-feature/ (data checked 2026-11-12).
Run Idealista Search Listings Price & Feature Scraper
$0.99 per 1,000 results. Paste the example input above, set your Idealista query, then export the dataset. Still choosing? Compare every Idealista route.