Pular para o conteúdo principal
POST
/
api
/
v1
/
agents
/
{agent_id}
/
call
curl -X POST "https://app.talkover.ai/api/v1/agents/agent_123456/call" \
  -H "Authorization: Bearer talq_your_environment_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "payload": {
      "customer_name": "John Doe",
      "account_id": "ACC123"
    },
    "context": {
      "user_id": "user_123",
      "source": "web_app"
    },
    "delay_seconds": 0,
    "is_testing": false
  }'
{
  "success": true,
  "data": {
    "id": "call_789012",
    "agent_id": "agent_123456",
    "to": "+1234567890",
    "status": "initiated",
    "created_at": "2024-01-15T10:30:00Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.talkover.ai/llms.txt

Use this file to discover all available pages before exploring further.

Realizar uma Chamada

Inicia uma chamada com IA usando um agente de voz específico. Este endpoint cria uma nova chamada e retorna os detalhes da chamada, incluindo um ID de chamada único. Para chamadas baseadas em campanha, veja Realizar Chamada de Campanha.

Endpoint

POST /api/v1/agents/{agent_id}/call

Parâmetros de Caminho

agent_id
string
obrigatório
O identificador único do agente de voz que tratará a chamada. Você pode encontrá-lo em seu painel, na seção Agentes de Voz.

Cabeçalhos da Requisição

Authorization
string
obrigatório
Token Bearer para autenticação. Formato: Bearer talq_your_environment_token_here
Content-Type
string
obrigatório
Deve ser definido como application/json

Corpo da Requisição

to
string
obrigatório
Número de telefone para chamar. Deve estar em formato internacional (ex: +1234567890).
payload
object
Variáveis de substituição para o prompt do agente. Use isto para personalizar a conversa com dados dinâmicos. As chaves devem corresponder a placeholders no prompt do seu agente.
context
object
Dados customizados a serem enviados de volta ao seu cliente via webhooks. Estes dados não são usados na conversa, mas serão incluídos em todos os eventos de webhook relacionados a esta chamada, permitindo que você acompanhe e associe chamadas aos seus registros internos.
delay_seconds
integer
padrão:"0"
Número de segundos para atrasar antes de realizar a chamada. Faixa: 03600 (1 hora). Útil para agendar uma chamada alguns segundos ou minutos após um evento gatilho.
is_testing
boolean
padrão:"false"
Quando true, a chamada é marcada como um teste. Chamadas de teste não consomem créditos de cobrança e são excluídas das agregações de analytics.

Exemplos

curl -X POST "https://app.talkover.ai/api/v1/agents/agent_123456/call" \
  -H "Authorization: Bearer talq_your_environment_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "payload": {
      "customer_name": "John Doe",
      "account_id": "ACC123"
    },
    "context": {
      "user_id": "user_123",
      "source": "web_app"
    },
    "delay_seconds": 0,
    "is_testing": false
  }'

Resposta

Resposta de Sucesso (200 OK)

{
  "success": true,
  "data": {
    "id": "call_789012",
    "agent_id": "agent_123456",
    "to": "+1234567890",
    "status": "initiated",
    "created_at": "2024-01-15T10:30:00Z"
  }
}

Campos da Resposta

success
boolean
obrigatório
Indica se a requisição foi processada com sucesso.
data.id
string
obrigatório
Identificador único da chamada. Use este ID para acompanhar o status da chamada, recuperar detalhes ou correlacionar com eventos de webhook.
data.agent_id
string
O ID do agente de voz que está tratando a chamada.
data.to
string
obrigatório
O número de telefone que foi chamado.
data.status
string
obrigatório
Status atual da chamada. Valores possíveis:
  • initiated - Chamada foi criada e está sendo processada
  • ringing - Telefone está tocando
  • answered - Chamada está ativa e a conversa está acontecendo
  • completed - Chamada finalizou com sucesso
  • failed - Chamada falhou
  • busy - Telefone estava ocupado
  • no-answer - Telefone tocou mas não foi atendido
data.created_at
string
obrigatório
Timestamp ISO 8601 quando a chamada foi criada.

Respostas de Erro

400 Requisição Inválida

{
  "error": {
    "code": "INVALID_PHONE_NUMBER",
    "message": "Phone number must be in international format (e.g., +1234567890)",
    "details": {
      "field": "to",
      "value": "1234567890"
    }
  }
}

401 Não Autorizado

{
  "error": {
    "code": "INVALID_TOKEN",
    "message": "Invalid or missing authentication token"
  }
}

404 Não Encontrado

{
  "error": {
    "code": "AGENT_NOT_FOUND",
    "message": "Voice agent not found",
    "details": {
      "agent_id": "agent_999999"
    }
  }
}

402 Pagamento Necessário

{
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Account has insufficient credits to place this call"
  }
}

429 Muitas Requisições

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please wait before making more requests.",
    "details": {
      "retry_after": 60
    }
  }
}

Códigos de Erro

CódigoDescriçãoStatus HTTP
INVALID_PHONE_NUMBERFormato do número de telefone é inválido400
MISSING_PHONE_NUMBERNúmero de telefone é obrigatório400
INVALID_TOKENToken de autenticação inválido ou ausente401
AGENT_NOT_FOUNDAgente especificado não existe404
AGENT_INACTIVEAgente não está publicado400
INSUFFICIENT_CREDITSConta com créditos insuficientes402
RATE_LIMIT_EXCEEDEDMuitas requisições em pouco tempo429

Limites de Taxa

Cabeçalhos de limite de taxa são incluídos em todas as respostas:
  • X-RateLimit-Limit: Máximo de requisições por janela
  • X-RateLimit-Remaining: Requisições restantes na janela atual
  • X-RateLimit-Reset: Hora em que o limite de taxa é redefinido

Melhores Práticas

  1. Sempre trate erros graciosamente — verifique respostas de erro e implemente lógica de retry com backoff exponencial.
  2. Armazene IDs de chamada — use o data.id retornado para acompanhar o status da chamada e correlacionar com eventos de webhook.
  3. Use context para rastreamento — passe IDs internos em context para que eventos de webhook possam ser vinculados aos registros do seu sistema.
  4. Use is_testing durante a integração — mantém o tráfego de teste fora dos analytics e evita cobrança.
  5. Valide números de telefone antes de chamar — garanta o formato E.164 (+ seguido de código do país e número).

Endpoints Relacionados