# Управление всеми сессиями

## Получить сессии пользователя

> Получает все сессии аутентифицированного пользователя, отсортированные по \`created\_at\` в порядке убывания.\
> \### Структура ответа\
> При успешном выполнении (HTTP 200) ответ представляет собой JSON-объект, содержащий:\
> \`\`\`json {\
> &#x20; "sessions": {\
> &#x20;   "\<session\_id>": {\
> &#x20;     "created\_at": {\
> &#x20;       "date": "ДД/ММ/ГГГГ",\
> &#x20;       "time": "ЧЧ:ММ AM/PM"\
> &#x20;     },\
> &#x20;     "video\_url": "...",\
> &#x20;     "segments": <число>,\
> &#x20;     "analyzed\_video\_url": "...",\
> &#x20;     "activity": "...",\
> &#x20;     "title": "...",\
> &#x20;     "user\_id": "...",\
> &#x20;     "user\_name": "...",\
> &#x20;     "report\_comments": {...},\
> &#x20;     "metrics": {...}\
> &#x20;     // другие поля сессии\
> &#x20;   },\
> &#x20;   "...": {...}\
> &#x20; }\
> } \`\`\`\
> \### Обработка ошибок\
> \- \*\*400 Bad Request\*\*: Некорректные параметры (например, отсутствующий или неверный токен).\
> \- \*\*401 Unauthorized\*\*: Токен отсутствует или недействителен.\
> \- \*\*403 Forbidden\*\*: У пользователя нет прав администратора.\
> \- \*\*404 Not Found\*\*: Не удалось получить сессии (например, сессии не найдены).\
> \- \*\*500 Internal Server Error\*\*: Непредвиденная ошибка на сервере.\
> \### Безопасность\
> В заголовке \`Authorization\` должен быть указан действительный API-KEY токен.<br>

````json
{"openapi":"3.1.1","info":{"title":"AIKYNETIX WEB API","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Укажите ваш API-ключ в заголовке: API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/":{"get":{"operationId":"session-management_sessions_list","summary":"Получить сессии пользователя","description":"Получает все сессии аутентифицированного пользователя, отсортированные по `created_at` в порядке убывания.\n### Структура ответа\nПри успешном выполнении (HTTP 200) ответ представляет собой JSON-объект, содержащий:\n```json {\n  \"sessions\": {\n    \"<session_id>\": {\n      \"created_at\": {\n        \"date\": \"ДД/ММ/ГГГГ\",\n        \"time\": \"ЧЧ:ММ AM/PM\"\n      },\n      \"video_url\": \"...\",\n      \"segments\": <число>,\n      \"analyzed_video_url\": \"...\",\n      \"activity\": \"...\",\n      \"title\": \"...\",\n      \"user_id\": \"...\",\n      \"user_name\": \"...\",\n      \"report_comments\": {...},\n      \"metrics\": {...}\n      // другие поля сессии\n    },\n    \"...\": {...}\n  }\n} ```\n### Обработка ошибок\n- **400 Bad Request**: Некорректные параметры (например, отсутствующий или неверный токен).\n- **401 Unauthorized**: Токен отсутствует или недействителен.\n- **403 Forbidden**: У пользователя нет прав администратора.\n- **404 Not Found**: Не удалось получить сессии (например, сессии не найдены).\n- **500 Internal Server Error**: Непредвиденная ошибка на сервере.\n### Безопасность\nВ заголовке `Authorization` должен быть указан действительный API-KEY токен.\n","responses":{"200":{"description":"Сессии пользователя успешно получены.","content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"description":"Словарь сессий с ключами в виде их ID.","type":"object","additionalProperties":{"type":"object"}}}}}}},"400":{"description":"Bad Request - Некорректные параметры или отсутствующий токен.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Объяснение ошибки.","type":"string"}}}}}},"401":{"description":"Unauthorized - Токен отсутствует или недействителен.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке аутентификации.","type":"string"}}}}}},"403":{"description":"Forbidden - У пользователя недостаточно прав.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Пользователь не имеет доступа к данным сессий.","type":"string"}}}}}},"404":{"description":"Not Found - Не удалось получить сессии (например, не найдены).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке, если сессии не найдены.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Непредвиденная ошибка на сервере.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Подробное сообщение об ошибке сервера.","type":"string"}}}}}}},"tags":["session-management"]}}}}
````

## Получить сессии по ID

> Получает детальные данные сессий по списку их ID. Этот эндпоинт используется, когда клиент уже имеет конкретные ID сессий (например, из сохраненных отчетов) и хочет получить их полные данные.\
> \### Тело запроса\
> \- \*\*session\_ids\*\* \*(обязательно)\*: Список ID документов сессий для получения.\
> \### Безопасность\
> Требуется Bearer Token в заголовке \`Authorization\`.\
> \### Ошибки\
> \- \*\*400 Bad Request\*\*: Некорректные входные данные.\
> \- \*\*401 Unauthorized\*\*: Отсутствует или недействителен токен.\
> \- \*\*403 Forbidden\*\*: Пользователь не авторизован.\
> \- \*\*500 Internal Server Error\*\*: Непредвиденная ошибка.<br>

```json
{"openapi":"3.1.1","info":{"title":"AIKYNETIX WEB API","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Укажите ваш API-ключ в заголовке: API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/by-ids/":{"post":{"operationId":"session-management_sessions_by-ids_create","summary":"Получить сессии по ID","description":"Получает детальные данные сессий по списку их ID. Этот эндпоинт используется, когда клиент уже имеет конкретные ID сессий (например, из сохраненных отчетов) и хочет получить их полные данные.\n### Тело запроса\n- **session_ids** *(обязательно)*: Список ID документов сессий для получения.\n### Безопасность\nТребуется Bearer Token в заголовке `Authorization`.\n### Ошибки\n- **400 Bad Request**: Некорректные входные данные.\n- **401 Unauthorized**: Отсутствует или недействителен токен.\n- **403 Forbidden**: Пользователь не авторизован.\n- **500 Internal Server Error**: Непредвиденная ошибка.\n","responses":{"200":{"description":"Сессии успешно получены.","content":{"application/json":{"schema":{"type":"object","properties":{"sessions":{"description":"Словарь данных сессий с ключами в виде их 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":"Название упражнения (опционально, только для определенных активностей).","type":"string"}}}}}}}}},"400":{"description":"Bad Request - session_ids отсутствуют или некорректны.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"401":{"description":"Unauthorized - Токен не предоставлен.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"403":{"description":"Forbidden - Пользователь не является администратором.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Internal Server Error - Ошибка на сервере.","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":"Список ID документов сессий для получения.","type":"array","items":{"type":"string"}}}}}},"required":true}}}}}
```

## Получить отфильтрованные сессии

> Получает сессии пользователя, отфильтрованные по необязательным параметрам, таким как диапазон дат, тип активности, заголовок или ID пользователя. Также поддерживает пагинацию через \`start\_after\_id\` или \`end\_before\_id\`, если фильтры не применены.\
> \### Параметры запроса\
> \- \*\*start\_after\_id\*\* \*(строка, опционально)\*: ID сессии, после которой начинать пагинацию. Используется только если фильтры не заданы.\
> \- \*\*end\_before\_id\*\* \*(строка, опционально)\*: ID сессии, перед которой заканчивать пагинацию. Используется только если фильтры не заданы.\
> \- \*\*limit\*\* \*(целое число, опционально)\*: Максимальное количество сессий для получения (по умолчанию=10).\
> \- \*\*activity\*\* \*(строка, опционально)\*: Фильтр по типу активности (например, 'Running', 'Vertical Jump').\
> \- \*\*start\_date\*\* \*(строка, опционально, формат: дд/мм/гггг)\*: Фильтр сессий, созданных в эту дату или позже.\
> \- \*\*end\_date\*\* \*(строка, опционально, формат: дд/мм/гггг)\*: Фильтр сессий, созданных в эту дату или раньше.\
> \- \*\*title\*\* \*(строка, опционально)\*: Фильтр по сессиям, заголовок которых содержит эту подстроку (без учета регистра).\
> \- \*\*user\_id\*\* \*(строка, опционально)\*: Фильтр по ID пользователя, сохраненному в сессии.\
> \| \*\*uploaded\_by\*\* | строка | \*\*НОВОЕ\*\*\&nbsp;UID пользователя, загрузившего исходное видео. |\
> \| \*\*video\_status\*\* | строка \`processed\\|failed\` | \*\*НОВОЕ\*\* текущее состояние. |\
> \### Структура ответа (HTTP 200)\
> При успешном выполнении ответ представляет собой JSON-объект, содержащий:\
> \- \*\*query\_count\*\* \*(целое число)\*: Общее количество соответствующих сессий.\
> \- \*\*sessions\*\* \*(объект)\*: Словарь документов сессий с ключами в виде их ID.\
> \- \*\*first\_doc\_id\*\* \*(строка или null)\*: ID первого документа в возвращенном наборе.\
> \- \*\*last\_doc\_id\*\* \*(строка или null)\*: ID последнего документа в возвращенном наборе.\
> Каждый объект сессии может включать поля, такие как \`video\_url\`, \`activity\`, \`created\_at\`, \`title\`, и т.д., а также вложенные данные (например, \`report\_comments\`, \`metrics\`). Обратите внимание, что \`created\_at\` возвращается как вложенный объект с полями \`date\` и \`time\`.\
> \### Обработка ошибок\
> \- \*\*400 Bad Request\*\*: Некорректные параметры (например, неверный формат даты) или отсутствующий токен пользователя.\
> \- \*\*401 Unauthorized\*\*: Токен отсутствует или недействителен.\
> \- \*\*403 Forbidden\*\*: У пользователя нет прав администратора.\
> \- \*\*404 Not Found\*\*: Нет соответствующих сессий.\
> \- \*\*500 Internal Server Error\*\*: Непредвиденная ошибка на сервере.\
> \### Безопасность\
> В заголовке \`Authorization\` должен быть указан действительный API-KEY токен.<br>

```json
{"openapi":"3.1.1","info":{"title":"AIKYNETIX WEB API","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Укажите ваш API-ключ в заголовке: API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/filter/":{"get":{"operationId":"session-management_sessions_filter_list","summary":"Получить отфильтрованные сессии","description":"Получает сессии пользователя, отфильтрованные по необязательным параметрам, таким как диапазон дат, тип активности, заголовок или ID пользователя. Также поддерживает пагинацию через `start_after_id` или `end_before_id`, если фильтры не применены.\n### Параметры запроса\n- **start_after_id** *(строка, опционально)*: ID сессии, после которой начинать пагинацию. Используется только если фильтры не заданы.\n- **end_before_id** *(строка, опционально)*: ID сессии, перед которой заканчивать пагинацию. Используется только если фильтры не заданы.\n- **limit** *(целое число, опционально)*: Максимальное количество сессий для получения (по умолчанию=10).\n- **activity** *(строка, опционально)*: Фильтр по типу активности (например, 'Running', 'Vertical Jump').\n- **start_date** *(строка, опционально, формат: дд/мм/гггг)*: Фильтр сессий, созданных в эту дату или позже.\n- **end_date** *(строка, опционально, формат: дд/мм/гггг)*: Фильтр сессий, созданных в эту дату или раньше.\n- **title** *(строка, опционально)*: Фильтр по сессиям, заголовок которых содержит эту подстроку (без учета регистра).\n- **user_id** *(строка, опционально)*: Фильтр по ID пользователя, сохраненному в сессии.\n| **uploaded_by** | строка | **НОВОЕ**&nbsp;UID пользователя, загрузившего исходное видео. |\n| **video_status** | строка `processed\\|failed` | **НОВОЕ** текущее состояние. |\n### Структура ответа (HTTP 200)\nПри успешном выполнении ответ представляет собой JSON-объект, содержащий:\n- **query_count** *(целое число)*: Общее количество соответствующих сессий.\n- **sessions** *(объект)*: Словарь документов сессий с ключами в виде их ID.\n- **first_doc_id** *(строка или null)*: ID первого документа в возвращенном наборе.\n- **last_doc_id** *(строка или null)*: ID последнего документа в возвращенном наборе.\nКаждый объект сессии может включать поля, такие как `video_url`, `activity`, `created_at`, `title`, и т.д., а также вложенные данные (например, `report_comments`, `metrics`). Обратите внимание, что `created_at` возвращается как вложенный объект с полями `date` и `time`.\n### Обработка ошибок\n- **400 Bad Request**: Некорректные параметры (например, неверный формат даты) или отсутствующий токен пользователя.\n- **401 Unauthorized**: Токен отсутствует или недействителен.\n- **403 Forbidden**: У пользователя нет прав администратора.\n- **404 Not Found**: Нет соответствующих сессий.\n- **500 Internal Server Error**: Непредвиденная ошибка на сервере.\n### Безопасность\nВ заголовке `Authorization` должен быть указан действительный API-KEY токен.\n","parameters":[{"schema":{"type":"string"},"name":"start_after_id","in":"query","description":"ID сессии, после которой начинать пагинацию (используется только если фильтры не заданы).\n","required":false},{"schema":{"type":"string"},"name":"end_before_id","in":"query","description":"ID сессии, перед которой заканчивать пагинацию (используется только если фильтры не заданы).\n","required":false},{"schema":{"type":"integer"},"name":"limit","in":"query","description":"Максимальное количество сессий для получения (по умолчанию=10).","required":false},{"schema":{"type":"string","enum":["Running","Weightlifting","Vertical Jump","Mobility Assessment"]},"name":"activity","in":"query","description":"Фильтр по типу активности (например, 'Running', 'Weightlifting', 'Vertical Jump' или 'Mobility Assessment').\n","required":false},{"schema":{"type":"string"},"name":"start_date","in":"query","description":"Фильтр сессий, созданных в эту дату или позже (дд/мм/гггг).","required":false},{"schema":{"type":"string"},"name":"end_date","in":"query","description":"Фильтр сессий, созданных в эту дату или раньше (дд/мм/гггг).","required":false},{"schema":{"type":"string"},"name":"title","in":"query","description":"Фильтр по сессиям, заголовок которых содержит эту подстроку (без учета регистра).\n","required":false},{"schema":{"type":"string"},"name":"user_id","in":"query","description":"Фильтр по ID пользователя, сохраненному в документе сессии.","required":false},{"schema":{"type":"string"},"name":"uploaded_by","in":"query","description":"ID пользователя (администратора / суб-администратора), загрузившего видео.","required":false},{"schema":{"type":"string","enum":["processed","failed"]},"name":"video_status","in":"query","description":"Состояние обработки видео сессии.","required":false}],"responses":{"200":{"description":"Отфильтрованные сессии успешно получены.","content":{"application/json":{"schema":{"type":"object","properties":{"query_count":{"description":"Общее количество соответствующих сессий.","type":"integer"},"sessions":{"description":"Словарь документов сессий с ключами в виде их ID.","type":"object","additionalProperties":{"type":"object"}},"first_doc_id":{"description":"ID первой сессии в результате или null, если нет.","type":"string"},"last_doc_id":{"description":"ID последней сессии в результате или null, если нет.","type":"string"}}}}}},"400":{"description":"Bad Request - Возможно, некорректные параметры (неверный формат даты и т.д.) или отсутствующий токен пользователя.\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Подробное сообщение об ошибке, объясняющее причину некорректного запроса.\n","type":"string"}}}}}},"401":{"description":"Unauthorized - Отсутствует или недействителен токен доступа.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка аутентификации.","type":"string"}}}}}},"403":{"description":"Forbidden - У пользователя нет прав администратора.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка авторизации.","type":"string"}}}}}},"404":{"description":"Not Found - Нет соответствующих сессий или ресурс недоступен.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение о том, что сессии не удалось получить.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Непредвиденная ошибка на сервере.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Подробное сообщение об ошибке сервера.","type":"string"}}}}}}},"tags":["session-management"]}}}}
```

## Обновить данные сессии

> Обновляет детали сессии (например, заголовок и временную метку created\_at) для конкретной сессии. Требует прав администратора и действующего платежного плана.\
> \### Параметр пути\
> \- \*\*session\_id\*\* \*(строка, обязательно)\*: Уникальный идентификатор сессии.\
> \### Тело запроса (JSON)\
> \- \*\*title\*\* \*(строка, опционально)\*: Обновленный заголовок для сессии.\
> \- \*\*created\_at\*\* \*(строка, опционально, формат: \`ГГГГ-ММ-ДД ЧЧ:ММ:СС\`)\*: Обновленная временная метка сессии.\
> \### Структура ответа\
> При успешном выполнении ответ содержит:\
> \- \*\*success\*\* \*(строка)\*: Подтверждение обновления сессии.\
> \### Ошибки\
> \- \*\*400 Bad Request\*\*: Некорректные параметры запроса или отсутствующие обязательные данные.\
> \- \*\*401 Unauthorized\*\*: Отсутствует или недействителен токен доступа.\
> \- \*\*403 Forbidden\*\*: Недостаточно прав или недействительный платежный план.\
> \- \*\*404 Not Found\*\*: Сессия не найдена.\
> \- \*\*500 Internal Server Error\*\*: Непредвиденная ошибка.<br>

```json
{"openapi":"3.1.1","info":{"title":"AIKYNETIX WEB API","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Укажите ваш API-ключ в заголовке: API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}":{"put":{"operationId":"session-management_sessions_update","summary":"Обновить данные сессии","description":"Обновляет детали сессии (например, заголовок и временную метку created_at) для конкретной сессии. Требует прав администратора и действующего платежного плана.\n### Параметр пути\n- **session_id** *(строка, обязательно)*: Уникальный идентификатор сессии.\n### Тело запроса (JSON)\n- **title** *(строка, опционально)*: Обновленный заголовок для сессии.\n- **created_at** *(строка, опционально, формат: `ГГГГ-ММ-ДД ЧЧ:ММ:СС`)*: Обновленная временная метка сессии.\n### Структура ответа\nПри успешном выполнении ответ содержит:\n- **success** *(строка)*: Подтверждение обновления сессии.\n### Ошибки\n- **400 Bad Request**: Некорректные параметры запроса или отсутствующие обязательные данные.\n- **401 Unauthorized**: Отсутствует или недействителен токен доступа.\n- **403 Forbidden**: Недостаточно прав или недействительный платежный план.\n- **404 Not Found**: Сессия не найдена.\n- **500 Internal Server Error**: Непредвиденная ошибка.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID сессии, данные которой будут обновлены.","required":true}],"responses":{"200":{"description":"Сессия успешно обновлена.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"description":"Сообщение подтверждения.","type":"string"}}}}}},"400":{"description":"Bad Request - Некорректные параметры или отсутствующие данные.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке, объясняющее причину некорректного запроса.","type":"string"}}}}}},"401":{"description":"Unauthorized - Отсутствует или недействителен токен доступа.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка, указывающая, что действительный API-KEY токен не был предоставлен.","type":"string"}}}}}},"403":{"description":"Forbidden - У пользователя недостаточно прав для получения общих метрик.\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка, указывающая на недостаточные права.","type":"string"}}}}}},"404":{"description":"Not Found - Указанный ID сессии не существует.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке, указывающее, что сессия не найдена.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Непредвиденная ошибка на сервере.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке для отладки.","type":"string"}}}}}}},"tags":["session-management"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"description":"Новый заголовок для сессии.","type":"string"},"created_at":{"description":"Обновленная временная метка сессии в формате `ГГГГ-ММ-ДД ЧЧ:ММ:СС`.","type":"string","format":"date-time"}}}}},"required":true}}}}}
```

## Удалить сессию

> Удаляет указанную сессию и все связанные ресурсы, включая данные сессии, видеофайлы, подколлекции и отчеты.\
> \### Параметр пути\
> \- \*\*session\_id\*\* \*(строка, обязательно)\*: Уникальный идентификатор сессии.\
> \### Структура ответа\
> При успешном выполнении ответ содержит:\
> \- \*\*success\*\* \*(строка)\*: Подтверждение удаления сессии.\
> \### Ошибки\
> \- \*\*400 Bad Request\*\*: Некорректные параметры запроса.\
> \- \*\*401 Unauthorized\*\*: Токен недействителен или отсутствует.\
> \- \*\*403 Forbidden\*\*: У пользователя нет прав администратора.\
> \- \*\*404 Not Found\*\*: Сессия не найдена.\
> \- \*\*500 Internal Server Error\*\*: Непредвиденная ошибка.<br>

```json
{"openapi":"3.1.1","info":{"title":"AIKYNETIX WEB API","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Укажите ваш API-ключ в заголовке: API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}":{"delete":{"operationId":"session-management_sessions_delete","summary":"Удалить сессию","description":"Удаляет указанную сессию и все связанные ресурсы, включая данные сессии, видеофайлы, подколлекции и отчеты.\n### Параметр пути\n- **session_id** *(строка, обязательно)*: Уникальный идентификатор сессии.\n### Структура ответа\nПри успешном выполнении ответ содержит:\n- **success** *(строка)*: Подтверждение удаления сессии.\n### Ошибки\n- **400 Bad Request**: Некорректные параметры запроса.\n- **401 Unauthorized**: Токен недействителен или отсутствует.\n- **403 Forbidden**: У пользователя нет прав администратора.\n- **404 Not Found**: Сессия не найдена.\n- **500 Internal Server Error**: Непредвиденная ошибка.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID сессии для удаления.","required":true}],"responses":{"200":{"description":"Сессия успешно удалена.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"description":"Сообщение подтверждения.","type":"string"}}}}}},"400":{"description":"Bad Request - Некорректные параметры или отсутствующие данные.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке, объясняющее причину некорректного запроса.","type":"string"}}}}}},"401":{"description":"Unauthorized - Токен недействителен или истек.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка аутентификации.","type":"string"}}}}}},"403":{"description":"Forbidden - У пользователя недостаточно прав.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка авторизации.","type":"string"}}}}}},"404":{"description":"Not Found - Указанный ID сессии не существует.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке, указывающее, что сессия не найдена.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Непредвиденная ошибка на сервере.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке для отладки.","type":"string"}}}}}}},"tags":["session-management"]}}}}
```

## Получить URL анализированного видео

> Получает URL анализированного видео для конкретной сессии или пытается создать его, если он не существует.\
> \### Параметр пути\
> \- \*\*session\_id\*\* \*(строка, обязательно)\*: Уникальный идентификатор сессии.\
> \### Параметры запроса\
> Эти необязательные флаги определяют тип анализа, если видео не существует:\
> \- \*\*is\_jump\*\* \*(логический, опционально)\*: Указывает, является ли эта сессия для анализа прыжка.\
> \- \*\*is\_weight\*\* \*(логический, опционально)\*: Указывает, является ли эта сессия для анализа тяжелой атлетики.\
> \- \*\*download\*\* \*(логический, опционально)\*: Если \`true\`, возвращает подписанный URL, который заставляет браузер скачать видео вместо его отображения.\
> \### Ответ (HTTP 200)\
> Возвращает JSON-объект с ключом \`analyzed\_video\_url\` при успехе:\
> \`\`\`json {\
> &#x20; "analyzed\_video\_url": "<https://storage.googleapis.com/.../analyzed\\_video.mp4"\\>
> } \`\`\`\
> \### Обработка ошибок\
> \- \*\*400 Bad Request\*\*: Некорректные параметры (например, отсутствующий или неверный UID администратора).\
> \- \*\*401 Unauthorized\*\*: Токен отсутствует или недействителен.\
> \- \*\*403 Forbidden\*\*: У пользователя нет необходимых прав или плана.\
> \- \*\*404 Not Found\*\*: Данные сессии или ресурсы не найдены.\
> \- \*\*500 Internal Server Error\*\*: Непредвиденная ошибка на сервере.\
> \### Безопасность\
> В заголовке \`Authorization\` должен быть указан действительный API-KEY токен.<br>

````json
{"openapi":"3.1.1","info":{"title":"AIKYNETIX WEB API","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Укажите ваш API-ключ в заголовке: API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}/analyzed-video/":{"get":{"operationId":"session-management_sessions_analyzed-video_list","summary":"Получить URL анализированного видео","description":"Получает URL анализированного видео для конкретной сессии или пытается создать его, если он не существует.\n### Параметр пути\n- **session_id** *(строка, обязательно)*: Уникальный идентификатор сессии.\n### Параметры запроса\nЭти необязательные флаги определяют тип анализа, если видео не существует:\n- **is_jump** *(логический, опционально)*: Указывает, является ли эта сессия для анализа прыжка.\n- **is_weight** *(логический, опционально)*: Указывает, является ли эта сессия для анализа тяжелой атлетики.\n- **download** *(логический, опционально)*: Если `true`, возвращает подписанный URL, который заставляет браузер скачать видео вместо его отображения.\n### Ответ (HTTP 200)\nВозвращает JSON-объект с ключом `analyzed_video_url` при успехе:\n```json {\n  \"analyzed_video_url\": \"https://storage.googleapis.com/.../analyzed_video.mp4\"\n} ```\n### Обработка ошибок\n- **400 Bad Request**: Некорректные параметры (например, отсутствующий или неверный UID администратора).\n- **401 Unauthorized**: Токен отсутствует или недействителен.\n- **403 Forbidden**: У пользователя нет необходимых прав или плана.\n- **404 Not Found**: Данные сессии или ресурсы не найдены.\n- **500 Internal Server Error**: Непредвиденная ошибка на сервере.\n### Безопасность\nВ заголовке `Authorization` должен быть указан действительный API-KEY токен.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID сессии, для которой нужно получить или создать анализированное видео.","required":true},{"schema":{"type":"boolean"},"name":"is_jump","in":"query","description":"Указывает, является ли эта сессия для анализа прыжка.","required":false},{"schema":{"type":"boolean"},"name":"is_weight","in":"query","description":"Указывает, является ли эта сессия для анализа тяжелой атлетики.","required":false},{"schema":{"type":"boolean"},"name":"download","in":"query","description":"Если true, возвращает подписанный URL, который заставляет скачать видео.","required":false}],"responses":{"200":{"description":"URL анализированного видео успешно получен.","content":{"application/json":{"schema":{"type":"object","properties":{"analyzed_video_url":{"description":"URL анализированного видео.","type":"string","format":"uri"}}}}}},"400":{"description":"Bad Request - Возможно, некорректные параметры.","content":{"application/json":{"schema":{"description":"Схема ошибки для некорректных запросов (например, неверный UID)","type":"object","properties":{"error":{"type":"string"}}}}}},"401":{"description":"Unauthorized - Токен недействителен или отсутствует.","content":{"application/json":{"schema":{"description":"Схема ошибки для отсутствующего или недействительного токена","type":"object","properties":{"error":{"type":"string"}}}}}},"403":{"description":"Forbidden - У пользователя нет прав или плана.","content":{"application/json":{"schema":{"description":"Схема ошибки для запрещенного доступа","type":"object","properties":{"error":{"type":"string"}}}}}},"404":{"description":"Not Found - Данные сессии или ресурс не найдены.","content":{"application/json":{"schema":{"description":"Схема ошибки для отсутствующей сессии или ресурса","type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Internal Server Error - Ошибка на сервере.","content":{"application/json":{"schema":{"description":"Схема ошибки для непредвиденных сбоев сервера","type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["session-management"]}}}}
````

## Загрузить/сгенерировать анализированное видео

> Загружает или генерирует анализированное видео для конкретной сессии, возвращая его URL.\
> \### Параметр пути\
> \- \*\*session\_id\*\* \*(строка, обязательно)\*: Уникальный идентификатор сессии.\
> \### Тело запроса (JSON)\
> \`\`\`json {\
> &#x20; "is\_jump": true,\
> &#x20; "is\_weight": false\
> } \`\`\`\
> \- \*\*is\_jump\*\* \*(логический, опционально)\*: Если true, обрабатывать как сессию прыжка.\
> \- \*\*is\_weight\*\* \*(логический, опционально)\*: Если true, обрабатывать как сессию тяжелой атлетики.\
> \### Структура ответа (HTTP 200)\
> При успехе возвращает JSON-объект с \`analyzed\_video\_url\`:\
> \`\`\`json {\
> &#x20; "analyzed\_video\_url": "<https://storage.googleapis.com/.../analyzed\\_video.mp4"\\>
> } \`\`\`\
> \### Обработка ошибок\
> \- \*\*400 Bad Request\*\*: Некорректные параметры или сессия уже анализирована.\
> \- \*\*401 Unauthorized\*\*: Токен отсутствует или недействителен.\
> \- \*\*403 Forbidden\*\*: У пользователя нет действительного плана.\
> \- \*\*404 Not Found\*\*: Данные сессии не найдены.\
> \- \*\*500 Internal Server Error\*\*: Непредвиденная ошибка на сервере.\
> \### Безопасность\
> В заголовке \`Authorization\` должен быть указан действительный API-KEY токен.<br>

````json
{"openapi":"3.1.1","info":{"title":"AIKYNETIX WEB API","version":"v2"},"servers":[{"url":"https://api.aikynetix.app"}],"security":[{"Bearer":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header","description":"Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Укажите ваш API-ключ в заголовке: API-KEY: <api_key>"}}},"paths":{"/session-management/sessions/{session_id}/analyzed-video/":{"post":{"operationId":"session-management_sessions_analyzed-video_create","summary":"Загрузить/сгенерировать анализированное видео","description":"Загружает или генерирует анализированное видео для конкретной сессии, возвращая его URL.\n### Параметр пути\n- **session_id** *(строка, обязательно)*: Уникальный идентификатор сессии.\n### Тело запроса (JSON)\n```json {\n  \"is_jump\": true,\n  \"is_weight\": false\n} ```\n- **is_jump** *(логический, опционально)*: Если true, обрабатывать как сессию прыжка.\n- **is_weight** *(логический, опционально)*: Если true, обрабатывать как сессию тяжелой атлетики.\n### Структура ответа (HTTP 200)\nПри успехе возвращает JSON-объект с `analyzed_video_url`:\n```json {\n  \"analyzed_video_url\": \"https://storage.googleapis.com/.../analyzed_video.mp4\"\n} ```\n### Обработка ошибок\n- **400 Bad Request**: Некорректные параметры или сессия уже анализирована.\n- **401 Unauthorized**: Токен отсутствует или недействителен.\n- **403 Forbidden**: У пользователя нет действительного плана.\n- **404 Not Found**: Данные сессии не найдены.\n- **500 Internal Server Error**: Непредвиденная ошибка на сервере.\n### Безопасность\nВ заголовке `Authorization` должен быть указан действительный API-KEY токен.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"ID сессии, для которой нужно загрузить/сгенерировать анализированное видео.","required":true}],"responses":{"200":{"description":"URL анализированного видео успешно сгенерирован или обновлен.","content":{"application/json":{"schema":{"type":"object","properties":{"analyzed_video_url":{"description":"URL нового или обновленного анализированного видео.","type":"string","format":"uri"}}}}}},"400":{"description":"Bad Request - Возможно, некорректные данные сессии или видео уже анализировано.\n","content":{"application/json":{"schema":{"description":"Схема ошибки для некорректных запросов или уже анализированного видео","type":"object","properties":{"error":{"type":"string"}}}}}},"401":{"description":"Unauthorized - Токен отсутствует или недействителен.","content":{"application/json":{"schema":{"description":"Схема ошибки для отсутствующего или недействительного токена","type":"object","properties":{"error":{"type":"string"}}}}}},"403":{"description":"Forbidden - У пользователя нет действительного платежного плана.","content":{"application/json":{"schema":{"description":"Схема ошибки для недостаточных прав плана","type":"object","properties":{"error":{"type":"string"}}}}}},"404":{"description":"Not Found - Сессия не найдена или создание не удалось.","content":{"application/json":{"schema":{"description":"Схема ошибки для отсутствующих данных сессии или ресурса","type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Internal Server Error - Ошибка на сервере.","content":{"application/json":{"schema":{"description":"Схема ошибки для непредвиденных сбоев сервера","type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["session-management"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"is_jump":{"description":"Является ли эта сессия связанной с прыжками.","type":"boolean"},"is_weight":{"description":"Является ли эта сессия связанной с тяжелой атлетикой.","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/ru/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.
