Skip to content

Widget Público

Endpoints públicos para o fluxo de entrada do cliente na chamada de vídeo. Estes endpoints não requerem autenticação JWT, sendo acessados pelo cliente final.

Rate Limiting

Endpoints públicos estão limitados a 30 requisições por minuto por IP.

Endpoints

MétodoEndpointDescrição
GET/api/v1/call/:token/validateValidar link de acesso
POST/api/v1/call/:token/joinEntrar na fila de atendimento
GET/api/v1/call/status/:call_idVerificar status da chamada
POST/api/v1/call/evaluate/:call_idAvaliar a chamada
GET/api/v1/call/turn-credentialsObter credenciais TURN

Verifica se um link de acesso é válido e retorna informações do departamento.

GET /api/v1/call/:token/validate

Path Parameters

ParâmetroTipoDescrição
tokenstringToken do link de acesso

Exemplo de Request

bash
curl -X GET https://voki.avanter.com.br/api/v1/call/abc123def456/validate

Resposta de Sucesso (200)

json
{
  "data": {
    "valid": true,
    "department_name": "Suporte Técnico",
    "company_name": "Avanter Aliado Tecnológico Ltda",
    "company_logo_url": null,
    "primary_color": "#6366f1",
    "queue_size": 2,
    "estimated_wait_time": 30,
    "online_agents": 3
  }
}
json
{
  "errors": {
    "detail": "Link de acesso inválido ou expirado"
  }
}

Entrar na Fila

Cliente entra na fila de atendimento do departamento.

POST /api/v1/call/:token/join

Request Body

CampoTipoObrigatórioDescrição
namestringSimNome do cliente
emailstringNãoEmail do cliente
phonestringNãoTelefone do cliente
reasonstringNãoMotivo da chamada

Exemplo de Request

bash
curl -X POST https://voki.avanter.com.br/api/v1/call/abc123def456/join \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Carlos Ferreira",
    "email": "carlos@email.com",
    "reason": "Suporte com configuração"
  }'

Resposta de Sucesso (200)

json
{
  "data": {
    "call_id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
    "status": "queued",
    "position": 3,
    "estimated_wait_time": 45,
    "websocket_token": "temp_ws_token_for_customer...",
    "websocket_url": "wss://voki.avanter.com.br/socket/websocket"
  }
}

Fluxo do Cliente

Após entrar na fila, o cliente deve conectar via WebSocket usando o websocket_token para receber atualizações em tempo real sobre a posição na fila e quando a chamada for iniciada.


Status da Chamada

Verifica o status atual de uma chamada (polling alternativo ao WebSocket).

GET /api/v1/call/status/:call_id

Exemplo de Request

bash
curl -X GET https://voki.avanter.com.br/api/v1/call/status/1a2b3c4d-5e6f-7890-abcd-ef1234567890

Resposta de Sucesso (200)

json
{
  "data": {
    "call_id": "1a2b3c4d-5e6f-7890-abcd-ef1234567890",
    "status": "queued",
    "position": 2,
    "estimated_wait_time": 30
  }
}

Avaliar Chamada

Permite ao cliente avaliar a chamada após sua conclusão.

POST /api/v1/call/evaluate/:call_id

Request Body

CampoTipoObrigatórioDescrição
ratingintegerSimNota de 1 a 5
commentstringNãoComentário opcional

Exemplo de Request

bash
curl -X POST https://voki.avanter.com.br/api/v1/call/evaluate/1a2b3c4d-5e6f-7890-abcd-ef1234567890 \
  -H "Content-Type: application/json" \
  -d '{
    "rating": 5,
    "comment": "Atendimento excelente! Problema resolvido rapidamente."
  }'

Resposta de Sucesso (200)

json
{
  "data": {
    "message": "Avaliação registrada com sucesso"
  }
}

Credenciais TURN (público)

Obtém credenciais TURN para o cliente estabelecer conexão WebRTC.

GET /api/v1/call/turn-credentials

Exemplo de Request

bash
curl -X GET https://voki.avanter.com.br/api/v1/call/turn-credentials

Resposta de Sucesso (200)

json
{
  "data": {
    "urls": [
      "turn:voki.avanter.com.br:3478?transport=udp",
      "turn:voki.avanter.com.br:3478?transport=tcp"
    ],
    "username": "1708300800:anonymous",
    "credential": "abcdef1234567890",
    "ttl": 86400
  }
}

Documentação da API Voki v4.0