Introdução

O que você pode construir com o Zaplin e por onde começar.

O Zaplin é um CRM de WhatsApp para equipes. Tudo o que um workspace tem (contatos, conversas, mensagens, pipelines, campanhas, automações, lembretes, formulários e segmentos) também está disponível por quatro portas:

Por onde começar

Endereço base

Todas as rotas da API ficam em:

https://app.zaplin.com.br/api/v1
  • Corpos e respostas em JSON, com chaves em snake_case (contact_id, next_cursor). Datas e horários em ISO 8601, em UTC.
  • Telefones em E.164, como +5511987654321.
  • Um corpo que não é JSON recebe 400 com invalid_json. Todo erro é { error: { code, message } } (veja Erros e limites).

A referência da API lista cada endpoint, gerada da mesma tabela de rotas que a API e o servidor MCP usam.

Paginação

As listas vêm do mais novo ao mais antigo, uma página por vez:

ParâmetroValor
limitItens por página, de 1 a 100. Padrão: 50.
cursorO next_cursor da página anterior.
{
  "data": [{ "id": "…" }],
  "next_cursor": "eyJhdCI6IjIwMjYtMTAtMTdUMTM6MDI6MTEuMDAwWiIsImlkIjoi4oCmIn0"
}

next_cursor é null na última página. Trate o cursor como opaco: um cursor que não veio da API recebe 400 com invalid_cursor.

let cursor: string | null = null
do {
  const url = new URL("https://app.zaplin.com.br/api/v1/contacts")
  url.searchParams.set("limit", "100")
  if (cursor) url.searchParams.set("cursor", cursor)
  const response = await fetch(url, {
    headers: { Authorization: `Bearer ${process.env.ZAPLIN_KEY}` },
  })
  const page = await response.json()
  for (const contact of page.data) console.log(contact.id)
  cursor = page.next_cursor
} while (cursor)

Dois tipos de token

TokenPara quêOnde nasce
Chave de API (sk_live_…)Integrações entre sistemas, com o alcance de uma conta de serviçoConfigurações › Desenvolvedores › API Keys
Access token OAuthApps e assistentes que agem em nome de uma pessoaO fluxo de OAuth

Os dois vão no cabeçalho Authorization: Bearer <token>. Veja Autenticação.

Próximos passos

Nesta página