Spain Portugal Real Estate Scraper avatar

Spain Portugal Real Estate Scraper

Pricing

$0.05 / actor start

Go to Apify Store
Spain Portugal Real Estate Scraper

Spain Portugal Real Estate Scraper

Scrape Idealista, Fotocasa, Milanuncios & Supercasa in one run. 11 areas incl. Canary Islands (Tenerife, Las Palmas), 70+ fields, cross-source deduplication. The only Milanuncios scraper on Apify.

Pricing

$0.05 / actor start

Rating

3.2

(2)

Developer

Casa Radar

Casa Radar

Maintained by Community

Actor stats

2

Bookmarked

41

Total users

8

Monthly active users

16 days

Issues response

20 hours ago

Last modified

Share

Spain & Portugal Real Estate Multi-Source Scraper

Get only NEW rental listings in one run — Idealista + Fotocasa + Milanuncios for Spain, Idealista + Supercasa for Portugal — with cross-source deduplication.

📍 Coverage by country — please read before running

Sources are country-specific. The portals you receive depend on the city you scrape. sources: ["all"] automatically picks the right portals for that city — you don't get every portal on every run.

City countryPortals returned
🇪🇸 Spain — barcelona, madrid, sevilla, valencia, alicante, tenerife, las-palmas (Canary Islands)Idealista + Fotocasa + Milanuncios
🇵🇹 Portugal — lisbon, porto, algarve, setubalIdealista + Supercasa

Fotocasa and Milanuncios are Spain-only. Supercasa is Portugal-only. So a Spanish run will not include Supercasa, and a Portuguese run will not include Fotocasa/Milanuncios — this is by design, not a missing source.

Incremental mode — tracks what you've already seen. Schedule it every 15 min or every 4 hours — get only fresh listings every time. No duplicates, no re-processing.

Key features

  • Only new listings — tracks seen IDs between runs, returns only what's new
  • Up to 4 sources, 1 actor — 3 portals per Spanish city, 2 per Portuguese city (competitors sell each portal separately)
  • Milanuncios — the only scraper on Apify for Spain's largest classifieds
  • Cross-source dedup — same apartment on Idealista and Fotocasa = one result
  • Smart scheduling — after each run, tells you the optimal interval based on listing flow
  • 11 areas — Barcelona, Madrid, Sevilla, Valencia, Alicante, Tenerife, Las Palmas (Canary Islands) + Lisbon, Porto, Algarve, Setúbal
  • 70+ fields — price, GPS, photos, rooms, floor, elevator, AC, parking, terrace, pool, energy rating, agency

How incremental mode works

  1. First run: scrapes all listings, saves their IDs
  2. Next runs: scrapes listings, filters out already-seen ones, returns only new
  3. Each run shows: "5 new listings. Average: 8.2 new/hour. Recommended: run every 15 minutes"

Set onlyNew: false to get all listings without filtering.

Supported portals

PortalCountriesDataNotes
IdealistaSpain, PortugalFull listing: GPS, photos, 40+ features, phone, agencyMost complete data
FotocasaSpainProperty details, extras, agency, phoneSpain only
MilanunciosSpainClassifieds with geo, photos, attributesNo phone/agency phone
SupercasaPortugalListings with GPS, features, description, phonePortugal only

Field availability by source

FieldIdealistaFotocasaMilanunciosSupercasa
Price, title, URLYesYesYesYes
GPS coordinatesYesYesYesYes
PhotosYesYesYesYes
Rooms, bathroomsYesYesYesYes
Size m²YesYesYesYes
FloorYesYesYesNo
DistrictYesYesNoYes
AddressYesYesNoNo
DescriptionYesYesYesYes
Agency nameYesYesYesYes
PhoneYesYesNoYes
Elevator, parking, ACYesYesNoYes
FurnishedYesYesNoYes
Terrace, pool, gardenYesYesNoYes
Energy ratingYesNoYesYes
Penthouse/duplex/studioYesNoNoNo

Input

FieldTypeDefaultDescription
citystringbarcelonaCity to scrape
sourcesarray["all"]Portals: all, idealista, fotocasa, milanuncios, supercasa
maxItemsinteger50Max listings per source (1-200)
onlyNewbooleantrueReturn only new listings (not seen before)
proxyUrlstringnullCustom proxy (uses built-in proxy by default)

Cities

  • Spain: barcelona, madrid, sevilla, valencia, alicante, tenerife, las-palmas → Idealista + Fotocasa + Milanuncios
  • Portugal: lisbon, porto, algarve, setubal → Idealista + Supercasa

Canary Islands are province-level: tenerife = province of Santa Cruz de Tenerife (Tenerife, La Palma, La Gomera, El Hierro); las-palmas = province of Las Palmas (Gran Canaria, Fuerteventura, Lanzarote).

Output example

{
"source": "idealista",
"sourceId": "34567890",
"url": "https://www.idealista.com/inmueble/34567890/",
"title": "Piso en alquiler en calle de Mallorca, Eixample",
"price": 1200,
"currency": "EUR",
"rooms": 2,
"bathrooms": 1,
"sizeM2": 65.0,
"floor": "4",
"hasElevator": true,
"description": "Luminoso piso reformado...",
"photos": [
"https://img4.idealista.com/blur/480_360_mq/0/id.pro.es.image.master/12/34/56/photo1.webp",
"https://img4.idealista.com/blur/480_360_mq/0/id.pro.es.image.master/78/90/ab/photo2.webp"
],
"district": "Eixample",
"address": "Carrer de Mallorca, 200",
"neighborhood": "Dreta de l'Eixample",
"latitude": 41.3950,
"longitude": 2.1734,
"city": "barcelona",
"country": "es",
"agencyName": "Inmobiliaria Barcelona SL",
"phone": "934567890",
"contactType": "professional",
"isFurnished": true,
"hasParking": false,
"hasTerrace": true,
"hasBalcony": false,
"hasGarden": false,
"hasPool": false,
"hasAC": true,
"hasStorage": false,
"petsAllowed": null,
"energyRating": "c",
"isPenthouse": false,
"isDuplex": false,
"isStudio": false,
"status": "good"
}

Use cases

  • Real-time alerts — schedule every 15 min, get new listings via webhook or API
  • Market research — compare prices across portals and cities
  • Lead generation — fresh rental listings for agents or investors
  • Price monitoring — track new listings and price changes
  • Data pipelines — feed into your CRM, database, or analytics

Cross-source deduplication

Same property on multiple portals? You get one result. Matching criteria:

  • GPS coordinates within ~100m
  • Same number of rooms
  • Price within ±5%
  • Size within ±10% (when available)

Scheduling

Best used with Apify Scheduler:

  1. Set schedule (recommended: every 1-4 hours)
  2. Set onlyNew: true (default)
  3. Connect webhook or use Dataset API to get results
  4. Each run returns only fresh listings

After each run, the Actor shows the optimal interval:

"5 new listings. Average: 8.2 new/hour. Recommended: run every 15 minutes"

Pricing

$0.05 per run (pay per event). No monthly fees, no per-result charges. Run as often as you need.

UsageCost/dayCost/month
Every 4 hours$0.30$9
Every hour$1.20$36
Every 15 min$4.80$144

You pay per run, not per result — cost is predictable.