Idealista [$1πŸ’° Bypass Limit of 1500] Spain | Italy | Portugal avatar

Idealista [$1πŸ’° Bypass Limit of 1500] Spain | Italy | Portugal

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Idealista [$1πŸ’° Bypass Limit of 1500] Spain | Italy | Portugal

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

Muhamed Didovic

Maintained by Community

Actor stats

25

Bookmarked

392

Total users

111

Monthly active users

3.8 hours

Issues response

3 days ago

Last modified

Share

Idealista Scraper β€” Spain Β· Italy Β· Portugal Β· 1500-cap bypass

How Idealista Scraper works

βœ… 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 typeExample URLBehavior
Search by locationhttps://www.idealista.com/venta-viviendas/madrid/Walks all paginated results, auto-bypassing the 1500 cap via price-bracket splitting
Filtered searchhttps://www.idealista.com/en/geo/venta-obranueva/andalucia/con-2-dormitorios,3-dormitorios/?ordenado-por=precios-ascSame behavior; respects every filter in the URL
Individual propertyhttps://www.idealista.com/inmueble/109366429/One row, full schema
New developmenthttps://www.idealista.com/obra-nueva/109366429/One row, schema includes promotion block
Italian listingshttps://www.idealista.it/vendita-case/milano/Same fields, Italian metadata
Portuguese listingshttps://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

AudienceUse case
Real estate investorsTrack every property in target neighborhoods; detect under-priced listings; monitor agent inventory
Market analystsBuild price-per-mΒ² datasets by province/district; track new construction supply
Proptech / CRM vendorsBulk import for proptech SaaS demos, lead enrichment, comparable-property analysis
Estate agentsMonitor competitor listings, agent activity, asking price changes over time
Hedge funds / family officesWide-net data collection across Iberia for real-asset allocation models
Academic / news / NGOHousing affordability research, gentrification tracking, agency concentration studies

How it works

  1. Classify each startUrls[] entry β€” search, property, new-development, or filter. Reject non-Idealista hosts.
  2. For search URLs: probe the first page to read the total result count.
  3. 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.
  4. For individual property URLs: fetch the mobile-app API representation directly β€” yields the full 80+ field schema.
  5. For new-development URLs: same as property but includes the promotion block (development name, total units, base price, completion status).
  6. In monitoring mode: cross-reference each adid against the previous-run key-value store; skip duplicates.
  7. Output: one flat row per property to the Apify dataset. JSON or CSV export.

Input configuration

FieldTypeRequiredDefaultNotes
startUrlsstring[]yesβ€”Mix of search, property, new-development, filtered URLs across .com / .it / .pt
maxItemsintegerno10000Hard cap on total dataset rows. Each row = one paid result event.
splitByPricebooleannotrueMaster switch for the 1500-bypass. Leave on unless you specifically want legacy-cap behavior.
monitoringModebooleannofalseSkip listings seen in previous runs. Useful for daily-delta workflows.
maxConcurrencyintegerno10Parallel detail-page fetches. Sweet spot 8–15 via Apify Residential.
minConcurrencyintegerno1Floor β€” auto-scales up under good conditions.
maxRequestRetriesintegerno100Per-URL retry budget on transient failures (Idealista occasionally 403s individual requests).
proxyobjectnoApify ResidentialApify 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.

EventWhen it firesRate
Actor StartOnce per run$0.005
resultPer property row emitted$0.001
Additional cost for monitoring modePer 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:

CapabilityCompetitorsThis 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 rowpartialβœ… always (when not hidden by seller)
Multi-language comments arrayβŒβœ… up to 6 languages per listing
New-development promotion blockpartialβœ… full block with starting price + completion status
Energy certification detailsrarelyβœ… 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:


⚠️ 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: true flags β€” 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