API

Fotocasa API: anuncios inmobiliarios en JSON

Fotocasa no abre una API a desarrolladores. Lo que vuelve aquí es lo que el portal publica — precio, superficie, habitaciones y zona — en JSON. Hay un campo que conviene mirar antes que el precio: el precio por metro cuadrado. Es lo único que permite comparar un piso de 60 m² con uno de 120 sin engañarse.

Endpoints

endpointQué devuelveObligatorios
location_searchResuelve un nombre de lugar, barrio, código postal o calle a las localizaciones internas de Fotocasa.query
searchBúsqueda de inmuebles por localización, en venta o alquiler, con los filtros del propio portal.todos opcionales
property_detailLa ficha completa: precio y precio por metro cuadrado, habitaciones, baños, superficie y fotos.todos opcionales
agencyEl perfil de una agencia inmobiliaria y su stock vivo: dirección, municipio, web y anuncios activos.agency

Cada llamada se cobra en créditos. Las llamadas fallidas y bloqueadas son gratuitas.

Ejemplo que funciona

Empieza por location_search. Los nombres de barrio se repiten entre ciudades y una localización mal resuelta devuelve resultados de otro sitio sin dar ningún error.

Petición
curl -X POST https://api.reefapi.com/fotocasa/v1/search \
  -H "x-api-key: TU_CLAVE" \
  -H "content-type: application/json" \
  -d '{"location": "valencia", "operation": "rent"}'
Respuesta (recortada)
{
  "ok": true,
  "data": {
    "results": [
      {
        "listing_id": "...",
        "price": 1100,
        "currency": "EUR",
        "surface_m2": 85,
        "price_per_m2": 12.9,
        "rooms": 3
      }
    ]
  },
  "meta": { "record_count": 30, "cache_hit": false, "mode": "live" }
}

En lugar de tu propio scraper de Fotocasa

Un scraper propio de Fotocasa funciona el primer día. Lo caro llega después: cuando cambia la estructura del listado, el parser devuelve una lista vacía en lugar de un error, y en recorridos largos la protección anti-bot corta a mitad de camino.

En inmobiliaria se suma un problema que un scraper casero rara vez resuelve: las localizaciones son ambiguas y el portal trabaja con identificadores internos. Aquí resolverlas es un endpoint aparte.

Para un estudio puntual tu script sale más barato y lo decimos claro. Para un seguimiento semanal, lo caro son las averías que nadie ve.

Límites y notas honestas

  • No es la API oficial de Fotocasa y no tenemos acuerdo con Fotocasa.
  • El precio por metro cuadrado viene cuando el anuncio publica la superficie; si no la publica, el campo queda vacío y no lo calculamos a ojo.
  • Venta y alquiler son operaciones distintas: mezclarlas produce medias sin sentido.
  • Sin caché: cada llamada refleja el estado en ese momento.