Endpoints
GET https://pilotstatus.com.br/v1/leads
GET https://pilotstatus.com.br/v1/leads/{id}
Os dois atuam sobre um número: use uma API key escopada a número (
ps_*) no header
x-api-key, ou uma chave da conta que indique o número no header
x-whatsapp-number-id. Uma chave da conta sem esse header recebe
403 TENANT_SCOPE_NOT_ALLOWED.chat:read no workspace: lead é dado de
contato de uma pessoa, então o papel ANALYST é recusado com 403 PERMISSION_DENIED. Uma
chave ps_ clássica não é afetada por papéis.
Os mesmos dados estão disponíveis para agentes de IA pelas ferramentas leads_list e leads_get
do servidor MCP.
Para ser avisado de um lead novo assim que ele chega, em vez de consultar, assine um webhook no
evento lead.received. Ele é opt-in: um webhook
assinado em "*" não o recebe, então cite "lead.received" pelo nome.
Dois ids: id e leadgenId
consentGiven tem três estados
O valor é decidido quando o lead é guardado, a partir da caixa configurada para o formulário
naquele momento. Configurar a caixa depois não altera leads já guardados.
GET /v1/leads
Mais recentes primeiro por createdAt (empate desfeito pelo id, decrescente). Leads apagados
nunca são listados nem contados.
Parâmetros de consulta
string
Restringe a um único id de Formulário Instantâneo.
string
Restringe a um único id de anúncio.
string
Restringe a um único id de Página do Facebook.
string
Data e hora ISO 8601. Leads com
createdAt a partir deste instante (inclusive).string
Data e hora ISO 8601. Leads com
createdAt até este instante (inclusive).integer
padrão:"1"
Número da página (≥ 1). Um valor ausente, não numérico ou menor é lido como
1.integer
padrão:"30"
Resultados por página (1–100). Um valor maior é limitado a
100.createdAt — quando a pessoa enviou o formulário na Meta — e
não sobre quando a Pilot Status guardou o lead. Um lead importado depois (source: "backfill")
mantém a data em que a pessoa o enviou.
Paginação
A resposta traztotal (todos os leads que atendem ao filtro), page, pageSize e
totalPages. Informe contagens pelo total, não pelo tamanho de leads.
A paginação para em 10.000 linhas: quando page × pageSize passa disso, a requisição falha
com 400 INVALID_PAGINATION. Estreite o período com startDate/endDate em vez de paginar
mais fundo.
Exemplo
GET /v1/leads/{id}
Devolve um lead do número pelo id da Pilot Status, no formato { "lead": { … } }, com os
mesmos campos, as mesmas regras de privacidade e o mesmo notice da listagem.
string
obrigatório
O id do lead na Pilot Status — o campo
id devolvido por GET /v1/leads, não o leadgenId
da Meta.404 LEAD_NOT_FOUND — a
mesma resposta de um id que nunca existiu.
O objeto lead
Efeito do modo de privacidade (PII)
Um lead ocultado continua existindo e continua contando: mantém os ids, a atribuição (página, formulário, anúncio e os nomes resolvidos do anúncio — rótulos do próprio anunciante, não dados pessoais) e os campos de status. SófullName, email e phone voltam null e fields volta
vazio, com redacted: true. Essa divisão mantém a contagem e a atribuição de leads funcionando
num número RELAY_ONLY em vez de não devolver nada.
Um lead guardado já ocultado (porque o número estava em RELAY_ONLY quando ele chegou) continua
ocultado mesmo depois que o número muda de modo — os dados pessoais nunca foram guardados.