DEVELOPING

Las consultas de una propiedad

GET /property-v1/properties/{paId}/leads?portal={portal}

Trae las consultas de un aviso, el de la propiedad que indiques.

Para traer todo, usá el método por cuenta. Recorrer tus propiedades una por una gasta una llamada del cupo por cada una, y con el otro método son todas en una. Este método es para cuando querés mirar una sola — el detalle de un aviso en tu panel.

curl "https://property-api.mapaprop.com/property-v1/properties/01M41AQNXYG4W4SEEEEPHEDNX4/leads?portal=zonapropapi&fromDate=20260101" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-client-ref: cliente-42"

Los parámetros

portalobligatoriozonapropapi
fromDatedesde qué fecha, YYYYMMDDsi no lo mandás, los últimos 7 días
toDatehasta qué fecha, YYYYMMDDacá sí se aplica
sizecuántos leads como máximo100

Mandá fromDate siempre que quieras más que lo muy reciente. Sin una ventana explícita el portal usa una propia, muy angosta: el mismo aviso que devuelve 8 consultas con fromDate de nueve meses atrás devuelve 1 sin el parámetro. Si no lo mandás, parece que el aviso casi no tuviera consultas.

La respuesta

{
  "portal": "zonaprop",
  "paId": "2605257",
  "from": "20260101",
  "to": "20260601",
  "leads": [
    {
      "id": "322337250",
      "propertyCode": "2605257___mapaprop",
      "name": "Lucía",
      "email": "lucia@ejemplo.com",
      "phone": "1156781234",
      "message": "Hola, quería coordinar una visita",
      "date": 1790878040000,
      "portalMessageId": null,
      "portalAdId": 56801168,
      "portalContactId": 49474924,
      "portalActionId": 10
    }
  ],
  "total": 8,
  "quota": { "remaining": 1346, "limit": 1500 }
}

Es la misma forma que el método por cuenta, más el paId que pediste. El objeto lead, campo por campo, está en la introducción.

to aparece sólo si mandaste toDate — y aparece porque acá el filtro se aplicó.

Si el aviso no está en el portal

No es un error: es 200, con la lista vacía y el motivo.

{
  "portal": "zonaprop",
  "paId": "01M41AQNXYG4W4SEEEEPHEDNX4",
  "from": "20260929",
  "leads": [],
  "total": 0,
  "notPublishedOnPortal": true,
  "detail": "Ese aviso no figura en esa inmobiliaria del portal, así que no tiene consultas. Puede que todavía no se haya publicado, que el portal lo haya dado de baja, o que esté publicado bajo otra cuenta.",
  "quota": { "remaining": 1346, "limit": 1500 }
}

El portal nos dice "ese aviso no figura en esta inmobiliaria" y nada más, así que no podemos decirte cuál de las tres razones es. Preferimos nombrarte las tres antes que elegir una y arriesgarnos a mandarte a buscar donde no está.

La propiedad sí existe en tu inventario — si no existiera, la respuesta sería un 404.

Los errores

CuándoQué hacer
400 portal_requeridofalta ?portal=mandalo
403te falta el scope {portal}:leadspedinos que te lo otorguemos
404 property_not_foundese paId no está en tu inventariorevisá el id. No gasta cupo: cortamos antes de preguntarle al portal
409 portal_not_connectedesa cuenta no está conectada a ese portalconectala
409 portal_account_unlinkedla desvincularon del lado del portalhay que volver a conectarla
429 portal_quota_exhaustedla inmobiliaria agotó su cupo del mesesperar al mes siguiente. El cupo se comparte con publicar — ver el cupo de Zonaprop
501 leads_no_soportadoese portal todavía no ofrece este servicio—
502 portal_rejectedel portal no contestó o rechazó la consultareintentar es seguro