Sessions
Créez une session de visionnage en direct, envoyez une invitation au client et interrogez son statut. Les horodatages sont en ISO-8601 UTC (…Z).
Créer une session
Crée une session et son invitation, puis transmet le lien d'invitation via le channel choisi. Passez teamId avec un JWT de tableau de bord ; une clé API implique sa propre équipe.
| Champ | Description |
|---|---|
teamId | L'UUID de l'équipe. Requis lors de l'authentification avec un JWT de tableau de bord ; déduit automatiquement d'une clé API. |
channel | Comment l'invitation est délivrée : sms, email, ou link (rien n'est envoyé — vous distribuez l'URL vous-même). |
recipientPhone | Le numéro de téléphone du client au format E.164 (ex. +15555550123). Requis quand channel vaut sms. |
recipientEmail | L'adresse e-mail du client. Requise quand channel vaut email — le message inclut le lien ainsi qu'un QR code intégré. |
note | Un libellé interne optionnel, jusqu'à 500 caractères (ex. un numéro de ticket), affiché à côté de la session dans le tableau de bord. |
ttlMinutes | La durée de validité de l'invitation, en minutes (1–1440). Par défaut 30. |
smsConsent | Obligatoire lorsque channel vaut sms : doit être true pour confirmer que le destinataire a accepté de recevoir un SMS de seeitlive.io. Des frais d'opérateur peuvent s'appliquer. |
metadata | Paires clé/valeur personnalisées facultatives (un dictionnaire plat de chaînes, par exemple votre propre identifiant d'agent externe ou une référence de ticket). Stockées telles quelles et renvoyées en lecture. Jusqu'à 30 clés ; clés jusqu'à 64 caractères, valeurs jusqu'à 500. |
curl -X POST https://api.seeitlive.io/v1/sessions \
-H "Authorization: Bearer sil_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "channel": "sms", "recipientPhone": "+15555550123", "smsConsent": true, "note": "Ticket #4821" }'{
"id": "f74f1305-2222-4a11-8b1e-1234567890ab",
"status": "pending",
"inviteCode": "aZ3kQ9",
"inviteUrl": "https://seeitlive.io/u/aZ3kQ9#3n9F1Qk7xY2zR8vB5tW6uL0mC4pD1sA...",
"agentViewUrl": "https://seeitlive.io/a/pL2mN8#7dR2Xa4Wq9Kj6bV3nF1yT8sH5cE0uZ...",
"expiresAt": "2026-07-07T09:42:00.000Z"
}inviteUrl et agentViewUrl transportent les jetons de session en clair dans le fragment de leur URL. Ils ne sont renvoyés qu'à la création — enregistrez-les immédiatement.Statut de la session
Interrogez ce point de terminaison pour savoir quand le client est devant sa caméra.
status évolue de pending → ringing → live → ended au fur et à mesure que le client rejoint puis quitte, ou passe directement à expired (l'invitation n'a jamais été ouverte) ou cancelled.
{
"id": "f74f1305-2222-4a11-8b1e-1234567890ab",
"status": "live",
"startedAt": "2026-07-07T09:14:03.000Z",
"endedAt": null,
"producerCount": 1,
"hasVideo": true
}Résoudre une invitation (public)
Le point de terminaison public que la page invité appelle pour résoudre un code d'invitation en sa session et sa marque — aucun jeton ni clé requis. Rejoindre le flux s'authentifie séparément, avec le jeton intégré dans le fragment de l'URL d'invitation.
{
"sessionId": "f74f1305-2222-4a11-8b1e-1234567890ab",
"brand": {
"name": "Acme Support",
"brandLogoUrl": null,
"brandColor": "#1a2b3c"
},
"status": "pending"
}