Markdown
API autenticada · consulta

Escolha o número de envio

Liste os números conectados à sua empresa, confira a qualidade conhecida e o limite compartilhado do portfólio.

GET/public/v1/numbers

A chave Bearer limita a consulta à sua empresa. Números desconectados ou removidos não entram na lista. Use o phone_number_id escolhido no catálogo de templates e no envio; ele é um identificador da Meta, não o telefone do contato.

cURL · listar números
curl "https://api.patrociniotech.com/public/v1/numbers?limit=20" \
  -H "Authorization: Bearer SUA_CHAVE"

Paginação (link para esta seção)

ParâmetroRegra
limitDe 1 a 50. Padrão: 20 números por página.
after_idCopie next_after_id da resposta anterior. Omita na primeira página; não incremente nem interprete o cursor.
has_more / next_after_idEnquanto has_more for true, consulte a próxima página. next_after_id é null quando a lista termina.

A ordem é lexical por ID. A listagem não congela o cadastro: uma conexão nova que entre antes do cursor será vista em uma nova varredura. Guarde o catálogo localmente e renove periodicamente, em vez de fazer esta consulta antes de cada mensagem.

JSON · resposta ilustrativa
{
  "success": true,
  "data": {
    "items": [
      {
        "phone_number_id": "123456789012345",
        "waba_id": "234567890123456",
        "business_portfolio_id": "345678901234567",
        "label": "Avisos",
        "display_phone_number": "+55 11 90000-0000",
43 linhas

O que cada leitura significa (link para esta seção)

CampoInterpretação
quality.ratingGREEN, YELLOW, RED, UNKNOWN ou null. UNKNOWN/null não são qualidade baixa; representam ausência de nota ou indisponibilidade.
messaging_limit.valueDestinatários únicos em uma janela móvel de 24 h, compartilhados pelo portfólio. Não é mensagens por minuto, saldo restante ou limite individual de cada número.
messaging_limit.known / unlimitedknown=false: não foi possível conhecer o limite. unlimited=true: a Meta informou ilimitado. Nos dois casos value pode ser null; não confunda desconhecido com ilimitado.
business_portfolio_idAgrupa números que compartilham a capacidade. Não some o limite desses números. Pode ser null quando a conexão não informa o portfólio.
health.stateÚltima verificação persistida: AVAILABLE, LIMITED, BLOCKED ou UNKNOWN. Não garante que uma nova mensagem será aceita ou entregue.
health.reasonsLista de restrições: code, title, action e entity. 141010 é uma pendência de verificação da empresa; não reduz por si só o limite para 250. Erros de SIP/chamadas são excluídos.
health.staletrue quando não há leitura ou ela tem mais de 30 minutos. Confira a hora antes de tomar decisões com o estado persistido.
checked_atA resposta, a qualidade, o limite e a saúde têm horários próprios. A data da consulta não indica quando a Meta alterou o valor.

Falha parcial e atualização (link para esta seção)

BLOCKED informa impedimento de envio: suspenda a campanha e confira os motivos. LIMITED exige avaliar reasons; não equivale a bloqueio total. Uma pendência de verificação pode coexistir com qualidade GREEN e limite TIER_10K. Mesmo AVAILABLE não reserva capacidade: acompanhe recusas, entrega e qualidade durante o envio. Para UNKNOWN ou leitura antiga, não conclua que o número está liberado.

Uma falha em um número não apaga os outros. A página retorna HTTP 200 com meta_available: false nesse item, qualidade e limite desconhecidos, preservando identidade e a última saúde registrada. Mostre indisponível; não converta esse caso em bloqueado, qualidade baixa ou custo zero.

Qualidade e limite podem usar uma consulta Meta feita há até 120 segundos. O monitoramento de saúde é separado, distribuído em lotes e com novas tentativas espaçadas em falhas. Em fila acumulada ou indisponibilidade, seu horário pode ser mais antigo. Use os horários na interface para deixar isso claro.

A rota consome a cota compartilhada de 600 requisições por minuto por chave. Ela não oferece reserva de capacidade nem verifica se um destinatário possui WhatsApp. Uma lista vazia é válida; erros de autenticação, paginação e limite continuam usando o envelope de erros da API.