curl -X GET "https://app.talkover.ai/api/v1/calls/01a0c5a5-390e-710a-a3aa-cab502215d09/insight" \
-H "Authorization: Bearer talq_seu_token_de_ambiente"
const response = await fetch(
'https://app.talkover.ai/api/v1/calls/01a0c5a5-390e-710a-a3aa-cab502215d09/insight',
{ headers: { Authorization: 'Bearer talq_seu_token_de_ambiente' } }
);
const { data } = await response.json();
if (data.analysis_status === 'pending') {
// A análise roda depois que a chamada termina. Consulte de novo mais tarde.
}
{
"success": true,
"data": {
"call_id": "01a0c5a5-390e-710a-a3aa-cab502215d09",
"analysis_status": "completed",
"duration": 64,
"human_detected": true,
"objective_achieved": false,
"call_result": "partial_contact",
"collected_data": {
"intencao": null,
"valor_acordado": null,
"data_acordada": null,
"whatsapp_confirmado": null
},
"campaign_id": "019ea766-4f99-731a-ad31-d99ac48d4812",
"summary": "O agente tentou iniciar uma conversa com Marcos, mas a chamada foi interrompida duas vezes. Marcos confirmou sua identidade; nenhum acordo foi fechado.",
"transcript": [
{
"role": "assistant",
"content": "Oi, falo com o Marcos?",
"timestamp": "2026-09-21T20:25:46.000000Z"
},
{
"role": "user",
"content": "Alô?",
"timestamp": "2026-09-21T20:26:13.000000Z"
},
{
"role": "assistant",
"content": "Olá, Marcos. Aqui é a Ana, da assessoria parceira do seu financiamento.",
"timestamp": "2026-09-21T20:26:13.000000Z"
}
]
}
}
Chamadas e Campanhas
Obter resultado da chamada
Retorna o resultado da conversa de uma chamada: estado da análise, dados coletados, resumo e transcrição
GET
/
api
/
v1
/
calls
/
{call_id}
/
insight
curl -X GET "https://app.talkover.ai/api/v1/calls/01a0c5a5-390e-710a-a3aa-cab502215d09/insight" \
-H "Authorization: Bearer talq_seu_token_de_ambiente"
const response = await fetch(
'https://app.talkover.ai/api/v1/calls/01a0c5a5-390e-710a-a3aa-cab502215d09/insight',
{ headers: { Authorization: 'Bearer talq_seu_token_de_ambiente' } }
);
const { data } = await response.json();
if (data.analysis_status === 'pending') {
// A análise roda depois que a chamada termina. Consulte de novo mais tarde.
}
{
"success": true,
"data": {
"call_id": "01a0c5a5-390e-710a-a3aa-cab502215d09",
"analysis_status": "completed",
"duration": 64,
"human_detected": true,
"objective_achieved": false,
"call_result": "partial_contact",
"collected_data": {
"intencao": null,
"valor_acordado": null,
"data_acordada": null,
"whatsapp_confirmado": null
},
"campaign_id": "019ea766-4f99-731a-ad31-d99ac48d4812",
"summary": "O agente tentou iniciar uma conversa com Marcos, mas a chamada foi interrompida duas vezes. Marcos confirmou sua identidade; nenhum acordo foi fechado.",
"transcript": [
{
"role": "assistant",
"content": "Oi, falo com o Marcos?",
"timestamp": "2026-09-21T20:25:46.000000Z"
},
{
"role": "user",
"content": "Alô?",
"timestamp": "2026-09-21T20:26:13.000000Z"
},
{
"role": "assistant",
"content": "Olá, Marcos. Aqui é a Ana, da assessoria parceira do seu financiamento.",
"timestamp": "2026-09-21T20:26:13.000000Z"
}
]
}
}
Obter resultado da chamada
Retorna o que o agente capturou em uma conversa: se uma pessoa atendeu, o resultado, os dados que o agente foi configurado para coletar, um resumo e a transcrição completa. É a mesma informação que o webhookevent_call_report entrega, disponível por consulta. Use para reconciliar uma chamada sem depender do webhook, ou para ler o resumo e a transcrição, que não entram em Listar chamadas por causa do tamanho.
Endpoint
GET /api/v1/calls/{call_id}/insight
Parâmetros de path
string
obrigatório
O
id da chamada, como devolvido por Listar chamadas ou Fazer chamada.Cabeçalhos da requisição
string
obrigatório
Token Bearer. Formato:
Bearer talq_seu_token_de_ambienteExemplo de requisição
curl -X GET "https://app.talkover.ai/api/v1/calls/01a0c5a5-390e-710a-a3aa-cab502215d09/insight" \
-H "Authorization: Bearer talq_seu_token_de_ambiente"
const response = await fetch(
'https://app.talkover.ai/api/v1/calls/01a0c5a5-390e-710a-a3aa-cab502215d09/insight',
{ headers: { Authorization: 'Bearer talq_seu_token_de_ambiente' } }
);
const { data } = await response.json();
if (data.analysis_status === 'pending') {
// A análise roda depois que a chamada termina. Consulte de novo mais tarde.
}
Resposta
Resposta de sucesso (200 OK)
{
"success": true,
"data": {
"call_id": "01a0c5a5-390e-710a-a3aa-cab502215d09",
"analysis_status": "completed",
"duration": 64,
"human_detected": true,
"objective_achieved": false,
"call_result": "partial_contact",
"collected_data": {
"intencao": null,
"valor_acordado": null,
"data_acordada": null,
"whatsapp_confirmado": null
},
"campaign_id": "019ea766-4f99-731a-ad31-d99ac48d4812",
"summary": "O agente tentou iniciar uma conversa com Marcos, mas a chamada foi interrompida duas vezes. Marcos confirmou sua identidade; nenhum acordo foi fechado.",
"transcript": [
{
"role": "assistant",
"content": "Oi, falo com o Marcos?",
"timestamp": "2026-09-21T20:25:46.000000Z"
},
{
"role": "user",
"content": "Alô?",
"timestamp": "2026-09-21T20:26:13.000000Z"
},
{
"role": "assistant",
"content": "Olá, Marcos. Aqui é a Ana, da assessoria parceira do seu financiamento.",
"timestamp": "2026-09-21T20:26:13.000000Z"
}
]
}
}
Campos da resposta
boolean
obrigatório
Se a requisição foi bem-sucedida.
object
obrigatório
Mostrar Objeto de resultado
Mostrar Objeto de resultado
string
obrigatório
O
id da chamada.string
obrigatório
Estado da análise pós-chamada. Opções:
completed, pending, unavailable. Veja Como ler analysis_status.integer | null
obrigatório
Duração da chamada em segundos. Vem da chamada, não da análise, então aparece em qualquer estado.
null quando não houve tempo de conversa medido (veja as notas).boolean | null
obrigatório
Uma pessoa atendeu a chamada.
boolean | null
obrigatório
O objetivo configurado no agente foi atingido.
string | null
obrigatório
Opções:
success, partial_contact, unsuccessful.object | null
obrigatório
Os campos que o agente está configurado para coletar (“fields to collect”), com os valores extraídos da conversa. As chaves são as definidas no seu agente.
{} quando nada foi coletado.string | null
obrigatório
Campanha que originou a discagem.
null em chamada fora de campanha. Cada retentativa é uma chamada própria, e todas apontam para a mesma campanha.string | null
obrigatório
Resumo da conversa produzido pela análise.
array
obrigatório
Falas da conversa em ordem cronológica. Vazia quando não houve conversa. Pode já vir preenchida com
analysis_status em pending: a transcrição é gravada antes de a análise rodar.human_detected, objective_achieved, call_result, collected_data e summary são null sempre que analysis_status não for completed. Um false nesses campos é resultado real da análise, nunca ausência dela.
Como ler analysis_status
A análise roda depois que a chamada termina, normalmente em menos de um minuto. Uma chamada consultada logo após o fim ainda não tem resultado.
| Valor | Significado | O que fazer |
|---|---|---|
completed | A análise terminou. Os campos são confiáveis. | Usar. |
pending | A chamada ainda está em curso, ou terminou há menos de 30 minutos e a análise ainda pode chegar. | Consultar de novo mais tarde. Não é resultado. |
unavailable | Não há análise e não haverá: ninguém atendeu (no-answer, busy, failed, canceled), a conversa foi vazia, ou a análise não foi concluída dentro da janela. | Tratar como “sem resultado”. |
unavailable para completed. Quando vir unavailable, pare de consultar.
Chamadas voicemail seguem o fluxo normal (pending, depois completed ou unavailable), porque o agente pode ter falado antes de a caixa postal ser detectada.
Respostas de erro
404 Não encontrado
A chamada não existe ou pertence a outro ambiente.{
"success": false,
"message": "Not found",
"error": "Not found"
}
401 Não autorizado
{
"message": "Unauthenticated."
}
Notas
duration: null em chamadas voicemail, no-answer, failed e busy significa que não houve tempo de conversa medido. Não é zero.Reconciliação em lote. Para reconciliar um dia, use Listar chamadas com
include=insight, pelo menos 30 minutos depois do fim da última chamada. O pending desaparece e você faz uma requisição por página em vez de uma por chamada.Fora de propósito. O SID do provedor, flags internos de roteamento e os demais campos da análise (sentimento, objeções, conclusão do script) não fazem parte desta resposta.
Endpoints relacionados
- Listar chamadas:
GET /api/v1/calls?include=insight— o mesmo bloco, semsummaryetranscript, para uma página inteira de chamadas. - Obter chamadas do agente:
GET /api/v1/agents/{agent_id}/calls?include=insight - Obter URL da gravação:
GET /api/v1/calls/{call_id}/recording-url
Esta página foi útil?