Qual modo cada portal suporta

GET /property-v1/leads/capabilities

As consultas não chegam da mesma forma em todos os portais: em alguns você as solicita e em outros chegam sozinhas. E isso é decidido por cada portal, não por nós.

Este método informa isso como dado, para que você não precise manter essa informação escrita no seu código.

É o único método de leads que NÃO exige {portal}:leads. Exige property-api-catalog — o mesmo das zonas e dos atributos. É assim porque fala sobre todos os portais ao mesmo tempo: exigir o de um só seria arbitrário, e exigir os quatro faria com que você não pudesse lê-lo. Se você já consome o catálogo de zonas, não precisa nos pedir nada novo.

curl "https://property-api.mapaprop.com/property-v1/leads/capabilities" \
  -H "Authorization: Bearer $TOKEN"

Não leva parâmetros. Não olha nenhuma conta dos seus clientes e não gasta cota de ninguém.

Os três modos

Têm o nome de quem dispara, que é a única diferença que muda o seu trabalho:

ModoQuem disparaO que você tem que fazer
pullvocê, quando quisersolicitar as consultas com por conta ou por imóvel
pushFromPortalo portal avisa, e nós encaminhamos para vocêter um endpoint próprio e verificar a nossa assinatura
pushFromMapapropnós consultamos e enviamos para vocêo mesmo: o seu endpoint e a assinatura

Os dois push ainda não estão disponíveis em nenhum portal. Quando estiverem, este método vai informar — e é exatamente para isso que ele existe.

A resposta

{
  "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 }
    }
  }
}

O que significa cada campo

availablese esse modo pode ser usado hoje nesse portal
byAccountse você pode trazer as da conta inteira em uma única chamada — o caminho normal
byPropertyse você pode trazer as de um anúncio específico
quotaSharedse as consultas gastam a mesma cota mensal que publicar e que consultar o status do anúncio

byAccount, byProperty e quotaShared aparecem somente quando pull.available é true: em um portal sem pull não descrevem nada, e enviá-los como false seria lido como se o serviço existisse e estivesse desligado.

quotaShared: true significa que uma consulta pode deixar você sem cota para publicar. É o caso do Zonaprop: o limite do mês é único e é compartilhado por publicar, consultar o status e trazer consultas. Como funciona a cota do Zonaprop.

Como usar

Leia uma vez ao iniciar a sua integração e guarde o resultado; leia de novo de vez em quando. Não é necessário consultá-lo antes de cada pedido de leads.

O que isso evita:

  • Escrever no seu código qual portal se consulta e qual avisa. No dia em que um portal ganhar um modo novo, a sua integração descobre sozinha.
  • Descobrir na tentativa. Se você pedir consultas de um portal que ainda não as oferece, a resposta é um 501 honesto que informa qual dos dois serviços está faltando — mas você descobriu depois de ter montado a chamada.

Um portal que não aparece na lista não é um portal sem suporte: é um portal que não existe nesta API. Os que ainda não suportam nada aparecem sim, com tudo em false.

Os erros

QuandoO que fazer
401o token está faltando, venceu ou não é válidoverifique o Authorization
403está faltando o scope property-api-catalogpeça para nós concedermos a você. Não é {portal}:leads: esse não habilita este método