Fotocasa Scraper — Spain Real Estate, Numeric Price avatar

Fotocasa Scraper — Spain Real Estate, Numeric Price

Under maintenance

Pricing

from $1.01 / 1,000 results

Go to Apify Store
Fotocasa Scraper — Spain Real Estate, Numeric Price

Fotocasa Scraper — Spain Real Estate, Numeric Price

Under maintenance

Scrape Fotocasa.es sale and rental listings with clean numeric price, structured Spanish address levels, and amenities separated from measurements.

Pricing

from $1.01 / 1,000 results

Rating

0.0

(0)

Developer

Axery

Axery

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Fotocasa Property Scraper (Spain)

Scrapes sale and rental property listings from fotocasa.es over plain HTTP — no browser, no login, no cookies.

What makes this different

No second fetch per listing. Unlike most real-estate Actors — including the Bayt, Funda and Immowelt Actors in this suite — Fotocasa's search page already embeds every field a detail page would: price, full address, coordinates, amenities, photos. This Actor reads it in one request per page instead of one plus a detail fetch per row, which is why its price sits lower than its two-step siblings for equivalent data.

Price with nothing to parse. price.amount comes from Fotocasa's own rawPrice field — already a clean number, not a display string like "435.000 €" that needs unpicking.

Amenities kept separate from measurements — deliberately. Fotocasa's source data lists rooms, bathrooms, surface area and amenity flags (air conditioning, elevator, terrace...) under the same {key, value} shape. For amenities, value is an internal catalog id that means nothing as a number; for measurements, it's the actual count or square metres. Flattening both into one list would make every value ambiguous, so this Actor splits them:

"rooms": 3, "bathrooms": 2, "surface_sqm": 105, "floor": 6,
"amenities": ["air_conditioner", "elevator", "terrace"]

Input

FieldTypeNotes
citystringA Fotocasa city slug, e.g. madrid-capital, barcelona. Not a plain city name — madrid alone will not resolve.
transactionenumSALE (comprar) or RENT (alquiler).
zonestringA neighbourhood slug to narrow within the city, or the default to search the whole city.
maxItemsintegerPages automatically (~31 listings/page) until this limit or the reachable depth.
incrementalbooleanOnly listings not seen in previous runs.
proxyConfigurationobjectDatacenter is sufficient — no IP-reputation gate was observed on this target.

Known limits

  • posted_at is approximate. Fotocasa exposes only a relative age ("179 days ago"), not a literal timestamp — the Actor computes a date from that, so treat it as accurate to the day, not the minute.
  • building_age_years is a band code, not a literal year count — Fotocasa does not expose the latter on the search page.
  • Reachable depth is finite. Past a certain page, Fotocasa starts repeating the last valid page instead of erroring. The Actor detects that repeat (by comparing the first listing id) and stops cleanly rather than returning duplicate rows.

Local development

pip install -r requirements.txt
python test_local.py madrid-capital --max 20 --out sample_output.json
python test_local.py barcelona --transaction RENT --max 10

sample_output.json in this folder is real output from a live run, kept so the schema can be reviewed without running anything.