Idealista [$1π° Bypass Limit of 1500] Spain | Italy | Portugal
Pricing
from $1.00 / 1,000 results
Idealista [$1π° Bypass Limit of 1500] Spain | Italy | Portugal
Idealista (Spain Β· Italy Β· Portugal) at $1π°/1k β only scraper that bypasses Idealista's hidden 1500-result cap (+31% more rows per query). 80+ fields, agent contacts, GPS, multi-language descriptions, monitoring mode, new developments. JSON or CSV. Pure HTTP, no browser.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(8)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
25
Bookmarked
392
Total users
111
Monthly active users
3.8 hours
Issues response
3 days ago
Last modified
Categories
Share
Idealista Scraper β Spain Β· Italy Β· Portugal Β· 1500-cap bypass

β Verified benchmark β 1,967 properties scraped from a single Madrid rentals search (search reports 1,968 total; Idealista's per-query API caps at 1,500). This actor splits the search into price brackets and merges them, returning +31% more rows than any competitor that stops at the cap.
Scrape every property listing from Idealista.com (Spain), Idealista.it (Italy), and Idealista.pt (Portugal) β including agent contacts, GPS coords, multilingual descriptions, multimedia, new developments, and floor plans. Flat one-row-per-property output with 80+ fields including the full basicInfo / moreCharacteristics / contactInfo / multimedia / ubication blocks. $1 per 1,000 results.
Why use this scraper
- π― Bypass Idealista's 1500-result cap β every other scraper on Apify Store silently truncates at the cap. We probe each search, detect when it would exceed 1500, and split by price brackets (e.g.
β¬240kβ360k,β¬360kβ540k,β¬540k+). Searches with fewer than 1500 hits skip the splitter β only one extra probe request. - π 3 countries in one actor β Spain, Italy, and Portugal handled by the same code path. No separate scraper needed per country.
- π¦ 80+ fields per property β full
basicInfo,moreCharacteristics,contactInfo,multimedia(with all images + videos),ubication(GPS coords + neighborhood + admin hierarchy),translatedTexts(multi-language descriptions),promotion(new development info),labels,energyCertification. - π Monitoring mode β only emit new listings vs. previous runs. Build historical archives without paying for re-scraping the same property.
- π’ 4 URL types in one pipeline β search results, individual property URLs, new development URLs, custom-filter URLs.
- π° $1 per 1,000 results β among the cheapest premium scrapers on Apify Store. Pure HTTP, no headless browser.
Overview
Idealista is the dominant real-estate portal across Iberia (Spain) and increasingly in Italy + Portugal. This actor extracts the full property data shipped by Idealista's mobile-app API β richer than the HTML rendered on the website, including full GPS coordinates, energy certifications, multi-language auto-translated descriptions, and complete agent contact info (phone + email + agency logo + microsite slug).
Every dataset row represents one property listing. The actor supports four input modes (search URLs, individual property URLs, new-development URLs, filtered searches) and emits the same row shape regardless of input.
Supported inputs
| Input type | Example URL | Behavior |
|---|---|---|
| Search by location | https://www.idealista.com/venta-viviendas/madrid/ | Walks all paginated results, auto-bypassing the 1500 cap via price-bracket splitting |
| Filtered search | https://www.idealista.com/en/geo/venta-obranueva/andalucia/con-2-dormitorios,3-dormitorios/?ordenado-por=precios-asc | Same behavior; respects every filter in the URL |
| Individual property | https://www.idealista.com/inmueble/109366429/ | One row, full schema |
| New development | https://www.idealista.com/obra-nueva/109366429/ | One row, schema includes promotion block |
| Italian listings | https://www.idealista.it/vendita-case/milano/ | Same fields, Italian metadata |
| Portuguese listings | https://www.idealista.pt/comprar-casas/lisboa/ | Same fields, Portuguese metadata |
β οΈ Only Idealista's own domains are supported:
idealista.com,idealista.it,idealista.pt. External recruiter / aggregator URLs are rejected by the input classifier.
Use cases
| Audience | Use case |
|---|---|
| Real estate investors | Track every property in target neighborhoods; detect under-priced listings; monitor agent inventory |
| Market analysts | Build price-per-mΒ² datasets by province/district; track new construction supply |
| Proptech / CRM vendors | Bulk import for proptech SaaS demos, lead enrichment, comparable-property analysis |
| Estate agents | Monitor competitor listings, agent activity, asking price changes over time |
| Hedge funds / family offices | Wide-net data collection across Iberia for real-asset allocation models |
| Academic / news / NGO | Housing affordability research, gentrification tracking, agency concentration studies |
How it works
- Classify each
startUrls[]entry β search, property, new-development, or filter. Reject non-Idealista hosts. - For search URLs: probe the first page to read the total result count.
- If total > 1500 (Idealista's hidden cap): split the search into price brackets that each fall below 1500, fetch each bracket, dedupe by property ID, merge.
- For individual property URLs: fetch the mobile-app API representation directly β yields the full 80+ field schema.
- For new-development URLs: same as property but includes the
promotionblock (development name, total units, base price, completion status). - In monitoring mode: cross-reference each
adidagainst the previous-run key-value store; skip duplicates. - Output: one flat row per property to the Apify dataset. JSON or CSV export.
Input configuration
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | string[] | yes | β | Mix of search, property, new-development, filtered URLs across .com / .it / .pt |
maxItems | integer | no | 10000 | Hard cap on total dataset rows. Each row = one paid result event. |
splitByPrice | boolean | no | true | Master switch for the 1500-bypass. Leave on unless you specifically want legacy-cap behavior. |
monitoringMode | boolean | no | false | Skip listings seen in previous runs. Useful for daily-delta workflows. |
maxConcurrency | integer | no | 10 | Parallel detail-page fetches. Sweet spot 8β15 via Apify Residential. |
minConcurrency | integer | no | 1 | Floor β auto-scales up under good conditions. |
maxRequestRetries | integer | no | 100 | Per-URL retry budget on transient failures (Idealista occasionally 403s individual requests). |
proxy | object | no | Apify Residential | Apify Residential recommended for Iberia geo. Auto-prefilled. |
Example input
{"startUrls": [{ "url": "https://www.idealista.com/venta-viviendas/madrid/" },{ "url": "https://www.idealista.it/vendita-case/milano/" },{ "url": "https://www.idealista.com/inmueble/109366429/" }],"maxItems": 5000,"splitByPrice": true,"monitoringMode": false,"maxConcurrency": 10,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
This yields up to 5,000 rows across Madrid sale listings + Milan sale listings + one specific Madrid property β all with the 1500-bypass active where applicable.
Output schema
One flat row per property. Below is a real, shortened sample. Full row carries 80+ fields nested under basicInfo / moreCharacteristics / contactInfo / multimedia / ubication / translatedTexts.
{"adid": 109195360,"price": 2500000,"priceInfo": { "amount": 2500000, "currencySuffix": "β¬" },"operation": "sale", // "sale" / "rent""propertyType": "homes", // "homes" / "rooms" / "premises" / "garages""extendedPropertyType": "chalet","homeType": "chalet","state": "active","country": "es", // "es" / "it" / "pt"// ββ Location ββββββββββββββββββββββββββββββββββββββββββββββββββ"ubication": {"title": "Calle Γgata, 2","latitude": 36.476812,"longitude": -5.0222844,"hasHiddenAddress": false,"administrativeAreaLevel4": "Nueva Atalaya", // neighborhood"administrativeAreaLevel3": "Benamara - Atalaya", // district"administrativeAreaLevel2": "Estepona", // city"administrativeAreaLevel1": "MΓ‘laga", // province"locationId": "0-EU-ES-29-07-001-051-07-007","locationName": "Nueva Atalaya, Estepona"},// ββ Contact + agent ββββββββββββββββββββββββββββββββββββββββββ"contactInfo": {"commercialName": "ATTA VILLAS","phone1": { "formattedPhoneWithPrefix": "+34 951 12 00 41", ... },"contactName": "Boren Brothers SL.","userType": "developer", // "developer" / "professional" / "private""agencyLogo": "https://st3.idealista.com/22/0c/ed/villas-atta.gif","micrositeShortName": "villas-atta","professional": true},// ββ Property features ββββββββββββββββββββββββββββββββββββββββ"moreCharacteristics": {"roomNumber": 4,"bathNumber": 4,"plotOfLand": 681, // mΒ²"constructedArea": 530,"swimmingPool": true,"garden": true,"boxroom": true,"chaletType": "independantHouse","energyCertificationType": "inProcess","modificationDate": 1758214533000 // unix ms},// ββ Multimedia (full image list) βββββββββββββββββββββββββββββ"multimedia": {"images": [{ "url": "...", "tag": "facade", "width": 1500, "height": 844 },{ "url": "...", "tag": "plan", "width": 1489, "height": 820 }// ... typically 10-50 images per property],"videos": [],"hasMultimediasMadeByIdealista": false},// ββ Descriptions (multi-language, auto-translated) βββββββββββ"propertyComment": "Villa de lujo de obra nueva con piscina y spa...","comments": [{ "language": "es", "autoTranslated": false, "defaultLanguage": true, "propertyComment": "..." },{ "language": "en", "autoTranslated": false, "defaultLanguage": false, "propertyComment": "..." },{ "language": "de", "autoTranslated": true, "defaultLanguage": false, "propertyComment": "..." },{ "language": "nl", "autoTranslated": true, "defaultLanguage": false, "propertyComment": "..." }],// ββ New-development info (when applicable) βββββββββββββββββββ"promotion": {"promotionId": 109190794,"name": "Atta Villas","description": "Detached houses of 4 bedrooms for sale","price": 1800000, // base/starting price"promotionType": "notFinished"},// ββ Misc βββββββββββββββββββββββββββββββββββββββββββββββββββββ"labels": [ { "name": "luxuryType", "text": "Luxury" }, { "name": "villaType", "text": "Villa" } ],"detailWebLink": "https://www.idealista.com/inmueble/109195360/","modificationDate": { "value": 1758214533000, "text": "Listing updated 10 days ago" }}
Pricing
Pay-per-event β no monthly subscription, no upfront commitment.
| Event | When it fires | Rate |
|---|---|---|
Actor Start | Once per run | $0.005 |
result | Per property row emitted | $0.001 |
Additional cost for monitoring mode | Per row when monitoringMode: true (covers the dedup-store overhead) | $0.001 |
Cost example:
- Madrid sale search with 1,967 rows (full bypass) = $0.005 + 1967 Γ $0.001 = ~$1.97
- Same search via a competitor that stops at the 1500 cap: 1,500 rows = $1.50
- You pay $0.47 more to get 31% more data β net cost per useful row is 17% lower.
What makes this richer than competing actors
We surveyed all Idealista actors on Apify Store. Direct comparison:
| Capability | Competitors | This actor |
|---|---|---|
| Bypass Idealista's 1500-result cap | β silent truncation | β price-bracket splitting (proven +31%) |
| Spain + Italy + Portugal in one pipeline | β usually Spain-only | β all three, one actor |
| GPS lat/lng on every row | partial | β always (when not hidden by seller) |
Multi-language comments array | β | β up to 6 languages per listing |
New-development promotion block | partial | β full block with starting price + completion status |
| Energy certification details | rarely | β
energyCertificationType + energyConsumption |
| Agent microsite + logo URL | β | β
agencyLogo, micrositeShortName, agent's totalAds |
| Monitoring mode (incremental scrapes) | rarely | β
deduplication by adid |
| Multimedia tagged by type (facade/plan/livingRoom/...) | β flat list | β tagged + dimensioned + 360Β° flag |
Price-per-mΒ² (priceByArea) | partial | β always when computable |
allowsCounterOffers / allowsRemoteVisit / allowsMortgageSimulator flags | β | β |
FAQ
Why does Idealista limit each query to 1,500 results? It's a hidden API-level cap baked into Idealista's mobile-app endpoint β confirmed against the iOS app itself. The website's UI doesn't expose the limit, but every paginated query stops at page 60 of 25 = 1,500 rows. Other scrapers don't know to work around it. This actor probes the total upfront and, if the count would exceed 1,500, splits the query into smaller price brackets and merges the results.
Does the 1500-bypass cost extra? No β we charge per row, regardless of how many sub-queries we needed to walk to collect them. If your search has 800 rows total, the actor does one fetch and charges 800 Γ $0.001 = $0.80. If it has 8,000 rows, the actor splits into ~6 brackets and charges 8,000 Γ $0.001 = $8.00. Bypass overhead is on us.
Can I run this on idealista.it and idealista.pt?
Yes. Same code path, same row schema. Just paste Italian or Portuguese URLs into startUrls. The country field on each row tells you which TLD it came from (es / it / pt).
How does monitoring mode work?
On each run with monitoringMode: true, the actor maintains a key-value store of every adid it has already emitted. Subsequent runs skip those IDs and only emit new ones. Useful for daily/weekly deltas without re-paying for the same listings. Costs an extra $0.001 per row to cover the dedup-store overhead.
Why is ubication.hasHiddenAddress: true on some listings?
Sellers can choose to hide their exact street address β only the neighborhood + city + province are shown to public viewers. We honor that flag and emit only what Idealista exposes. GPS coords are still populated (Idealista shows an approximate pin in this case).
What's the difference between propertyComment and comments[]?
propertyComment is the description in the listing's default language (usually Spanish/Italian/Portuguese). comments[] is the array of all language versions, including auto-translated ones via Idealista's built-in translator. Use comments[] to get the English version if you need it.
Can I scrape rentals?
Yes β just paste rental URLs (/alquiler-viviendas/... instead of /venta-viviendas/...). The operation field on each row will be "rent" instead of "sale".
Is there a way to filter by price/rooms/area before scraping? Yes β use Idealista's own URL filters. They work in the URL path. Example:
https://www.idealista.com/en/geo/venta-obranueva/andalucia/con-2-dormitorios,3-dormitorios,piscina/
The actor respects every filter you pass.
Support
- Bugs / feature requests β open an issue on this actor
- Custom exports / tailored field selection β email muhamed.didovic@gmail.com
- API access (no Apify fee, raw usage) β email the same address for direct API setup
Additional services
- Custom scraping work for sites not in the catalog
- Bulk historical dataset purchase (no need to run the scraper yourself)
- Webhook delivery to your S3 / GCS / DB pipeline
- Daily / hourly scheduled monitoring with email or Telegram alerts
Contact: muhamed.didovic@gmail.com
Explore more scrapers
Other Iberia + EU real-estate actors in the memo23 portfolio:
- Immobilienscout24 (Germany) β DE real estate
- Immobiliare (Italy) β IT real estate (complements Idealista.it)
- Funda (Netherlands) β NL real estate
- Kleinanzeigen (Germany) β DE classifieds
- Realestate AU + NZ β Australia + New Zealand bundled
- Dubizzle (UAE) β UAE real estate + autos
β οΈ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Idealista S.A., Idealista.com, Idealista.it, Idealista.pt, or any related entity. All trademarks mentioned are the property of their respective owners.
The scraper accesses only publicly visible property listings rendered by Idealista's public website + open mobile-app API. No login bypass, no API-key forgery, no CAPTCHA solving, no cf_clearance cookie scraping. The actor honours robots.txt and rate-limits via concurrency cap (default 10) to avoid burdening Idealista's infrastructure.
Users are responsible for:
- Complying with Idealista's Terms of Service in your target jurisdiction (
.com,.it,.pt) - Following EU GDPR + Spanish LOPD + Italian Privacy Code + Portuguese RGPD when storing, processing, or republishing scraped property + agent contact data
- Not contacting sellers / agents listed in scraped data for unsolicited commercial outreach
- Not republishing scraped property listings in a way that competes commercially with Idealista (e.g., a clone real-estate portal)
- Honoring
hasHiddenAddress: trueflags β do not attempt to de-anonymize sellers who chose privacy
We do not store scraped data β the Actor returns rows directly to your Apify dataset for your authorized use.
SEO Keywords
idealista scraper, idealista.com scraper, idealista spain scraper, idealista italy scraper, idealista portugal scraper, scrape idealista, idealista api, idealista bulk export, spain real estate scraper, italy real estate scraper, portugal real estate scraper, iberia real estate data, madrid property scraper, barcelona property scraper, milan property scraper, lisbon property scraper, 1500 cap bypass, property listing api, real estate market intelligence, real estate lead generation, agent contact scraper, MLS alternative spain, idealista monitoring, property price tracker, real estate JSON export