Qué modo soporta cada portal
GET /property-v1/leads/capabilities
Las consultas no llegan igual en todos los portales: en algunos las pedís vos y en otros te llegan solas. Y eso lo decide cada portal, no nosotros.
Este método te lo dice como dato, para que no tengas que tenerlo escrito en tu código.
Es el único método de leads que NO pide {portal}:leads. Pide
property-api-catalog — el mismo de las zonas y los atributos. Es así porque habla de todos
los portales a la vez: pedirte el de uno sería arbitrario, y pedirte los cuatro haría que no pudieras
leerlo. Si ya consumís el catálogo de zonas, no tenés que pedirnos nada nuevo.
curl "https://property-api.mapaprop.com/property-v1/leads/capabilities" \
-H "Authorization: Bearer $TOKEN"
No lleva parámetros. No mira ninguna cuenta de tus clientes y no gasta cupo de nadie.
Los tres modos
Se llaman por quién dispara, que es la única diferencia que te cambia el trabajo:
| Modo | Quién dispara | Qué tenés que hacer vos |
|---|---|---|
pull | vos, cuando quieras | pedir las consultas con por cuenta o por propiedad |
pushFromPortal | el portal avisa, y nosotros te lo reenviamos | tener un endpoint propio y verificar nuestra firma |
pushFromMapaprop | nosotros consultamos y te lo empujamos | lo mismo: tu endpoint y la firma |
Los dos push todavía no están disponibles en ningún portal. Cuando lo estén, este método va a
decirlo — y es exactamente para eso que existe.
La respuesta
{
"portals": {
"zonapropapi": {
"pull": { "available": true, "byAccount": true, "byProperty": true, "quotaShared": true },
"pushFromPortal": { "available": false },
"pushFromMapaprop": { "available": false }
},
"argenpropapi": {
"pull": { "available": false },
"pushFromPortal": { "available": false },
"pushFromMapaprop": { "available": false }
},
"cabapropapi": {
"pull": { "available": false },
"pushFromPortal": { "available": false },
"pushFromMapaprop": { "available": false }
},
"mercadolibreapi": {
"pull": { "available": false },
"pushFromPortal": { "available": false },
"pushFromMapaprop": { "available": false }
}
}
}
Qué significa cada campo
available | si ese modo se puede usar hoy en ese portal |
byAccount | si podés traer las de toda la cuenta en una llamada — el camino normal |
byProperty | si podés traer las de un aviso puntual |
quotaShared | si las consultas gastan el mismo cupo mensual que publicar y que consultar el estado del aviso |
byAccount, byProperty y quotaShared aparecen sólo cuando pull.available es true: en un
portal sin pull no describen nada, y mandarlos en false se leería como que el servicio existe y está
apagado.
quotaShared: true significa que una consulta te puede dejar sin cupo para publicar. Es el caso de
Zonaprop: el tope del mes es uno solo y lo comparten publicar, consultar el estado y traer consultas.
Cómo funciona el cupo de Zonaprop.
Cómo usarlo
Leelo una vez al arrancar tu integración y guardate el resultado; volvé a leerlo de vez en cuando. No hace falta consultarlo antes de cada pedido de leads.
Lo que te ahorra:
- No escribir en tu código qué portal se consulta y cuál avisa. El día que un portal gane un modo nuevo, tu integración se entera sola.
- No descubrirlo probando. Si pedís consultas de un portal que todavía no las ofrece, la respuesta es
un
501honesto que te dice cuál de los dos servicios falta — pero te enteraste después de haber armado la llamada.
Un portal que no aparece en la lista no es un portal sin soporte: es un portal que no existe en esta
API. Los que no soportan nada todavía sí aparecen, con todo en false.
Los errores
| Cuándo | Qué hacer | |
|---|---|---|
| 401 | el token falta, venció o no es válido | revisá el Authorization |
| 403 | te falta el scope property-api-catalog | pedinos que te lo otorguemos. No es {portal}:leads: ese no habilita este método |