Skip to content

Pisos.com Scraper

Try for free

Scrape pisos.com property listings in Spain by location with filters, or from search and listing URLs. Get price, rooms, bathrooms, m², floor, address, coordinates, photos, energy rating, features and the agency or owner with phone.

🏠 Pisos.com Scraper

Turn pisos.com, one of Spain's big property portals, into a clean spreadsheet. Type a city, province or neighbourhood (or paste any pisos.com search) and get every listing with price, €/m², rooms, bathrooms, area, floor, address, map coordinates, photos, energy rating, 20+ amenity flags and the agency or owner with phone. No login, no browser, about 1,000 fully detailed listings a minute.

✨ Why use Pisos.com Scraper?

  • ⚡ Fast — plain HTTP with parallel requests: 20 listings in about 10 seconds, 1,000 listings with full details in about a minute.
  • 🧭 Search by place name — write Madrid Capital, Marbella or Chamberí; the scraper finds the matching pisos.com area for you. Location slugs and pasted search URLs work too.
  • 📋 Everything on the listing page — full description, every feature, usable and plot area, condition, building age, orientation, energy certificate, community fees, all photos and the last update date.
  • 📞 Advertiser contact data — agency or private owner, name, office address, logo, profile link and phone number.
  • 🔢 Past the 100-page limit — pisos.com stops at 100 result pages (about 3,000 listings) per search; big searches are split by price automatically, so you can export 10,000+ listings in one run.
  • 💸 Cheap — you pay per saved listing, no start fee, no subscription.

🎯 Use cases

  • 📈 Market research — asking prices and €/m² by city, district and neighbourhood for sale and rent.
  • 🏷️ Price monitoring — schedule daily runs sorted by newest, or only price drops, to catch reductions early.
  • 🤝 Lead generation — build lists of agencies (and private owners) active in an area, with phone numbers and office addresses.
  • 🏗️ New developments — track obra nueva projects, starting prices and size ranges by province.
  • 🧮 Investment screening — filter by price, size, rooms, features and energy rating, then rank deals in a spreadsheet.
  • 🗺️ Mapping — every listing has latitude and longitude for GIS or heat maps.

🚀 How to use

  1. Add one or more Locations (for example Madrid Capital, Barcelona, Sevilla) or paste pisos.com URLs (search pages with your filters, or single listings).
  2. Pick the Operation (sale, rent or new developments), the Property type and any Filters (price, area, bedrooms, bathrooms, features, published date, keyword, advertiser).
  3. Set Max listings (for example 20 to try it, 1,000+ for a full export).
  4. Click Start. Results stream into the dataset while the run is going.
  5. Download them as JSON, CSV, Excel, XML or HTML, or read them with the API.

📥 Input

FieldWhat it does
locationsPlaces in Spain: city, province, district, neighbourhood or town (Madrid Capital, Madrid, Chamberí, Marbella) or a pisos.com slug (madrid_capital). Madrid is the province, Madrid Capital the city.
startUrlspisos.com search URLs (filters set on the site are kept) or listing URLs.
maxItemsListings to save in total (default 20, 0 = no limit). Shared by all searches.
transactionTypesale, rent or newBuild (obra nueva).
propertyTypehomes, apartment, house, attic, duplex, studio, loft, ruralEstate, commercial, office, warehouse, land, garage, storage.
sortByrelevance, newest, priceAsc, priceDesc, areaDesc, areaAsc.
minPrice / maxPricePrice range in euros (monthly rent for rentals).
minArea / maxAreaBuilt area range in m².
minRooms / maxRooms / minBathroomsBedroom and bathroom counts.
featuresMust have: terrace, elevator, garden, pool, parking, storageRoom, heating, airConditioning.
publishedWithinany, lastWeek, lastMonth.
priceDropOnly / brandNewOnlyOnly reduced listings / only brand-new properties.
keywordOnly listings that mention a word (chimenea, vistas al mar).
advertiserTypeall, agency or private.
fetchDetailsOpen each listing page for the full data (default on). Turn off for a faster export from the result pages only.
maxItemsPerSearchCap per location or URL, so one big search does not use up maxItems.

Example: three-bedroom flats for sale in Madrid with a terrace, newest first:

{
  "locations": ["Madrid Capital"],
  "transactionType": "sale",
  "propertyType": "apartment",
  "minRooms": 3,
  "maxPrice": 600000,
  "features": ["terrace"],
  "sortBy": "newest",
  "maxItems": 100
}

📤 Output

One row per listing. The main fields:

FieldDescription
id, url, titlepisos.com listing id, link and headline
transactionType, propertyType, propertySubtypesale / rent / newBuild, English type and the site's own type (piso, chalet_adosado...)
price, priceText, pricePerSqm, currencyPrice in euros (rent per month), as shown, per m²
hasPriceDrop, priceDrop, priceDropPercentPrice reduction amount and percentage
rooms, bathrooms, areaSqm, usableAreaSqm, plotAreaSqm, floorSize and layout
condition, buildingAge, orientation, communityFees, heatingType, kitchen, flooringProperty details (listing page)
energyClass, energyConsumption, energyEmissionsEnergy certificate (listing page)
hasElevator, hasParking, hasTerrace, hasPool, hasGarden, isFurnished, ...16 amenity flags (listing page)
featuresEvery feature the listing shows, as label → value
address, neighborhood, district, city, province, postalCode, latitude, longitudeLocation
mainImage, images, imageCountPhotos
advertiserName, advertiserType, advertiserId, advertiserUrl, advertiserAddress, phoneAgency or private owner
description, updatedAt, tags, scrapedAtText, last update date, badges, scrape time

Example row (trimmed; advertiser data replaced with a fictional agency):

{
  "id": "65077851154.510936",
  "url": "https://www.pisos.com/comprar/piso-carabanchel_san_isidro28019-65077851154_510936/",
  "title": "Piso en venta en Calle de San Cándido",
  "transactionType": "sale",
  "propertyType": "apartment",
  "price": 439900,
  "pricePerSqm": 4887,
  "currency": "EUR",
  "hasPriceDrop": false,
  "rooms": 3,
  "bathrooms": 2,
  "areaSqm": 90,
  "usableAreaSqm": 80,
  "floor": "1",
  "condition": "En buen estado",
  "buildingAge": "Más de 50 años",
  "orientation": "Este",
  "energyClass": "F",
  "energyConsumption": 314,
  "energyEmissions": 66,
  "communityFees": "Entre 80 y 100 €",
  "hasElevator": true,
  "hasTerrace": true,
  "hasPool": false,
  "isExterior": true,
  "features": { "Superficie útil": "80 m²", "Armarios empotrados": "2", "Terraza": true, "Soleado": true },
  "address": "San Isidro, Carabanchel, Madrid Capital, Madrid",
  "neighborhood": "San Isidro",
  "district": "Carabanchel",
  "city": "Madrid Capital",
  "province": "Madrid",
  "postalCode": "28019",
  "latitude": 40.399459,
  "longitude": -3.7209612,
  "mainImage": "https://fotos.imghs.net/fch-wp/510936/65077851154.510936/510936_65077851154_74e3db83-c061-48be-afcc-7ca46520b75f.jpg",
  "imageCount": 35,
  "advertiserName": "Inmobiliaria Ejemplo Madrid",
  "advertiserType": "agency",
  "advertiserAddress": "Calle Ejemplo 1, Madrid Capital (Madrid)",
  "phone": "+34910000000",
  "updatedAt": "2026-08-18",
  "detailScraped": true,
  "scrapedAt": "2026-10-21T12:14:27.322Z"
}

💰 Pricing

You pay $3.00 per 1,000 listings ($0.003 per saved listing), with or without listing pages. There is no start fee. Platform usage (compute and proxy traffic) is billed separately and is small: a 1,000-listing run with full details measured about $0.03 of usage on the default settings.

Example: 1,000 detailed listings ≈ $3.00 + about $0.03 usage.

You can cap the spend of any run with the maximum charge setting; the run stops cleanly and keeps what it saved.

❓ FAQ

Is it legal to scrape pisos.com? The scraper collects only public listing pages that anyone can open without an account. Personal data (for example a private owner's phone) is covered by the GDPR in Spain, so make sure you have a lawful reason to process it. If in doubt, ask a lawyer.

Do I need a pisos.com account or my own proxy? No. The scraper does not log in. It uses the platform's proxies and switches to Spanish residential addresses on its own if pisos.com starts refusing requests.

How many listings can I get? As many as pisos.com has for your search. One pisos.com search stops at 100 pages (about 3,000 listings); bigger searches are split by price automatically. A 10,000-listing run with full details is supported.

Why is a field empty? Fields come from what each advertiser filled in. Energy rating, orientation or community fees are often missing on the site itself. Amenity flags, the full description and advertiser details need Open each listing page (on by default). With it off, the agency name is read from its pisos.com profile link, so accents can be missing and private owners have no name.

How do I search a city instead of the whole province? Use Madrid Capital, Barcelona Capital, Valencia Capital and so on. Madrid alone is the whole province.

Can I schedule it or use it from code? Yes. Save your input as a task and schedule it (for example daily, sorted by newest), or start runs and read results through the API.

⚠️ Limits

  • Spain only, and only what pisos.com publishes; agencies sometimes hide the exact address, so coordinates can be approximate.
  • Room shares (compartir) and holiday rentals are not covered by the search options (single listing URLs still work).
  • New developments are saved as one row per development, with the starting price and size range, not one row per unit.
  • With several locations, Max listings is shared by all of them; set Max listings per search to split it evenly.
  • The keyword filter uses pisos.com's own keyword search, so results depend on how the site matches words.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.