Começo rápido
Crie uma chave de API e faça a primeira chamada em 5 minutos.
A API do Zaplin é REST sobre HTTPS. Ela recebe e devolve JSON com chaves em snake_case e datas em ISO 8601, e autentica com um token Bearer.
https://app.zaplin.com.br/api/v1Você precisa ser Owner ou Admin do workspace para criar chaves.
Crie a chave
No app, abra Configurações → Desenvolvedores → API Keys e clique em Nova chave de API.
- Nome: para você reconhecer a chave depois.
- Conta de serviço: toda chave pertence a uma conta de serviço, a identidade do sistema que vai usar a chave. As ações da chave aparecem na auditoria com o nome dela. Se o workspace ainda não tem uma, use + Nova conta de serviço (ex.: ERP, BI, Zapier).
- Expira em: 30 dias, 90 dias, 1 ano ou Nunca.
- Permissões (escopos): marque só o que a integração precisa. Para este guia,
contacts:readecontacts:write.
Clique em Criar chave e copie a chave: ela começa com sk_live_ e só aparece uma vez. Guardamos apenas um resumo (hash) dela.
Liste os contatos
export ZAPLIN_KEY=sk_live_...
curl https://app.zaplin.com.br/api/v1/contacts?limit=2 \
-H "Authorization: Bearer $ZAPLIN_KEY"{
"data": [
{
"id": "3b0f6c1e-…",
"name": "Maria Silva",
"phone": "+5511987654321",
"email": null,
"opted_out": false,
"created_at": "2026-10-17T13:02:11.000Z"
}
],
"next_cursor": null
}As listas vêm do mais novo ao mais antigo, uma página por vez. Veja paginação.
Crie um contato
curl https://app.zaplin.com.br/api/v1/contacts \
-X POST \
-H "Authorization: Bearer $ZAPLIN_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-1042" \
-d '{"name": "João Pereira", "phone": "+5511912345678"}'O telefone vai em E.164. A resposta é 201 com o contato. Se outro contato já tem esse telefone, a resposta é 409 com phone_taken e o contact_id dele.
A Idempotency-Key faz uma nova tentativa da mesma chamada devolver a primeira resposta em vez de criar outro contato. Veja idempotência.
Em JavaScript ou Python
const response = await fetch("https://app.zaplin.com.br/api/v1/contacts?limit=50", {
headers: { Authorization: `Bearer ${process.env.ZAPLIN_KEY}` },
})
const body = await response.json()
if (!response.ok) throw new Error(`${body.error.code}: ${body.error.message}`)
for (const contact of body.data) console.log(contact.name, contact.phone)Próximos passos
- Autenticação: escopos, contas de serviço e revogação.
- Erros e limites: códigos de erro, idempotência e limites.
- Referência da API: todos os endpoints.
- Webhooks: receba eventos em vez de consultar.