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 devuelve | Cuota | |
|---|---|---|
GET /properties/{paId} | el último estado que ya teníamos, en published.{portal}.remote | gratis |
GET …/publication/{portal} (esta página) | le pregunta al portal ahora | 1 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 portal | remoteStatus queda en |
|---|---|
ONLINE | published |
OFFLINE | unpublished |
| el aviso no existe en el portal | unpublished |
| un valor que no reconocemos | no se toca |
inSync contesta la pregunta que importa: ¿el aviso está como lo dejaste?
inSync | Qué significa | Qué hacer |
|---|---|---|
true | el portal coincide con lo que esperabas | nada |
false | cambió sin que lo pidieras — se cayó, o venció el plan | volvé a publicar si lo querés arriba |
null | el portal devolvió un estado que no sabemos interpretar | mirá 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
| Campo | Qué es |
|---|---|
portalItemId | el id que el portal le dio al aviso. Es lo que forma la URL |
publicationState | ONLINE / OFFLINE — si el aviso está vivo |
processingState | en qué etapa del procesamiento del portal está (ej. PROCESADO) |
onlineAt · offlineAt | cuándo salió y cuándo se dio de baja |
createdAt · modifiedAt | del lado del portal, no del tuyo |
visits | visitas que registró el portal. null si no las informa |
errors · warnings | tal como los manda el portal, sin traducir |
imagesStatus | qué hizo el portal con cada imagen |
exists | false si el aviso no está en el portal |
checkedAt | cuá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ódigo | Qué pasó | Qué hacer |
|---|---|---|
200 | el estado del aviso | — |
403 | tu token no tiene el scope {portal}:publish | escribinos para habilitarlo |
404 | esa propiedad no está en tu inventario | revisá el paId y el x-client-ref |
409 | la cuenta no está conectada al portal | pedí un enlace de conexión |
501 | todavía no podemos consultar el estado en ese portal | el portal viene en portal |
502 | no pudimos preguntarle al portal | volvé 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
- Publicación en portales — los tres métodos del mismo endpoint
PUTpublicar ·DELETEdespublicarGET /properties/{paId}— la lectura que no gasta cuota