API

Idealista API: anuncios inmobiliarios en JSON

Idealista tiene una API oficial y conviene decirlo tal cual: existe, pero el acceso se concede a mano y no es autoservicio. Esta API lee lo que el portal muestra públicamente — precio, superficie, habitaciones, zona — y lo devuelve como JSON. La localidad es obligatoria, y no por capricho: una búsqueda inmobiliaria sin zona no responde a ninguna pregunta real.

Endpoints

endpointQué devuelveObligatorios
searchBúsqueda de anuncios por localidad en España, Italia o Portugal, en venta o alquiler, con los filtros del portal.location
detailLa ficha completa de un anuncio por su id de Idealista (el número que aparece en la URL).id
geographyResuelve un nombre de lugar escrito libremente al identificador de localidad de Idealista, listo para usar en la búsqueda.query

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

Ejemplo que funciona

Empieza siempre por geography. Los nombres de barrio y municipio se repiten entre provincias, y una localidad mal resuelta devuelve resultados de otro sitio sin dar ningún error.

Petición
curl -X POST https://api.reefapi.com/idealista/v1/search \
  -H "x-api-key: TU_CLAVE" \
  -H "content-type: application/json" \
  -d '{"location": "madrid", "operation": "sale", "price_max": 400000}'
Respuesta (recortada)
{
  "ok": true,
  "data": {
    "results": [
      {
        "id": "...",
        "title": "...",
        "price": 365000,
        "currency": "EUR",
        "size_m2": 85,
        "rooms": 3,
        "district": "..."
      }
    ]
  },
  "meta": { "record_count": 30, "cache_hit": false, "mode": "live" }
}

En lugar de tu propio scraper de Idealista

Un scraper propio de Idealista funciona el primer día. Lo que viene después es lo caro: 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 el inmobiliario hay además un problema que un scraper casero rara vez resuelve bien: los nombres de localidad son ambiguos y el portal trabaja con identificadores internos. Aquí resolverlos es un endpoint aparte.

Para un estudio puntual tu script sale más barato y lo decimos sin rodeos. Para un seguimiento semanal, lo caro no es el código sino las averías que nadie ve.

Límites y notas honestas

  • No es la API oficial de Idealista y no tenemos acuerdo con Idealista. Su API existe, pero el acceso se aprueba manualmente.
  • `location` es obligatoria. No hay búsqueda nacional sin zona.
  • Si el anuncio no publica año de construcción o certificado energético, el campo viene vacío; no lo deducimos.
  • Sin caché: cada llamada refleja el estado en ese momento.