Desenvolvedores
Primeiros passos com a API REST
Endereço base, autenticação, limites e três chamadas prontas para listar contatos, mandar uma mensagem e aplicar uma tag.
Resposta rápida
A API fica em https://<endereço do seu ZapFlow>/api/v1. Mande o token no cabeçalho Authorization: Bearer zf_... em todas as chamadas. A documentação completa, com todos os endpoints e exemplos, abre no botão Documentação da tela API & MCP.
Antes de começar
- Crie um token com as permissões que a integração precisa: veja Criar um token de API.
- O endereço base aparece pronto para copiar no cartão API REST, em Base URL. Nos exemplos abaixo, troque
https://app.metodox.com.brpelo endereço do seu ZapFlow.
12- 1Novo token
- 2Documentação (Swagger)
O básico
| Item | Valor |
|---|---|
| Base URL | https://<seu ZapFlow>/api/v1 |
| Autenticação | Cabeçalho Authorization: Bearer zf_seu_token |
| Formato | JSON nas requisições e nas respostas |
| Limite | 1.000 requisições por minuto por token e 10.000 por minuto por projeto. Acima disso a resposta é 429 com retry_after (segundos) e os cabeçalhos Retry-After e RateLimit-* |
| Documentação | Botão Documentação em API & MCP (abre em /api-docs) |
O token age com o acesso de quem o criou: se essa pessoa só vê os próprios leads ou algumas linhas, a API respeita o mesmo recorte.
Exemplos
Listar contatos
curl -H "Authorization: Bearer zf_seu_token" \
"https://app.metodox.com.br/api/v1/contacts?limit=20&search=carolina"A resposta traz data (os contatos) e pagination (page, limit, total, total_pages). Aceita também tag (nome da tag) e page. O limit vai até 100.
Mandar uma mensagem de texto
Primeiro descubra o identificador da linha que vai enviar:
curl -H "Authorization: Bearer zf_seu_token" \
"https://app.metodox.com.br/api/v1/instances"Use o phone_number_id da linha escolhida como instance_id:
curl -X POST "https://app.metodox.com.br/api/v1/messages/text" \
-H "Authorization: Bearer zf_seu_token" \
-H "Content-Type: application/json" \
-d '{
"instance_id": "PHONE_NUMBER_ID_DA_LINHA",
"to": "5511987650001",
"content": "Oi, Carolina! Sua vaga na aula ao vivo está garantida."
}'Texto livre só dentro da janela de 24 horas
A API só manda texto livre para quem escreveu para o projeto nas últimas 24 horas. Fora disso, ela responde 403 com outside_24h_window. Para esses casos, mande junto um template_fallback com o nome de um template aprovado (template_name, language e variables): a API envia o template no lugar. Veja Janela de 24 horas.
Aplicar uma tag a um contato
Liste as tags para pegar o id:
curl -H "Authorization: Bearer zf_seu_token" \
"https://app.metodox.com.br/api/v1/tags"Depois aplique pelo telefone do contato:
curl -X POST "https://app.metodox.com.br/api/v1/contacts/5511987650001/tags" \
-H "Authorization: Bearer zf_seu_token" \
-H "Content-Type: application/json" \
-d '{ "tag_id": 12 }'Aplicar uma tag pela API dispara os fluxos com o gatilho Tag Atribuída, como se a tag tivesse sido aplicada na tela.
O que mais dá para fazer
A documentação lista os endpoints agrupados por assunto: contatos e campos, tags e ações, mensagens (texto, imagem, documento, áudio), Kanban (mover card, destacar, trocar de quadro), fluxos e versões, linhas, opt-out e mais. Cada endpoint mostra o corpo esperado e as respostas possíveis.
Se algo der errado
| Resposta | Causa provável | O que fazer |
|---|---|---|
401 | Token ausente, errado, expirado ou revogado | Confira o cabeçalho Authorization: Bearer ... e a validade do token |
403 com outside_24h_window | O contato não falou com o projeto nas últimas 24 horas | Use template_fallback com um template aprovado |
403 em envio | A linha não está liberada para quem criou o token | Libere a linha em Acesso por linha ou use outra linha |
404 em contato | O contato não existe neste projeto ou não está visível para quem criou o token | Confira o telefone com DDI e DDD, e o acesso do criador do token |
422 | Faltou um campo obrigatório | Leia a mensagem de erro: ela diz qual campo falta |
Perguntas frequentes
A API usa a mesma base de contatos da tela?
Sim. Tudo o que a API cria ou altera aparece na tela, e vice-versa.
Existe webhook de saída, que avisa meu sistema quando algo acontece no ZapFlow?
Não há uma tela de webhooks de saída. Para avisar outro sistema, use o bloco Requisição HTTP dentro de um fluxo: veja Receber e enviar webhooks.
Dá para usar a API com n8n, Make ou Zapier?
Sim. Use o módulo de requisição HTTP dessas ferramentas com o cabeçalho Authorization: Bearer zf_....
Artigos relacionados
Criar um token de APIReceber e enviar webhooksConectar o ZapFlow ao Claude e a outros assistentes (MCP)Janela de 24 horas