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
| endpoint | Qué devuelve | Obligatorios |
|---|---|---|
| location_search | Resuelve un nombre de lugar, barrio, código postal o calle a las localizaciones internas de Fotocasa. | query |
| search | Búsqueda de inmuebles por localización, en venta o alquiler, con los filtros del propio portal. | todos opcionales |
| property_detail | La ficha completa: precio y precio por metro cuadrado, habitaciones, baños, superficie y fotos. | todos opcionales |
| agency | El 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.
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"}'{
"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.