Sessions Live
Les sessions live QualiForma orchestrent les créneaux de formation synchrones via LiveKit : tokens signés par participant, enregistrement automatique sur iDrive e2, transcription Voxtral (Mistral AI), génération des feuilles d'émargement Qualiopi.
Cycle de vie
SCHEDULED → LIVE (via /start) → ENDED (via /end) — ou CANCELLED tant que la session n'a pas démarré.
Endpoints
/api/v1/sessionsLister les sessions live
Retourne la liste paginée des sessions live du tenant. Filtres par formation, statut (SCHEDULED, LIVE, ENDED, CANCELLED) et plage de dates.
- Sessions
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| page | query | non | 1 | Numéro de page (défaut 1) |
| limit | query | non | 25 | Nombre par page (max 100) |
| courseId | query | non | crs_d4e5f6a7-b8c9-4012-def3-456789012345 | Filtre par identifiant de formation |
| status | query | non | SCHEDULED | Filtre par statut : SCHEDULED, LIVE, ENDED, CANCELLED |
| fromDate | query | non | 2026-05-01T00:00:00.000Z | Date de début minimale (ISO 8601) |
| toDate | query | non | 2026-05-31T23:59:59.000Z | Date de début maximale (ISO 8601) |
Réponses
- 200Liste paginée des sessionsRéponse 200 · JSON
Exemples
/api/v1/sessions/:idDétail session
Retourne les informations complètes d'une session : participants inscrits, formateurs, enregistrements disponibles, transcription, statut d'émargement.
- Sessions
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | ses_e5f6a7b8-c9d0-4123-ef45-678901234567 | Identifiant UUID de la session |
Réponses
- 200Détail de la sessionRéponse 200 · JSON
- 404Session introuvableRéponse 404 · JSON
Exemples
/api/v1/sessionsPlanifier une session
Crée une nouvelle session live attachée à une formation. Le créateur (formateur ou admin) doit avoir le droit d'enseigner la formation. Une convocation est envoyée automatiquement aux apprenants inscrits à la formation si `sendConvocation` est vrai.
- Sessions
Corps de requête
Content-Type : application/json
Réponses
- 201Session crééeRéponse 201 · JSON
- 422Validation échouéeRéponse 422 · JSON
Exemples
/api/v1/sessions/:idModifier une session
Mise à jour partielle (titre, description, horaire, capacité, formateurs). Si la date change de plus d'une heure, une convocation de mise à jour est envoyée aux participants.
- Sessions
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | ses_e5f6a7b8-c9d0-4123-ef45-678901234567 | Identifiant UUID de la session |
Corps de requête
Content-Type : application/json
Réponses
- 200Session mise à jourRéponse 200 · JSON
Exemples
/api/v1/sessions/:idAnnuler une session
Annule une session planifiée (status → CANCELLED). Tous les participants reçoivent une notification d'annulation. Une session déjà LIVE ou ENDED ne peut pas être annulée.
- Sessions
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | ses_e5f6a7b8-c9d0-4123-ef45-678901234567 | Identifiant UUID de la session |
Réponses
- 204Session annulée (aucun corps de réponse)
- 409Session déjà démarrée ou terminéeRéponse 409 · JSON
Exemples
/api/v1/sessions/:id/tokenGénérer un token LiveKit
Génère un token JWT LiveKit signé pour le participant authentifié. Le token contient les permissions adaptées au rôle (LEARNER = peut publier audio/vidéo, CREATOR = peut modérer). Durée de validité : 1 heure.
- Sessions
- LiveKit
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | ses_e5f6a7b8-c9d0-4123-ef45-678901234567 | Identifiant UUID de la session |
Réponses
- 200Token LiveKit généréRéponse 200 · JSON
- 403Utilisateur non inscrit à la formationRéponse 403 · JSON
Exemples
/api/v1/sessions/:id/startDémarrer une session
Passe la session du statut SCHEDULED à LIVE. Démarre automatiquement l'enregistrement si `recordingEnabled` est vrai. Seul le formateur ou un ADMIN peut démarrer.
- Sessions
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | ses_e5f6a7b8-c9d0-4123-ef45-678901234567 | Identifiant UUID de la session |
Réponses
- 200Session démarréeRéponse 200 · JSON
Exemples
/api/v1/sessions/:id/endTerminer une session
Passe la session du statut LIVE à ENDED. Stoppe l'enregistrement, déclenche la transcription Voxtral et la génération automatique des feuilles d'émargement.
- Sessions
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | ses_e5f6a7b8-c9d0-4123-ef45-678901234567 | Identifiant UUID de la session |
Réponses
- 200Session terminéeRéponse 200 · JSON
Exemples
/api/v1/sessions/:id/recordingsLister les enregistrements
Retourne la liste des enregistrements vidéo d'une session avec leurs URLs présignées (valides 1 heure) et le statut de transcription.
- Sessions
Paramètres
| Nom | Type | Requis | Exemple | Description |
|---|---|---|---|---|
| id | path | oui | ses_e5f6a7b8-c9d0-4123-ef45-678901234567 | Identifiant UUID de la session |
Réponses
- 200Liste des enregistrementsRéponse 200 · JSON