API

Peça a ligação. Receba o desfecho.

Pedir ligações e mensagens, consultar atendimentos e contatos, com chave e escopos por empresa. Webhooks assinados de volta, e um servidor MCP para o seu próprio agente operar a plataforma.

Bearerchave com escopos
HMACassinatura de saída
MCPservidor incluso
Eventos saindo para o seu sistemaatendimento 254f1b8d
mensagem.recebidachega no WhatsApp, no site ou no e-mailaguardando
ligacao.encerradao áudio e a transcrição sobemaguardando
atendimento.resumidodesfecho, o que foi combinado e os dadosaguardando
HMAC-SHA2563 tentativas, backoff 2 s / 4 s
Primeiros passos

Começar em três chamadas

Autenticar, pedir uma ligação, receber o resultado. O resto é detalhe do seu fluxo.

curl -X POST https://api.voicespeak.app/v1/ligacoes \
  -H "Authorization: Bearer sk_empresa_..." \
  -H "Content-Type: application/json" \
  -d '{
    "agente": "isabella",
    "telefone": "+5511999990000",
    "linha": "voip",
    "missao": "cobranca-amigavel",
    "contexto": {
      "fatura": "2026-08",
      "valor_brl": 240.00
    }
  }'
curl -X POST https://api.voicespeak.app/v1/mensagens \
  -H "Authorization: Bearer sk_empresa_..." \
  -H "Content-Type: application/json" \
  -d '{
    "agente": "isabella",
    "canal": "whatsapp",
    "para": "+5511999990000",
    "modelo": "retorno_combinado",
    "variaveis": { "hora": "14h" }
  }'
curl https://api.voicespeak.app/v1/atendimentos/254f1b8d \
  -H "Authorization: Bearer sk_empresa_..."

{
  "atendimento": "254f1b8d",
  "canal": "telefone",
  "desfecho": "retorno_combinado",
  "combinado": "Ligar amanha as 14h",
  "transcricao": "https://.../transcricao.txt",
  "gravacao": "https://.../audio.mp3",
  "custo_brl": 0.84
}
1
Chave por empresa

Com escopos. Uma chave não alcança dados de outra empresa da conta.

3
Tentativas por webhook

Com espera crescente, e o evento continua legível pela API depois.

1
Servidor MCP incluso

Para o agente de IA do próprio cliente operar a plataforma.

0
SDK obrigatório

É HTTP com JSON. Use o cliente que o seu stack já tem.

Referência curta

Os endereços que importam

A referência completa é servida pela própria plataforma, junto do seu ambiente.

EndereçoO que fazEscopo
POST /v1/ligacoesPede uma ligação, com missão e contextoligacoes:escrever
POST /v1/mensagensEnvia mensagem por WhatsApp, site ou e-mailmensagens:escrever
GET /v1/atendimentosLista atendimentos, com filtro por canal e desfechoatendimentos:ler
GET /v1/atendimentos/{id}Traz o dossiê: resumo, combinado e dados coletadosatendimentos:ler
GET /v1/contatosConsulta contatos e o histórico por pessoacontatos:ler
POST /v1/campanhasCria campanha a partir de uma lista de contatoscampanhas:escrever
POST /v1/webhooksCadastra o endereço que recebe os eventoswebhooks:escrever
GET /v1/usoConsumo do período e limites do planouso:ler
Respostas

Erros, e o que fazer com cada um

O código diz o que aconteceu. O corpo diz o que fazer.

CódigoErroO que fazer
401CHAVE_INVALIDAA chave não existe ou foi revogada. Gere outra no painel
403ESCOPO_AUSENTEA chave é válida mas não tem o escopo daquele endereço
403FORA_DA_JANELAWhatsApp oficial fora das 24 h. Use um modelo aprovado
409NAO_PERTURBEO contato está na lista de quem não quer ser chamado
409FORA_DO_HORARIOA janela de discagem da empresa está fechada agora
422PRECO_NAO_APROVADOO item do catálogo ainda não foi aprovado por uma pessoa
429LIMITE_SIMULTANEASO plano chegou ao teto de ligações ao mesmo tempo

Os erros com nome de trava (NAO_PERTURBE, PRECO_NAO_APROVADO) são o mesmo controle que vale no painel. Ver Travas e auditoria.

Servidor MCP

O seu agente operando a plataforma

Para quem já tem um assistente interno e não quer escrever um cliente HTTP para ele.

{
  "mcpServers": {
    "voicespeak": {
      "url": "https://api.voicespeak.app/mcp",
      "headers": {
        "Authorization": "Bearer sk_empresa_..."
      }
    }
  }
}

As ferramentas expostas seguem os mesmos escopos da chave: o agente do cliente não alcança nada que a chave não alcance.

Perguntas frequentes

Como funciona a autenticação?
Chave por empresa, no cabeçalho Authorization: Bearer, com escopos. Uma chave de uma empresa não alcança dados de outra empresa da mesma conta, e isso é conferido no servidor, não na aplicação que chama.
A documentação fica onde?
É servida pela própria plataforma, junto do seu ambiente, então o que você lê corresponde à versão que está respondendo as suas chamadas.
O que é o servidor MCP?
Um servidor que expõe a plataforma como ferramenta para agentes de IA do próprio cliente. Se você já tem um assistente interno, ele consegue consultar atendimentos e pedir ligações sem você escrever um cliente HTTP.
Dá para pedir uma ligação com contexto?
É o caso de uso principal. O pedido leva o contexto da conversa anterior, e o agente liga já sabendo do que se trata, em vez de começar perguntando o que o cliente já respondeu.
Como trato um webhook que falhou?
Há três tentativas com espera crescente. O evento também pode ser lido depois pela API, então uma queda do seu endereço não perde informação.
Existe limite de chamadas?
Sim, por plano, junto com o limite de ligações ao mesmo tempo. O consumo fica visível em GET /v1/uso.

Teste a API com o seu ambiente

Na demonstração a gente gera uma chave de teste, aponta um webhook para o seu endereço e faz a primeira ligação pela API, com você olhando.

Precisa de escopos específicos ou contrato? Fale com o time.