API para desenvolvedores da Wave
Crie um token com permissões específicas e leia ou atualize suas sessões, transcrições e itens de ação da Wave a partir do seu próprio código — com busca, exportação em massa e webhooks.
A API para desenvolvedores da Wave é uma REST API sobre as suas próprias gravações. Aponte seu código para https://api.wave.co/v1 com um token que você cria na Wave, e você pode listar sessões, ler resumos e transcrições, buscar por significado, baixar áudio, atualizar títulos e itens de ação, e receber um webhook no momento em que uma gravação termina de ser processada.
É gratuita em todos os planos da Wave, e só acessa a sua própria conta.
Crie um token
No app web da Wave em app.wave.co, abra seu perfil, escolha a aba Integrations ("Integrações") e abra Developer API ("API para desenvolvedores") — ou vá direto para app.wave.co/settings/integrations/api.
Em API Tokens, clique em Create Token ("Criar token").
Dê um Token Name ("Nome do token") que você reconheça depois, marque as Permissions ("Permissões") necessárias e clique em Create Token. Um token por integração é bem mais fácil de gerenciar do que um token compartilhado.
Copie o token. A Wave mostra ele uma única vez: Copy this token now. You will not be able to see it again. ("Copie este token agora. Você não conseguirá vê-lo novamente.")
Envie-o como um bearer token em cada requisição:
curl -H "Authorization: Bearer wave_api_xxx..." \
https://api.wave.co/v1/sessionsA lista de tokens mostra o nome de cada um, seu prefixo wave_api_, quando foi criado e quando foi usado pela última vez. O ícone de lixeira abre Revoke Token ("Revogar token") — a revogação tem efeito imediato, e qualquer coisa usando aquele token passa a receber um 401.
Os tokens de API expiram um ano após serem criados, e a data de expiração não aparece na lista de tokens. Se uma integração que funcionava bem há meses de repente passa a retornar 401 invalid_token, crie um token novo.
Permissões
As permissões são por token. Conceda o mínimo necessário para o trabalho.
| Permissão | O que permite |
|---|---|
| Read Sessions | Listar e abrir sessões, estatísticas, pastas, exportação em massa |
| Search Sessions | Busca semântica em toda a sua biblioteca |
| Read Transcripts | Transcrições completas com segmentos por interlocutor |
| Access Media | URLs assinadas para download de áudio e vídeo |
| Write Sessions & Action Items | Atualizar título, notas, tags, favorito, itens de ação |
| Delete Sessions | Excluir uma sessão permanentemente |
| Manage Folders | Criar pastas, adicionar e remover sessões |
| Manage Webhooks | Registrar e gerenciar endpoints de webhook |
| Read Event Feed | Buscar e confirmar o feed de eventos |
| Read Account | Informações da conta e status da assinatura |
Ao chamar um endpoint sem a permissão correspondente, você recebe um 403 indicando o que está faltando.
Lendo seus dados
GET /v1/sessions— mais recentes primeiro, paginado por cursor, filtrável portype,since,folderetag. Só retorna sessões que terminaram de processar.GET /v1/sessions/:id— título, duração, resumo em markdown, notas, tags, favorito. Chamadas telefônicas também trazem direção e números.GET /v1/sessions/:id/transcript— uma string de transcrição corrida, além de segmentos com marcação de tempo e interlocutor.GET /v1/sessions/:id/action-items— itens de ação estruturados e um número de versão.GET /v1/sessions/:id/media— URLs assinadas de áudio e vídeo, válidas por uma hora.POST /v1/sessions/search— busca semântica, até 50 resultados, com filtros de tag opcionais.POST /v1/sessions/bulk— até 50 sessões em uma única chamada, com resumos e transcrições. O jeito mais rápido de preencher retroativamente.GET /v1/folders,GET /v1/sessions/stats— pastas e totais por tipo e plataforma.
Escrevendo de volta
PATCH /v1/sessions/:id define título, notas, tags, favorito e itens de ação. Para itens de ação, leia-os primeiro e envie de volta a versão recebida — assim, uma edição simultânea no app da Wave é rejeitada em vez de ser sobrescrita silenciosamente. POST /v1/folders e os endpoints de participação em pastas organizam sessões; as pastas não são exclusivas, então uma sessão pode estar em várias.
DELETE /v1/sessions/:id é permanente e não é a mesma coisa que excluir pelo app. Trate como irreversível.
Limites de requisição
Cada token tem direito a 60 requisições por minuto e 10.000 requisições por dia. As respostas trazem X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset, e um 429 inclui Retry-After — espere em vez de tentar novamente na hora.
Repetir a mesma consulta de busca mais de dez vezes por hora também retorna um 429. Buscas idênticas retornam resultados idênticos, então use webhooks ou GET /v1/sessions?since= para descobrir o que há de novo.
Webhooks
Em vez de fazer polling, deixe a Wave enviar um POST para você. Na seção Webhooks, clique em Add Webhook ("Adicionar webhook"), informe uma Endpoint URL ("URL do endpoint") (somente HTTPS, e URLs que resolvem para endereços privados são rejeitadas), escolha seus eventos e clique em Create Webhook. O Signing Secret ("Segredo de assinatura") é mostrado uma única vez — guarde-o nesse momento. Você pode ter até cinco webhooks.
Três eventos estão disponíveis hoje: Session Completed ("Sessão concluída") (disparado uma vez, depois que o processamento termina e o resumo pode ser consultado — o que a maioria das integrações quer), Session Updated ("Sessão atualizada") e Session Deleted ("Sessão excluída").
Cada entrega é assinada com seu segredo e chega com os cabeçalhos X-Wave-Webhook-Id, X-Wave-Webhook-Timestamp e X-Wave-Webhook-Signature. Verifique a assinatura antes de confiar em um payload; a string exata a assinar está na referência da API.
A Wave não garante apenas uma entrega por evento. Uma entrega que expira (10 segundos) ou retorna um status fora da faixa 2xx é reenviada até três vezes, com um intervalo curto — cerca de 10 segundos, depois um minuto, depois cinco minutos — e o mesmo evento pode legitimamente chegar mais de uma vez. Torne seu handler idempotente: use X-Wave-Webhook-Id como chave, ignore um id já processado e retorne um 2xx rapidamente. Um endpoint que ficar fora do ar por mais tempo que essa janela perde os eventos que não recebeu; use o feed de eventos abaixo para se atualizar.
Se um endpoint falhar dez vezes seguidas, a Wave o marca como Auto-disabled ("Desativado automaticamente") e para de enviar. Corrija o endpoint e depois use o botão de reativar na linha do webhook.
Sem servidor? Use o feed de eventos
Se você não pode hospedar uma URL pública, faça polling. GET /v1/events retorna eventos a partir de um cursor que a Wave controla por token, e POST /v1/events/ack avança esse cursor depois que você processa os eventos, então reiniciar um script não reproduz tudo de novo. As páginas trazem 50 itens por padrão, com um limite de 200, e o feed também traz mudanças em itens de ação que as inscrições de webhook não trazem. Requer a permissão Read Event Feed.
O Wave CLI encapsula isso no comando wave events tail, caso você prefira não escrever o loop de polling.
Perguntas frequentes
api.wave.co/reference tem todos os endpoints, parâmetros e formatos de resposta, com exemplos ao vivo. api.wave.co/llms.txt traz o mesmo material em texto puro — cole em um assistente de IA e peça para ele escrever a integração para você.
Sempre em JSON, com um code e uma message. Os mais comuns: 401 invalid_token (expirado, revogado ou digitado errado), 403 insufficient_scope (o token não tem uma permissão) e 429 (limite de requisições excedido).
Não. Um token está vinculado à conta que o criou e só retorna as sessões dessa conta.
Este artigo foi útil?
Ainda precisa de ajuda?
O Wave Agents Toolkit: conecta os teus dados a qualquer outra ferramenta
Três formas de levar as tuas gravações do Wave para outras ferramentas — MCP para assistentes de IA, uma API REST para o teu próprio código e uma CLI para o terminal.
Wave CLI
Instale o comando wave, faça login pelo navegador e liste, pesquise, exporte e organize suas gravações a partir do terminal.