Skip to content

Widget Public

Endpoints publics pour le flux d'entrée du client dans l'appel vidéo. Ces endpoints ne nécessitent pas d'authentification JWT et sont accessibles par le client final.

Rate Limiting

Les endpoints publics sont limités à 30 requêtes par minute par IP.

Endpoints

MéthodeEndpointDescription
GET/api/v1/call/:token/validateValider un lien d'accès
POST/api/v1/call/:token/joinRejoindre la file d'attente
GET/api/v1/call/status/:call_idVérifier le statut de l'appel
POST/api/v1/call/evaluate/:call_idÉvaluer l'appel
GET/api/v1/call/turn-credentialsObtenir les identifiants TURN

Valider un Lien d'Accès

Vérifie si un lien d'accès est valide et retourne les informations du département.

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

Path Parameters

ParamètreTypeDescription
tokenstringToken du lien d'accès

Exemple de Requête

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

Réponse de Succès (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
  }
}

Lien Invalide/Expiré (404)

json
{
  "errors": {
    "detail": "Lien d'accès invalide ou expiré"
  }
}

Rejoindre la File d'Attente

Le client rejoint la file d'attente du département.

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

Request Body

ChampTypeObligatoireDescription
namestringOuiNom du client
emailstringNonEmail du client
phonestringNonTéléphone du client
reasonstringNonMotif de l'appel

Exemple de Requête

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": "Support pour la configuration"
  }'

Réponse de Succès (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"
  }
}

Flux du Client

Après avoir rejoint la file d'attente, le client doit se connecter via WebSocket en utilisant le websocket_token pour recevoir des mises à jour en temps réel sur sa position dans la file et le moment où l'appel sera initié.


Statut de l'Appel

Vérifie le statut actuel d'un appel (alternative par polling au WebSocket).

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

Exemple de Requête

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

Réponse de Succès (200)

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

Évaluer l'Appel

Permet au client d'évaluer l'appel après sa conclusion.

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

Request Body

ChampTypeObligatoireDescription
ratingintegerOuiNote de 1 à 5
commentstringNonCommentaire optionnel

Exemple de Requête

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": "Service excellent ! Problème résolu rapidement."
  }'

Réponse de Succès (200)

json
{
  "data": {
    "message": "Évaluation enregistrée avec succès"
  }
}

Identifiants TURN (public)

Obtient les identifiants TURN pour que le client puisse établir une connexion WebRTC.

GET /api/v1/call/turn-credentials

Exemple de Requête

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

Réponse de Succès (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