Skip to content

Widget Público

Endpoints públicos para el flujo de entrada del cliente en la videollamada. Estos endpoints no requieren autenticación JWT, siendo accedidos por el cliente final.

Rate Limiting

Los endpoints públicos están limitados a 30 solicitudes por minuto por IP.

Endpoints

MétodoEndpointDescripción
GET/api/v1/call/:token/validateValidar enlace de acceso
POST/api/v1/call/:token/joinIngresar a la cola de atención
GET/api/v1/call/status/:call_idVerificar estado de la llamada
POST/api/v1/call/evaluate/:call_idEvaluar la llamada
GET/api/v1/call/turn-credentialsObtener credenciales TURN

Validar Enlace de Acceso

Verifica si un enlace de acceso es válido y devuelve información del departamento.

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

Path Parameters

ParámetroTipoDescripción
tokenstringToken del enlace de acceso

Ejemplo de Request

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

Respuesta Exitosa (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
  }
}

Enlace Inválido/Expirado (404)

json
{
  "errors": {
    "detail": "Link de acesso inválido ou expirado"
  }
}

Ingresar a la Cola

El cliente ingresa a la cola de atención del departamento.

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

Request Body

CampoTipoObligatorioDescripción
namestringNombre del cliente
emailstringNoEmail del cliente
phonestringNoTeléfono del cliente
reasonstringNoMotivo de la llamada

Ejemplo 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"
  }'

Respuesta Exitosa (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"
  }
}

Flujo del Cliente

Después de ingresar a la cola, el cliente debe conectarse vía WebSocket usando el websocket_token para recibir actualizaciones en tiempo real sobre la posición en la cola y cuando la llamada sea iniciada.


Estado de la Llamada

Verifica el estado actual de una llamada (polling alternativo al WebSocket).

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

Ejemplo de Request

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

Respuesta Exitosa (200)

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

Evaluar Llamada

Permite al cliente evaluar la llamada después de su finalización.

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

Request Body

CampoTipoObligatorioDescripción
ratingintegerCalificación de 1 a 5
commentstringNoComentario opcional

Ejemplo 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."
  }'

Respuesta Exitosa (200)

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

Credenciales TURN (público)

Obtiene credenciales TURN para que el cliente establezca conexión WebRTC.

GET /api/v1/call/turn-credentials

Ejemplo de Request

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

Respuesta Exitosa (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