# Gestion de Tous les Sessions

## Récupérer les sessions utilisateur

> Récupère toutes les sessions de l'utilisateur authentifié, triées par \`created\_at\` dans l'ordre décroissant.\
> \### Structure de la réponse\
> En cas de succès (HTTP 200), la réponse est un objet JSON contenant :\
> \`\`\`json {\
> &#x20; "sessions": {\
> &#x20;   "\<session\_id>": {\
> &#x20;     "created\_at": {\
> &#x20;       "date": "DD/MM/YYYY",\
> &#x20;       "time": "HH:MM AM/PM"\
> &#x20;     },\
> &#x20;     "video\_url": "...",\
> &#x20;     "segments": \<number>,\
> &#x20;     "analyzed\_video\_url": "...",\
> &#x20;     "activity": "...",\
> &#x20;     "title": "...",\
> &#x20;     "user\_id": "...",\
> &#x20;     "user\_name": "...",\
> &#x20;     "report\_comments": {...},\
> &#x20;     "metrics": {...}\
> &#x20;     // autres champs de session\
> &#x20;   },\
> &#x20;   "...": {...}\
> &#x20; }\
> } \`\`\`\
> \### Gestion des erreurs\
> \- \*\*400 Bad Request\*\* : Paramètres invalides (ex. token manquant ou malformé). - \*\*401 Unauthorized\*\* : Le token est manquant ou invalide. - \*\*403 Forbidden\*\* : L'utilisateur n'a pas les privilèges admin. - \*\*404 Not Found\*\* : Impossible de récupérer les sessions (ex. aucune session trouvée). - \*\*500 Internal Server Error\*\* : Une erreur inattendue est survenue sur le serveur.\
> \### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête \`Authorization\`.

````json
{"openapi":"3.1.1","info":{"title":"API WEB AIKYNETIX","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Entrez votre token Bearer (authentification Firebase) au format : Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Entrez votre clé API dans l'en-tête : API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/":{"get":{"operationId":"session-management_sessions_list","summary":"Récupérer les sessions utilisateur","description":"Récupère toutes les sessions de l'utilisateur authentifié, triées par `created_at` dans l'ordre décroissant.\n### Structure de la réponse\nEn cas de succès (HTTP 200), la réponse est un objet JSON contenant :\n```json {\n  \"sessions\": {\n    \"<session_id>\": {\n      \"created_at\": {\n        \"date\": \"DD/MM/YYYY\",\n        \"time\": \"HH:MM AM/PM\"\n      },\n      \"video_url\": \"...\",\n      \"segments\": <number>,\n      \"analyzed_video_url\": \"...\",\n      \"activity\": \"...\",\n      \"title\": \"...\",\n      \"user_id\": \"...\",\n      \"user_name\": \"...\",\n      \"report_comments\": {...},\n      \"metrics\": {...}\n      // autres champs de session\n    },\n    \"...\": {...}\n  }\n} ```\n### Gestion des erreurs\n- **400 Bad Request** : Paramètres invalides (ex. token manquant ou malformé). - **401 Unauthorized** : Le token est manquant ou invalide. - **403 Forbidden** : L'utilisateur n'a pas les privilèges admin. - **404 Not Found** : Impossible de récupérer les sessions (ex. aucune session trouvée). - **500 Internal Server Error** : Une erreur inattendue est survenue sur le serveur.\n### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête `Authorization`.","responses":{"200":{"description":"Sessions utilisateur récupérées avec succès.","content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"description":"Un dictionnaire de sessions indexées par leurs IDs.","type":"object","additionalProperties":{"type":"object"}}}}}}},"400":{"description":"Requête incorrecte - Paramètres invalides ou token manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Explication de l'erreur.","type":"string"}}}}}},"401":{"description":"Non autorisé - Token manquant ou invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message d'erreur d'authentification.","type":"string"}}}}}},"403":{"description":"Interdit - L'utilisateur n'a pas les privilèges requis.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"L'utilisateur n'est pas autorisé à accéder aux sessions.","type":"string"}}}}}},"404":{"description":"Non trouvé - Impossible de récupérer les sessions (ex. aucune trouvée).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message si aucune session n'est trouvée.","type":"string"}}}}}},"500":{"description":"Erreur serveur - Une erreur inattendue est survenue.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message détaillé de l'erreur.","type":"string"}}}}}}},"tags":["session-management"]}}}}
````

## Récupérer des sessions filtrées

> Récupère des sessions utilisateur filtrées par des paramètres optionnels comme une plage de dates, type d'activité, titre ou ID utilisateur. Prend en charge la pagination via \`start\_after\_id\` ou \`end\_before\_id\`.\
> \### Paramètres de requête - \*\*start\_after\_id\*\* \*(string, optionnel)\* : ID de session pour commencer la pagination. - \*\*end\_before\_id\*\* \*(string, optionnel)\* : ID de session pour terminer la pagination. - \*\*limit\*\* \*(integer, optionnel)\* : Nombre max de sessions à récupérer (défaut=10). - \*\*activity\*\* \*(string, optionnel)\* : Filtrer par type d'activité. - \*\*start\_date\*\* \*(string, optionnel, format: dd/mm/yyyy)\* : Sessions créées après cette date. - \*\*end\_date\*\* \*(string, optionnel, format: dd/mm/yyyy)\* : Sessions créées avant cette date. - \*\*title\*\* \*(string, optionnel)\* : Filtrer par titre contenant cette sous-chaîne. - \*\*user\_id\*\* \*(string, optionnel)\* : Filtrer par ID utilisateur. - \*\*uploaded\_by\*\* \*(string)\* : UID de l'utilisateur ayant uploadé la vidéo. - \*\*video\_status\*\* \*(string processed|failed)\* : État actuel de la vidéo.\
> \### Structure de la réponse (HTTP 200) - \*\*query\_count\*\* \*(integer)\* : Nombre total de sessions correspondantes. - \*\*sessions\*\* \*(object)\* : Dictionnaire de sessions indexées par ID. - \*\*first\_doc\_id\*\* \*(string ou null)\* : ID du premier document. - \*\*last\_doc\_id\*\* \*(string ou null)\* : ID du dernier document.\
> \### Gestion des erreurs - \*\*400 Bad Request\*\* : Paramètres invalides. - \*\*401 Unauthorized\*\* : Token manquant ou invalide. - \*\*403 Forbidden\*\* : Privilèges insuffisants. - \*\*404 Not Found\*\* : Aucune session correspondante. - \*\*500 Internal Server Error\*\* : Erreur serveur.\
> \### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête \`Authorization\`.

```json
{"openapi":"3.1.1","info":{"title":"API WEB AIKYNETIX","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Entrez votre token Bearer (authentification Firebase) au format : Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Entrez votre clé API dans l'en-tête : API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/filter/":{"get":{"operationId":"session-management_sessions_filter_list","summary":"Récupérer des sessions filtrées","description":"Récupère des sessions utilisateur filtrées par des paramètres optionnels comme une plage de dates, type d'activité, titre ou ID utilisateur. Prend en charge la pagination via `start_after_id` ou `end_before_id`.\n### Paramètres de requête - **start_after_id** *(string, optionnel)* : ID de session pour commencer la pagination. - **end_before_id** *(string, optionnel)* : ID de session pour terminer la pagination. - **limit** *(integer, optionnel)* : Nombre max de sessions à récupérer (défaut=10). - **activity** *(string, optionnel)* : Filtrer par type d'activité. - **start_date** *(string, optionnel, format: dd/mm/yyyy)* : Sessions créées après cette date. - **end_date** *(string, optionnel, format: dd/mm/yyyy)* : Sessions créées avant cette date. - **title** *(string, optionnel)* : Filtrer par titre contenant cette sous-chaîne. - **user_id** *(string, optionnel)* : Filtrer par ID utilisateur. - **uploaded_by** *(string)* : UID de l'utilisateur ayant uploadé la vidéo. - **video_status** *(string processed|failed)* : État actuel de la vidéo.\n### Structure de la réponse (HTTP 200) - **query_count** *(integer)* : Nombre total de sessions correspondantes. - **sessions** *(object)* : Dictionnaire de sessions indexées par ID. - **first_doc_id** *(string ou null)* : ID du premier document. - **last_doc_id** *(string ou null)* : ID du dernier document.\n### Gestion des erreurs - **400 Bad Request** : Paramètres invalides. - **401 Unauthorized** : Token manquant ou invalide. - **403 Forbidden** : Privilèges insuffisants. - **404 Not Found** : Aucune session correspondante. - **500 Internal Server Error** : Erreur serveur.\n### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête `Authorization`.","parameters":[{"schema":{"type":"string"},"name":"start_after_id","in":"query","description":"ID de session pour commencer la pagination (si aucun filtre).","required":false},{"schema":{"type":"string"},"name":"end_before_id","in":"query","description":"ID de session pour terminer la pagination (si aucun filtre).","required":false},{"schema":{"type":"integer"},"name":"limit","in":"query","description":"Nombre max de sessions à récupérer (défaut=10).","required":false},{"schema":{"type":"string","enum":["Running","Weightlifting","Vertical Jump","Mobility Assessment"]},"name":"activity","in":"query","description":"Type d'activité (ex. 'Running', 'Weightlifting').","required":false},{"schema":{"type":"string"},"name":"start_date","in":"query","description":"Filtrer les sessions créées après cette date (dd/mm/yyyy).","required":false},{"schema":{"type":"string"},"name":"end_date","in":"query","description":"Filtrer les sessions créées avant cette date (dd/mm/yyyy).","required":false},{"schema":{"type":"string"},"name":"title","in":"query","description":"Filtrer par titre contenant cette sous-chaîne (insensible à la casse).","required":false},{"schema":{"type":"string"},"name":"user_id","in":"query","description":"Filtrer par ID utilisateur stocké dans la session.","required":false},{"schema":{"type":"string"},"name":"uploaded_by","in":"query","description":"ID de l'utilisateur (admin) ayant uploadé la vidéo.","required":false},{"schema":{"type":"string","enum":["processed","failed"]},"name":"video_status","in":"query","description":"État de traitement de la vidéo.","required":false}],"responses":{"200":{"description":"Sessions filtrées récupérées avec succès.","content":{"application/json":{"schema":{"type":"object","properties":{"query_count":{"description":"Nombre total de sessions correspondantes.","type":"integer"},"sessions":{"description":"Dictionnaire de sessions indexées par ID.","type":"object","additionalProperties":{"type":"object"}},"first_doc_id":{"description":"ID de la première session ou null.","type":"string"},"last_doc_id":{"description":"ID de la dernière session ou null.","type":"string"}}}}}},"400":{"description":"Requête incorrecte - Paramètres invalides ou token manquant.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Détails de l'erreur.","type":"string"}}}}}},"401":{"description":"Non autorisé - Token manquant ou invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Erreur d'authentification.","type":"string"}}}}}},"403":{"description":"Interdit - L'utilisateur n'a pas les privilèges admin.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Erreur d'autorisation.","type":"string"}}}}}},"404":{"description":"Non trouvé - Aucune session correspondante.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message d'erreur.","type":"string"}}}}}},"500":{"description":"Erreur serveur - Erreur inattendue.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message détaillé de l'erreur.","type":"string"}}}}}}},"tags":["session-management"]}}}}
```

## Récupérer des sessions par IDs

> Récupère les données détaillées de sessions à partir d'une liste d'IDs. Utilisé lorsque le client a déjà des IDs spécifiques (ex. depuis des rapports sauvegardés).\
> \### Corps de la requête - \*\*session\_ids\*\* \*(requis)\* : Liste des IDs de sessions à récupérer.\
> \### Sécurité Requiert un token Bearer dans l'en-tête \`Authorization\`.\
> \### Erreurs - \*\*400 Bad Request\*\* : Entrée invalide. - \*\*401 Unauthorized\*\* : Token manquant ou invalide. - \*\*403 Forbidden\*\* : Utilisateur non autorisé. - \*\*500 Internal Server Error\*\* : Erreur inattendue.

```json
{"openapi":"3.1.1","info":{"title":"API WEB AIKYNETIX","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Entrez votre token Bearer (authentification Firebase) au format : Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Entrez votre clé API dans l'en-tête : API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/by-ids/":{"post":{"operationId":"session-management_sessions_by-ids_create","summary":"Récupérer des sessions par IDs","description":"Récupère les données détaillées de sessions à partir d'une liste d'IDs. Utilisé lorsque le client a déjà des IDs spécifiques (ex. depuis des rapports sauvegardés).\n### Corps de la requête - **session_ids** *(requis)* : Liste des IDs de sessions à récupérer.\n### Sécurité Requiert un token Bearer dans l'en-tête `Authorization`.\n### Erreurs - **400 Bad Request** : Entrée invalide. - **401 Unauthorized** : Token manquant ou invalide. - **403 Forbidden** : Utilisateur non autorisé. - **500 Internal Server Error** : Erreur inattendue.","responses":{"200":{"description":"Sessions récupérées avec succès.","content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"description":"Dictionnaire de données de sessions indexées par ID.","type":"object","additionalProperties":{"type":"object","properties":{"session_id":{"type":"string"},"activity":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"uploaded_date":{"type":"string","format":"date-time"},"video_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"},"analyzed_video_url":{"type":"string","format":"uri"},"title":{"type":"string"},"user_id":{"type":"string"},"user_name":{"type":"string"},"uploaded_name":{"type":"string"},"uploaded_uid":{"type":"string"},"user_status":{"type":"string"},"video_status":{"type":"string","enum":["Processed","Failed"]},"exercise":{"description":"Nom de l'exercice (optionnel).","type":"string"}}}}}}}}},"400":{"description":"Requête incorrecte - session_ids manquant ou invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"401":{"description":"Non autorisé - Aucun token fourni.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"403":{"description":"Interdit - L'utilisateur n'est pas admin.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Erreur serveur - Problème côté serveur.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["session-management"],"requestBody":{"content":{"application/json":{"schema":{"required":["session_ids"],"type":"object","properties":{"session_ids":{"description":"Liste des IDs de sessions à récupérer.","type":"array","items":{"type":"string"}}}}}},"required":true}}}}}
```

## Mettre à jour les données d'une session

> Met à jour les détails d'une session (titre, timestamp created\_at). Requiert des privilèges admin et un plan de paiement valide.\
> \### Paramètre de chemin - \*\*session\_id\*\* \*(string, requis)\* : ID unique de la session.\
> \### Corps de la requête (JSON) - \*\*title\*\* \*(string, optionnel)\* : Nouveau titre pour la session. - \*\*created\_at\*\* \*(string, optionnel, format: \`YYYY-MM-DD HH:MM:SS\`)\* : Nouveau timestamp.\
> \### Structure de la réponse - \*\*success\*\* \*(string)\* : Confirmation de la mise à jour.\
> \### Erreurs - \*\*400 Bad Request\*\* : Paramètres invalides. - \*\*401 Unauthorized\*\* : Token manquant ou invalide. - \*\*403 Forbidden\*\* : Privilèges ou plan de paiement insuffisants. - \*\*404 Not Found\*\* : Session non trouvée. - \*\*500 Internal Server Error\*\* : Erreur serveur.

```json
{"openapi":"3.1.1","info":{"title":"API WEB AIKYNETIX","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Entrez votre token Bearer (authentification Firebase) au format : Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Entrez votre clé API dans l'en-tête : API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}":{"put":{"operationId":"session-management_sessions_update","summary":"Mettre à jour les données d'une session","description":"Met à jour les détails d'une session (titre, timestamp created_at). Requiert des privilèges admin et un plan de paiement valide.\n### Paramètre de chemin - **session_id** *(string, requis)* : ID unique de la session.\n### Corps de la requête (JSON) - **title** *(string, optionnel)* : Nouveau titre pour la session. - **created_at** *(string, optionnel, format: `YYYY-MM-DD HH:MM:SS`)* : Nouveau timestamp.\n### Structure de la réponse - **success** *(string)* : Confirmation de la mise à jour.\n### Erreurs - **400 Bad Request** : Paramètres invalides. - **401 Unauthorized** : Token manquant ou invalide. - **403 Forbidden** : Privilèges ou plan de paiement insuffisants. - **404 Not Found** : Session non trouvée. - **500 Internal Server Error** : Erreur serveur.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID de la session à mettre à jour.","required":true}],"responses":{"200":{"description":"Session mise à jour avec succès.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"description":"Message de confirmation.","type":"string"}}}}}},"400":{"description":"Requête incorrecte - Paramètres invalides.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Explication de l'erreur.","type":"string"}}}}}},"401":{"description":"Non autorisé - Token manquant ou invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Erreur d'authentification.","type":"string"}}}}}},"403":{"description":"Interdit - Privilèges insuffisants.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Erreur d'autorisation.","type":"string"}}}}}},"404":{"description":"Non trouvé - Session inexistante.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message d'erreur.","type":"string"}}}}}},"500":{"description":"Erreur serveur - Erreur inattendue.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message de débogage.","type":"string"}}}}}}},"tags":["session-management"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"description":"Nouveau titre pour la session.","type":"string"},"created_at":{"description":"Nouveau timestamp au format `YYYY-MM-DD HH:MM:SS`.","type":"string","format":"date-time"}}}}},"required":true}}}}}
```

## Supprimer une session

> Supprime une session spécifique et toutes ses ressources associées (données, vidéos, sous-collections, rapports).\
> \### Paramètre de chemin - \*\*session\_id\*\* \*(string, requis)\* : ID unique de la session.\
> \### Structure de la réponse - \*\*success\*\* \*(string)\* : Confirmation de la suppression.\
> \### Erreurs - \*\*400 Bad Request\*\* : Paramètres invalides. - \*\*401 Unauthorized\*\* : Token manquant ou invalide. - \*\*403 Forbidden\*\* : Privilèges insuffisants. - \*\*404 Not Found\*\* : Session non trouvée. - \*\*500 Internal Server Error\*\* : Erreur serveur.

```json
{"openapi":"3.1.1","info":{"title":"API WEB AIKYNETIX","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Entrez votre token Bearer (authentification Firebase) au format : Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Entrez votre clé API dans l'en-tête : API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}":{"delete":{"operationId":"session-management_sessions_delete","summary":"Supprimer une session","description":"Supprime une session spécifique et toutes ses ressources associées (données, vidéos, sous-collections, rapports).\n### Paramètre de chemin - **session_id** *(string, requis)* : ID unique de la session.\n### Structure de la réponse - **success** *(string)* : Confirmation de la suppression.\n### Erreurs - **400 Bad Request** : Paramètres invalides. - **401 Unauthorized** : Token manquant ou invalide. - **403 Forbidden** : Privilèges insuffisants. - **404 Not Found** : Session non trouvée. - **500 Internal Server Error** : Erreur serveur.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID de la session à supprimer.","required":true}],"responses":{"200":{"description":"Session supprimée avec succès.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"description":"Message de confirmation.","type":"string"}}}}}},"400":{"description":"Requête incorrecte - Paramètres invalides.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Explication de l'erreur.","type":"string"}}}}}},"401":{"description":"Non autorisé - Token manquant ou invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Erreur d'authentification.","type":"string"}}}}}},"403":{"description":"Interdit - Privilèges insuffisants.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Erreur d'autorisation.","type":"string"}}}}}},"404":{"description":"Non trouvé - Session inexistante.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message d'erreur.","type":"string"}}}}}},"500":{"description":"Erreur serveur - Erreur inattendue.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Message de débogage.","type":"string"}}}}}}},"tags":["session-management"]}}}}
```

## Récupérer l'URL de la vidéo analysée

> Récupère l'URL de la vidéo analysée pour une session spécifique, ou tente de la créer si elle n'existe pas.\
> \### Paramètre de chemin - \*\*session\_id\*\* \*(string, requis)\* : ID unique de la session.\
> \### Paramètres de requête - \*\*is\_jump\*\* \*(boolean, optionnel)\* : Si vrai, traite comme une session de saut. - \*\*is\_weight\*\* \*(boolean, optionnel)\* : Si vrai, traite comme une session de haltérophilie. - \*\*download\*\* \*(boolean, optionnel)\* : Si vrai, force le téléchargement.\
> \### Réponse (HTTP 200) \`\`\`json {\
> &#x20; "analyzed\_video\_url": "<https://storage.googleapis.com/.../analyzed\\_video.mp4"\\>
> } \`\`\`\
> \### Gestion des erreurs - \*\*400 Bad Request\*\* : Paramètres invalides. - \*\*401 Unauthorized\*\* : Token manquant ou invalide. - \*\*403 Forbidden\*\* : Privilèges ou plan invalide. - \*\*404 Not Found\*\* : Session non trouvée. - \*\*500 Internal Server Error\*\* : Erreur serveur.\
> \### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête \`Authorization\`.

````json
{"openapi":"3.1.1","info":{"title":"API WEB AIKYNETIX","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Entrez votre token Bearer (authentification Firebase) au format : Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Entrez votre clé API dans l'en-tête : API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}/analyzed-video/":{"get":{"operationId":"session-management_sessions_analyzed-video_list","summary":"Récupérer l'URL de la vidéo analysée","description":"Récupère l'URL de la vidéo analysée pour une session spécifique, ou tente de la créer si elle n'existe pas.\n### Paramètre de chemin - **session_id** *(string, requis)* : ID unique de la session.\n### Paramètres de requête - **is_jump** *(boolean, optionnel)* : Si vrai, traite comme une session de saut. - **is_weight** *(boolean, optionnel)* : Si vrai, traite comme une session de haltérophilie. - **download** *(boolean, optionnel)* : Si vrai, force le téléchargement.\n### Réponse (HTTP 200) ```json {\n  \"analyzed_video_url\": \"https://storage.googleapis.com/.../analyzed_video.mp4\"\n} ```\n### Gestion des erreurs - **400 Bad Request** : Paramètres invalides. - **401 Unauthorized** : Token manquant ou invalide. - **403 Forbidden** : Privilèges ou plan invalide. - **404 Not Found** : Session non trouvée. - **500 Internal Server Error** : Erreur serveur.\n### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête `Authorization`.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID de la session pour récupérer/créer la vidéo analysée.","required":true},{"schema":{"type":"boolean"},"name":"is_jump","in":"query","description":"Si vrai, session de saut.","required":false},{"schema":{"type":"boolean"},"name":"is_weight","in":"query","description":"Si vrai, session d'haltérophilie.","required":false},{"schema":{"type":"boolean"},"name":"download","in":"query","description":"Si vrai, force le téléchargement.","required":false}],"responses":{"200":{"description":"URL de la vidéo analysée récupérée avec succès.","content":{"application/json":{"schema":{"type":"object","properties":{"analyzed_video_url":{"description":"URL de la vidéo analysée.","type":"string","format":"uri"}}}}}},"400":{"description":"Requête incorrecte - Paramètres invalides.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"401":{"description":"Non autorisé - Token manquant ou invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"403":{"description":"Interdit - Privilèges ou plan invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"404":{"description":"Non trouvé - Session non trouvée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Erreur serveur - Erreur inattendue.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["session-management"]}}}}
````

## Uploader/Générer une vidéo analysée

> Uploader ou génère une vidéo analysée pour une session spécifique.\
> \### Paramètre de chemin - \*\*session\_id\*\* \*(string, requis)\* : ID unique de la session.\
> \### Corps de la requête (JSON) \`\`\`json {\
> &#x20; "is\_jump": true,\
> &#x20; "is\_weight": false\
> } \`\`\`\
> \### Réponse (HTTP 200) \`\`\`json {\
> &#x20; "analyzed\_video\_url": "<https://storage.googleapis.com/.../analyzed\\_video.mp4"\\>
> } \`\`\`\
> \### Gestion des erreurs - \*\*400 Bad Request\*\* : Paramètres invalides ou vidéo déjà analysée. - \*\*401 Unauthorized\*\* : Token manquant ou invalide. - \*\*403 Forbidden\*\* : Plan de paiement invalide. - \*\*404 Not Found\*\* : Session non trouvée. - \*\*500 Internal Server Error\*\* : Erreur serveur.\
> \### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête \`Authorization\`.

````json
{"openapi":"3.1.1","info":{"title":"API WEB AIKYNETIX","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Entrez votre token Bearer (authentification Firebase) au format : Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Entrez votre clé API dans l'en-tête : API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}/analyzed-video/":{"post":{"operationId":"session-management_sessions_analyzed-video_create","summary":"Uploader/Générer une vidéo analysée","description":"Uploader ou génère une vidéo analysée pour une session spécifique.\n### Paramètre de chemin - **session_id** *(string, requis)* : ID unique de la session.\n### Corps de la requête (JSON) ```json {\n  \"is_jump\": true,\n  \"is_weight\": false\n} ```\n### Réponse (HTTP 200) ```json {\n  \"analyzed_video_url\": \"https://storage.googleapis.com/.../analyzed_video.mp4\"\n} ```\n### Gestion des erreurs - **400 Bad Request** : Paramètres invalides ou vidéo déjà analysée. - **401 Unauthorized** : Token manquant ou invalide. - **403 Forbidden** : Plan de paiement invalide. - **404 Not Found** : Session non trouvée. - **500 Internal Server Error** : Erreur serveur.\n### Sécurité Un token API-KEY valide doit être fourni dans l'en-tête `Authorization`.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID de la session pour uploader/générer la vidéo analysée.","required":true}],"responses":{"200":{"description":"URL de la vidéo analysée générée avec succès.","content":{"application/json":{"schema":{"type":"object","properties":{"analyzed_video_url":{"description":"URL de la vidéo analysée.","type":"string","format":"uri"}}}}}},"400":{"description":"Requête incorrecte - Données invalides ou vidéo déjà analysée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"401":{"description":"Non autorisé - Token manquant ou invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"403":{"description":"Interdit - Plan de paiement invalide.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"404":{"description":"Non trouvé - Session non trouvée.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Erreur serveur - Erreur inattendue.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["session-management"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"is_jump":{"description":"Si vrai, session de saut.","type":"boolean"},"is_weight":{"description":"Si vrai, session d'haltérophilie.","type":"boolean"}}}}},"required":true}}}}}
````


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aikynetix.app/fr/api-documentation/developer-resources-and-api-reference/api-reference/managing-all-sessions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
