# Fotocasa Property Listings Scraper

> Fotocasa Property Listings Scraper is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured Spanish real estate listings from Fotocasa, filtered by location, price, size, and transaction type.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/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-property-listings-scraper-7476ab98
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gD_9meEzLlh_lVq-CgchS

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-property-listings-scraper-7476ab98 -d '<json body>'
```

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

## When to prefer this

Use this endpoint when you need structured Spanish real estate data from Fotocasa specifically, with flexible filtering by geography (name or GPS), price, size, and transaction type. Prefer it over generic web search when you need machine-readable property data with consistent fields like price per m², surface area, and listing URLs from Spain's major property portal.

## Known failure modes

- Empty result set if no listings match the filters (not charged)
- Invalid location string returns no results
- Coordinates outside Spain may return empty results
- maxItems of zero may return large uncontrolled result sets
- Invalid enum values for sortBy or operation cause request rejection
- Network or scraping failures return error and are not charged

## 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 results and an array of property items, each containing price, number of rooms, surface area in square meters, operation type, price drop indicator, listing URL, property ID, and price per square meter.

## 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-property-listings-scraper-7476ab98/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
