API REST
Crie links, Smart Links, formulários e páginas Multilink pelo seu próprio código e leia as análises deles, com as mesmas regras do app do Walink.
Com a API do Walink, um script, um backend ou qualquer ferramenta no-code que envie requisições HTTP faz o que você faz no app. Toda requisição passa pelas regras do próprio app, então endereços, cota e propriedade são verificados do mesmo jeito, e toda criação gera um rascunho, menos a de um link grátis, para que nada vá ao ar por acidente.
Esta página leva você até a primeira chamada. Todos os endpoints e campos estão na referência completa da API, que também tem um console para testar requisições.
O que você pode automatizar
| Recurso | O que a API faz |
|---|---|
Links Premium (/v1/links) |
Listar, criar rascunhos, editar, publicar, voltar para rascunho, excluir, personalizar o QR |
Smart Links (/v1/smart-links) |
O mesmo, com destinos e roteamento |
Formulários (/v1/forms) |
O mesmo, mais as respostas que as pessoas enviaram |
Páginas Multilink (/v1/multilinks) |
O mesmo |
Links grátis (/v1/free-links) |
Listar, criar, ler, excluir |
Análises (/v1/analytics) |
Números e detalhamentos por país, origem, dispositivo e mais |
Conta (/v1/account) |
Perfil, cota em uso, links grátis da conta |
Qualquer conta do Walink pode usar a API. Rascunhos são grátis. Publicar usa a cota da sua assinatura e as análises precisam de uma assinatura, como no app.
Crie um token
- Entre no Walink, abra o menu da conta (o botão redondo no canto superior direito) e selecione Desenvolvedores.
- Em Tokens de API, selecione Criar token.
- Dê um Nome a ele, como "Script de relatórios", e escolha o prazo em Expira após: 30 dias, 90 dias, 1 ano (o padrão) ou Sem expiração.
- Em Permissões, marque só o que o token precisa. Predefinições rápidas preenche Somente leitura ou Acesso total. As permissões não podem ser alteradas depois.
- Selecione Criar token. A janela Salve seu token mostra o token uma única vez: copie para um lugar seguro, como um gerenciador de senhas, e selecione Já salvei.
Os tokens começam com wlk_live_, e uma conta pode ter 25 tokens ativos. Na tabela de tokens, Rotacionar gera um novo token com o mesmo nome e as mesmas permissões, enquanto o antigo continua funcionando por 7 dias. Revogar desativa um token de vez, em até 30 segundos.
Permissões
write inclui read. Nada inclui publish, delete ou responses:read: cada uma é concedida separadamente, e nenhuma vem ativada por padrão.
| Permissão | O que permite |
|---|---|
links:read |
Ler Links Premium, Smart Links e links grátis |
links:write |
Criar e editar rascunhos |
links:publish |
Publicar, voltar para rascunho, editar qualquer item publicado, criar links grátis |
links:delete |
Excluir |
forms:*, multilinks:* |
As mesmas quatro para formulários e páginas Multilink |
account:read |
Perfil, cota e uso |
analytics:read |
Análises |
responses:read |
Respostas de formulários, que contêm dados pessoais que as pessoas enviaram a você |
analytics:read e multilinks:read também mostram os nomes dos seus links, Smart Links e formulários publicados, mesmo sem a permissão de leitura de cada um.
Sua primeira requisição
A URL base é https://api.walink.com/v1. Envie o token como Authorization: Bearer <token> e os corpos das requisições em JSON. Os exemplos leem o token de uma variável de ambiente WALINK_API_TOKEN, para que ele fique fora do seu código.
Liste seus Links Premium (precisa de links:read):
curl https://api.walink.com/v1/links \
-H "Authorization: Bearer $WALINK_API_TOKEN"
{
"data": [
{
"id": "lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77",
"title": "Tienda Luna orders",
"handle": "tienda-luna",
"plan": "chat",
"status": "published",
"url": "https://wa.link/tienda-luna",
"created_at": "2026-11-05T14:32:07.000Z",
"updated_at": "2026-11-05T14:32:07.000Z"
}
],
"has_more": false,
"next_cursor": null
}
As listas vêm das mais recentes para as mais antigas. Elas aceitam limit (25 por padrão, 100 no máximo) e cursor: passe o next_cursor para obter a próxima página.
Crie um rascunho
Uma criação sempre gera um rascunho (precisa de links:write). Este abre uma conversa com um número dos EUA:
curl -X POST https://api.walink.com/v1/links \
-H "Authorization: Bearer $WALINK_API_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: tienda-luna-promo-1" \
-d '{
"handle": "tienda-luna-promo",
"plan": "chat",
"title": "Tienda Luna promo",
"phone": "4155550123",
"country_code": "1",
"country_alpha": "US",
"message": "Hello Tienda Luna, I saw your promo"
}'
A resposta é 201 com o registro completo, seu id e "status": "draft".
handleé o endereço depois dewa.link/. Ele não pode ser alterado depois que o link é criado, e um rascunho não o reserva: a primeira conta que publicar nele fica com ele.plané o tipo de link:chat,catalog,channelougroup.Idempotency-Keytorna segura uma nova tentativa durante 24 horas: a mesma chave e o mesmo corpo devolvem a primeira resposta, em vez de um segundo rascunho.
Publique
Publicar é uma chamada à parte, e precisa de links:publish:
curl -X POST https://api.walink.com/v1/links/lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77/publish \
-H "Authorization: Bearer $WALINK_API_TOKEN"
Como o Publicar do app, ela usa uma unidade da sua cota de Links Premium ($9 USD por ano por link). Sem uma unidade livre, a resposta é 402 pool_exhausted, com os números em details. Aumente a cota na página Faturamento do app (como funciona o faturamento).
POST .../publish-checké um teste sem efeito: mostra o que ainda impede a publicação e quanta cota ela usaria.POST .../unpublishtira o link do ar e libera a unidade dele. O endereço para de funcionar, inclusive nos QR codes impressos, e outra conta pode então ficar com ele.PATCH /v1/links/{id}muda só os campos que você envia. Em um link publicado a mudança vale na hora, então também precisa delinks:publish.
Smart Links, formulários e páginas Multilink seguem os mesmos passos, cada um no próprio caminho. Os Smart Links usam as permissões de links.
Links grátis na API
/v1/free-links cria os links grátis que toda conta pode ter, até 5. Eles funcionam de outro jeito:
- Um link grátis vai ao ar no momento em que é criado, nunca é um rascunho. Por isso criar um precisa de
links:publish, não delinks:write. - O Walink escolhe o endereço aleatório. Você envia um número de telefone ou nome de usuário do WhatsApp, uma mensagem opcional e um
titleprivado opcional, que não pode ser alterado depois. - Ele pode ser listado, lido e excluído, nunca editado. O id dele começa com
fln_, e/v1/linksnunca o mostra. - Editar o link ou ver as análises dele exige fazer upgrade para Premium no app, o que muda o id para
lnk_.
Com 5 links já criados, uma criação responde 409 free_link_limit_reached, e excluir um libera a vaga dele. Saiba mais em links grátis.
Erros e limites de requisições
Todo erro tem o mesmo formato:
{
"error": {
"code": "insufficient_scope",
"message": "This token needs the links:publish scope.",
"param": null,
"doc_url": "https://api.walink.com/docs#description/errors",
"request_id": "req_4f1c9a0b7d2e4c8f9a1b3c5d7e9f0a2b",
"details": { "required": ["links:publish"] }
}
}
| Status | Códigos comuns | Significado |
|---|---|---|
| 401 | invalid_token |
Token ausente, expirado ou revogado |
| 402 | pool_exhausted, past_due_locked, subscription_required |
Cota ou cobrança, resolvidas no app |
| 403 | insufficient_scope |
details.required informa a permissão |
| 404 | not_found |
Também para ids de outras contas |
| 409 | handle_taken, free_link_limit_reached |
O endereço já está em uso, ou um limite foi atingido |
| 422 | validation_failed, handle_immutable |
Requisição inválida. details.fields lista os problemas |
| 429 | rate_limited |
Aguarde Retry-After segundos |
| Requisições | Limite |
|---|---|
| Leituras | 120 por minuto por token |
| Criações, edições, publicações e exclusões | 30 por minuto por conta |
| Análises | 10 por minuto por conta |
| Verificações de endereço | 30 por minuto por conta |
Os limites são aproximados, e ficar sem cota nunca gera um 429. Pela API, uma conta pode ter até 500 rascunhos por produto. Toda resposta traz um cabeçalho Request-Id: informe esse valor quando falar com o suporte.
Referência completa
- Referência da API: todos os endpoints e campos, com um console.
- Documento OpenAPI 3.1 e enums e limites, sem precisar de token.
- llms.txt: as regras da API, para ferramentas de IA.
O mesmo token também conecta assistentes de IA: veja Conectar assistentes de IA.