DEVELOPING

Consultar el estado en el portal

GET /property-v1/properties/{paId}/publication/{portal}

Es la forma de saber cómo está el aviso del otro lado: si sigue online, cuál es su URL pública, cuántas visitas tuvo y si el portal registró algún error.

Esta llamada gasta una llamada de la cuota mensual del cliente en el portal, igual que publicar. Si sólo necesitás el último estado conocido, GET /properties/{paId} te lo da sin gastar nada.

curl https://property-api.mapaprop.com/property-v1/properties/01M41AQNXYG4W4SEEEEPHEDNX4/publication/zonapropapi \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-client-ref: cliente-42"
{
  "paId": "01M41AQNXYG4W4SEEEEPHEDNX4",
  "portal": "zonapropapi",
  "remoteStatus": "unpublished",
  "inSync": false,
  "remote": {
    "portalItemId": 60321762,
    "url": "https://www.zonaprop.com.ar/propiedades/clasificado/-60321762.html",
    "publicationState": "OFFLINE",
    "processingState": "PROCESADO",
    "onlineAt": "2026-10-03T17:14:06.000Z",
    "offlineAt": "2026-10-03T04:00:00.000Z",
    "createdAt": "2026-10-03T17:14:05.000Z",
    "modifiedAt": "2026-10-03T17:14:28.000Z",
    "visits": 0,
    "errors": [],
    "warnings": [],
    "imagesStatus": [],
    "exists": true,
    "checkedAt": "2026-10-03T18:42:57.716Z"
  },
  "quota": { "remaining": 1443, "limit": 1500 }
}

La URL del aviso

remote.url es dónde se ve el aviso publicado. No se puede construir desde tu lado: lleva el id interno del portal (remote.portalItemId), que es distinto del código con el que publicás.

remote.url viene en null si todavía no tenemos el id del portal, o si no podemos armar la URL con certeza para el país de la propiedad. No armamos una aproximada: un link que lleva a otro lado es peor que no tener link.

Las dos lecturas: una gratis y una fresca

Qué te devuelveCuota
GET /properties/{paId}el último estado que ya teníamos, en published.{portal}.remotegratis
GET …/publication/{portal} (esta página)le pregunta al portal ahora1 llamada

Para decidir entre las dos está remote.checkedAt: te dice de cuándo es el dato guardado. Si te alcanza, no hace falta volver a preguntar.

Si recorrés tu inventario entero consultando propiedad por propiedad, gastás una llamada por cada una. Con 400 propiedades son 400 llamadas de las 1500 del mes. Leé primero el estado guardado y consultá sólo lo que necesites fresco.

remoteStatus y inSync

remoteStatus es el estado del aviso, y esta llamada lo actualiza con lo que diga el portal.

publicationState del portalremoteStatus queda en
ONLINEpublished
OFFLINEunpublished
el aviso no existe en el portalunpublished
un valor que no reconocemosno se toca

inSync contesta la pregunta que importa: ¿el aviso está como lo dejaste?

inSyncQué significaQué hacer
trueel portal coincide con lo que esperabasnada
falsecambió sin que lo pidieras — se cayó, o venció el planvolvé a publicar si lo querés arriba
nullel portal devolvió un estado que no sabemos interpretarmirá remote.publicationState y escribinos

Nosotros no volvemos a publicar por nuestra cuenta. Si el aviso se cayó, te lo decimos con inSync: false y la decisión es tuya: puede ser que ya no lo quieras arriba.

Los otros campos de remote

CampoQué es
portalItemIdel id que el portal le dio al aviso. Es lo que forma la URL
publicationStateONLINE / OFFLINE — si el aviso está vivo
processingStateen qué etapa del procesamiento del portal está (ej. PROCESADO)
onlineAt · offlineAtcuándo salió y cuándo se dio de baja
createdAt · modifiedAtdel lado del portal, no del tuyo
visitsvisitas que registró el portal. null si no las informa
errors · warningstal como los manda el portal, sin traducir
imagesStatusqué hizo el portal con cada imagen
existsfalse si el aviso no está en el portal
checkedAtcuándo le preguntamos

errors puede traer cosas aunque la publicación haya salido bien: son anotaciones que el portal deja por su cuenta. Van sin interpretar porque el texto del portal es más preciso que cualquier traducción nuestra.

Códigos de respuesta

CódigoQué pasóQué hacer
200el estado del aviso—
403tu token no tiene el scope {portal}:publishescribinos para habilitarlo
404esa propiedad no está en tu inventariorevisá el paId y el x-client-ref
409la cuenta no está conectada al portalpedí un enlace de conexión
501todavía no podemos consultar el estado en ese portalel portal viene en portal
502no pudimos preguntarle al portalvolvé a intentar; no cambiamos nada de tu lado

El 501 no significa que el portal no exista: puede que publiques en él perfectamente y que lo que falte sea esta consulta. Hoy está disponible en Zonaprop.

Relacionado