# Fotocasa Spain Property Listings Scraper

> Fotocasa Spain Property Listings Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured real estate listing data from Fotocasa (Spanish property portal) by location, price, size, and operation type

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/fotocasa?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fotocasa-spain-property-listings-scraper-3bd9ee27
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_5w9mVX_tgP1D62licZYag

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability fotocasa-spain-property-listings-scraper-3bd9ee27 -d '<json body>'
```

Example prompt: Search Fotocasa for apartments to buy in Barcelona, sorted by cheapest first, priced between 150,000 and 400,000 euros, with at least 50 square meters, and return up to 50 listings.

## When to prefer this

Use this endpoint when you need structured property listing data from the Spanish real estate market specifically sourced from Fotocasa, and you want flexible filtering by location (name or GPS coordinates), price range, size, and transaction type. Prefer this over generic web scraping when you need clean, structured output fields like price per square meter and price drops without parsing raw HTML.

## Known failure modes

- Empty result set if the location name is unrecognized or misspelled — no charge applied
- Zero results returned if price/size filters are too restrictive for the given area
- Partial results if maxItems is set low or the portal exposes fewer listings than requested
- Invalid enum value for sortBy or operation causes request rejection
- Coordinates outside Spain may return no results since Fotocasa is a Spanish portal

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched listings and an array of property items, each containing property ID, listing URL, price in euros, number of rooms, surface area in square meters, operation type, price per square meter, and a price drop indicator.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "sortBy": {
   "enum": [
    "rating",
    "latest",
    "cheapest",
    "mostExpensive",
    "biggest",
    "smallest",
    "cheapestPerM2"
   ],
   "type": "string",
   "default": "rating",
   "description": "Order returned properties by relevance, freshness, price or area."
  },
  "maxSize": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Maximum floor area in square meters; zero means no maximum."
  },
  "minSize": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Minimum floor area in square meters; zero means no minimum."
  },
  "latitude": {
   "type": "number",
   "maximum": 90,
   "minimum": -90,
   "description": "Center latitude for radius search; provide longitude too. Overrides location."
  },
  "location": {
   "type": "string",
   "description": "City, province, district or other public place name. Coordinates take precedence."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Stop after this many unique properties. Zero collects as many public results as the search exposes."
  },
  "maxPrice": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Maximum listing price in euros; zero means no maximum."
  },
  "minPrice": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Minimum listing price in euros; zero means no minimum."
  },
  "longitude": {
   "type": "number",
   "maximum": 180,
   "minimum": -180,
   "description": "Center longitude for radius search; provide latitude too."
  },
  "operation": {
   "enum": [
    "buy",
    "rent",
    "share",
    "rentBuyOption",
    "transfer"
   ],
   "type": "string",
   "default": "buy",
   "description": "Listing transaction to search."
  },
  "distanceKm": {
   "type": "integer",
   "default": 20,
   "maximum": 100,
   "minimum": 1,
   "description": "Maximum distance from the coordinate center. Used only with latitude and longitude."
  },
  "rentalTypes": {
   "type": "array",
   "items": {
    "enum": [
     "longTerm",
     "temporary"
    ],
    "type": "string",
    "enumTitles": [
     "Long term",
     "Temporary"
    ]
   },
   "default": [],
   "description": "For rental searches, choose one duration. Empty or both includes all durations."
  },
  "locationType": {
   "enum": [
    "",
    "country",
    "autonomous_community",
    "province",
    "area",
    "region",
    "municipality",
    "l
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "price": null,
    "rooms": null,
    "surface": null,
    "operation": null,
    "priceDrop": null,
    "listingUrl": null,
    "propertyId": null,
    "pricePerSquareMeter": null
   }
  ],
  "product": "fotocasa"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fotocasa-spain-property-listings-scraper-3bd9ee27/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
