Pular para conteúdo

Obter Status de uma Chamada

O endpoint GET /api/calls/{id}/status retorna o status detalhado de uma chamada, incluindo a lista de participantes ativos e os minutos faturáveis acumulados. É a fonte de verdade recomendada para conciliar o estado de uma chamada — webhooks avisam que algo mudou; este endpoint diz o estado atual.

Requisição

GET /api/calls/{id}/status

Cabeçalhos:

Cabeçalho Obrigatório Descrição
Authorization Sim Bearer SUA_API_KEY

Parâmetros de caminho:

Parâmetro Tipo Obrigatório Descrição
id string (UUID) Sim Identificador da chamada

Exemplos

cURL

curl -X GET "https://api.videochamada.com.br/api/calls/9f3b2a1c-7d4e-4c8a-b5f6-2e1d0c9b8a7f/status" \
  -H "Authorization: Bearer SUA_API_KEY"

Python (requests)

import requests

call_id = "9f3b2a1c-7d4e-4c8a-b5f6-2e1d0c9b8a7f"
response = requests.get(
    f"https://api.videochamada.com.br/api/calls/{call_id}/status",
    headers={"Authorization": "Bearer SUA_API_KEY"},
)
print(response.json())

Node.js (axios)

const axios = require('axios');

const callId = '9f3b2a1c-7d4e-4c8a-b5f6-2e1d0c9b8a7f';
const response = await axios.get(
  `https://api.videochamada.com.br/api/calls/${callId}/status`,
  { headers: { Authorization: 'Bearer SUA_API_KEY' } },
);
console.log(response.data);

Resposta

Chamada em andamento:

{
  "callId": "9f3b2a1c-7d4e-4c8a-b5f6-2e1d0c9b8a7f",
  "status": "active",
  "started": "2026-08-30T10:05:00.000Z",
  "ended": null,
  "durationMinutes": 0,
  "activeParticipants": 2,
  "participants": [
    {
      "sessionId": "d1e2f3a4-b5c6-4d7e-8f9a-0b1c2d3e4f5a",
      "username": "João Silva",
      "joinedAt": "2026-08-30T10:05:02.000Z",
      "active": true
    },
    {
      "sessionId": "a9b8c7d6-e5f4-4a3b-2c1d-0e9f8a7b6c5d",
      "username": "Maria Santos",
      "joinedAt": "2026-08-30T10:06:15.000Z",
      "active": true
    }
  ],
  "totalBillableMinutes": "15.50"
}

Chamada encerrada:

{
  "callId": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
  "status": "ended",
  "started": "2026-08-30T09:02:00.000Z",
  "ended": "2026-08-30T09:45:00.000Z",
  "durationMinutes": 43,
  "activeParticipants": 0,
  "participants": [],
  "totalBillableMinutes": "86.00"
}

Campos:

Campo Descrição
callId Identificador único da chamada
status created (criada, ninguém entrou), active (em andamento) ou ended (encerrada)
started Data e hora de início da chamada (quando o primeiro participante entrou)
ended Data e hora de encerramento (null enquanto a chamada não termina)
durationMinutes Duração da chamada em minutos, calculada entre o início e o fim. Enquanto a chamada está em andamento, o valor é 0 — a duração só é conhecida após o encerramento
activeParticipants Número de participantes conectados neste momento
participants Lista dos participantes ativos no momento
participants[].sessionId ID único da sessão do participante
participants[].username Nome do participante
participants[].joinedAt Data e hora em que o participante entrou
participants[].active Sempre true nesta lista (apenas ativos são retornados)
totalBillableMinutes Total de minutos faturáveis acumulados, como string decimal (ex.: "15.50")

Erros

Status Mensagem Quando ocorre
401 Invalid API key Chave inválida ou revogada, ou IP fora da lista de IPs permitidos da chave
401 Call does not belong to this project A chamada existe, mas pertence a outro projeto
404 Call not found Não existe chamada com esse id

Boas práticas

  • Conciliação: use este endpoint como fonte de verdade para reconciliar o estado das chamadas no seu sistema. Webhooks são ideais para reagir a mudanças em tempo real, mas, em caso de dúvida ou divergência, o status retornado aqui é o que vale.
  • Polling: se precisar consultar periodicamente, respeite intervalos de pelo menos 5 segundos entre requisições.
  • Monitoramento: combine com GET /api/calls/{id}/participants para ver também o histórico de quem já saiu da chamada.