# Прыжки

## Создание новой сессии обработки видео

> Этот эндпоинт позволяет \*\*администратору\*\* (или суб-администратору) загружать \*\*видеофайл\*\* для обработки и создавать новый ресурс "сессии" \*\*от имени другого пользователя\*\*. Сервер вернет \`session\_id\`, который можно использовать для проверки статуса или получения деталей/результатов сессии.\
> \
> \### Тело запроса (Multipart/Form-Data)\
> \
> Необходимо указать следующие поля:\
> \
> \- \*\*user\_id\*\* \*(строка, обязательно)\*: ID пользователя, от имени которого создается сессия.\
> \- \*\*video\*\* \*(файл, обязательно)\*: Исходный видеофайл для обработки.\
> \- \*\*session\_name\*\* \*(строка, опционально)\*: Человекочитаемое название сессии.\
> \- \*\*exercise\*\* \*(строка, обязательно)\*: Название упражнения. Выберите одно из: 'Countermovement Jump' или 'Drop Jump'.\
> \- \*\*body\_joint\_angles\*\* \*(массив строк, опционально)\*: Список названий суставов через запятую (например, 'elbow, knee, ankle'). По умолчанию \['all'], если не указано.\
> \
> \### Структура ответа\
> \
> При успешном выполнении (HTTP 200) ответ содержит JSON-объект с:\
> \
> \- \*\*session\_id\*\* \*(строка)\*: Уникальный идентификатор созданной сессии.\
> \- \*\*title\*\* \*(строка)\*: Название сессии (используется значение по умолчанию, если \`session\_name\` не указан).\
> \
> \### Рабочий процесс\
> 1\. Отправьте \*\*POST\*\*-запрос с типом \`multipart/form-data\`, содержащий обязательные поля \`user\_id\` и \`video\`, а также опциональные поля.\
> 2\. Укажите действительный API-KEY токен в заголовке \`Authorization\`.\
> 3\. Вызывающий должен иметь права администратора для создания сессии от имени другого пользователя.\
> 4\. В случае успеха сервер вернет \`session\_id\` и \`title\`.\
> 5\. При ошибке (например, отсутствие полей, недостаток прав) вернется JSON-объект с ключом \`error\`.\
> \
> \#### Пример cURL (Firebase auth):\
> \
> \`\`\`bash\
> curl -X POST \\\
> &#x20;    -H 'Content-Type: multipart/form-data' \\\
> &#x20;    -H 'Authorization: API-KEY \<YOUR\_ADMIN\_TOKEN>' \\\
> &#x20;    -F 'user\_id=someUserId123' \\\
> &#x20;    -F 'video=@/path/to/video.mp4' \\\
> &#x20;    -F 'session\_name=Custom Session' \\\
> &#x20;    -F 'exercise=Countermovement Jump' \\\
> &#x20;    -F 'body\_joint\_angles=knee, ankle' \\\
> &#x20;    https\://\<backend-link>/jumping/management/sessions/\
> \`\`\`\
> \#### Пример cURL (API KEY):\
> \
> \`\`\`bash\
> curl -X POST \\\
> &#x20;    -H 'Content-Type: multipart/form-data' \\\
> &#x20;    -H 'API-KEY: \<YOUR\_API\_KEY>' \\\
> &#x20;    -F 'user\_id=someUserId123' \\\
> &#x20;    -F 'video=@/path/to/video.mp4' \\\
> &#x20;    -F 'session\_name=Morning Run' \\\
> &#x20;    -F 'exercise=Countermovement Jump' \\\
> &#x20;    -F 'body\_joint\_angles=knee, ankle' \\\
> &#x20;    https\://\<backend-link>/jumping/management/sessions/\
> \`\`\`<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":{"/jumping/sessions/":{"post":{"operationId":"jumping_sessions_create","summary":"Создание новой сессии обработки видео","description":"Этот эндпоинт позволяет **администратору** (или суб-администратору) загружать **видеофайл** для обработки и создавать новый ресурс \"сессии\" **от имени другого пользователя**. Сервер вернет `session_id`, который можно использовать для проверки статуса или получения деталей/результатов сессии.\n\n### Тело запроса (Multipart/Form-Data)\n\nНеобходимо указать следующие поля:\n\n- **user_id** *(строка, обязательно)*: ID пользователя, от имени которого создается сессия.\n- **video** *(файл, обязательно)*: Исходный видеофайл для обработки.\n- **session_name** *(строка, опционально)*: Человекочитаемое название сессии.\n- **exercise** *(строка, обязательно)*: Название упражнения. Выберите одно из: 'Countermovement Jump' или 'Drop Jump'.\n- **body_joint_angles** *(массив строк, опционально)*: Список названий суставов через запятую (например, 'elbow, knee, ankle'). По умолчанию ['all'], если не указано.\n\n### Структура ответа\n\nПри успешном выполнении (HTTP 200) ответ содержит JSON-объект с:\n\n- **session_id** *(строка)*: Уникальный идентификатор созданной сессии.\n- **title** *(строка)*: Название сессии (используется значение по умолчанию, если `session_name` не указан).\n\n### Рабочий процесс\n1. Отправьте **POST**-запрос с типом `multipart/form-data`, содержащий обязательные поля `user_id` и `video`, а также опциональные поля.\n2. Укажите действительный API-KEY токен в заголовке `Authorization`.\n3. Вызывающий должен иметь права администратора для создания сессии от имени другого пользователя.\n4. В случае успеха сервер вернет `session_id` и `title`.\n5. При ошибке (например, отсутствие полей, недостаток прав) вернется JSON-объект с ключом `error`.\n\n#### Пример cURL (Firebase auth):\n\n```bash\ncurl -X POST \\\n     -H 'Content-Type: multipart/form-data' \\\n     -H 'Authorization: API-KEY <YOUR_ADMIN_TOKEN>' \\\n     -F 'user_id=someUserId123' \\\n     -F 'video=@/path/to/video.mp4' \\\n     -F 'session_name=Custom Session' \\\n     -F 'exercise=Countermovement Jump' \\\n     -F 'body_joint_angles=knee, ankle' \\\n     https://<backend-link>/jumping/management/sessions/\n```\n#### Пример cURL (API KEY):\n\n```bash\ncurl -X POST \\\n     -H 'Content-Type: multipart/form-data' \\\n     -H 'API-KEY: <YOUR_API_KEY>' \\\n     -F 'user_id=someUserId123' \\\n     -F 'video=@/path/to/video.mp4' \\\n     -F 'session_name=Morning Run' \\\n     -F 'exercise=Countermovement Jump' \\\n     -F 'body_joint_angles=knee, ankle' \\\n     https://<backend-link>/jumping/management/sessions/\n```\n","responses":{"200":{"description":"Сессия обработки видео успешно создана (HTTP 200).","content":{"application/json":{"schema":{"required":["session_id","title"],"type":"object","properties":{"session_id":{"description":"Уникальный идентификатор созданной сессии.","type":"string"},"title":{"description":"Название сессии (значение по умолчанию, если не указано).","type":"string"}}}}}},"400":{"description":"Неверный запрос - возможно, отсутствует `user_id`, `video` или неверные данные формы.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Подробное сообщение об ошибке.","type":"string"}}}}}},"401":{"description":"Неавторизован - отсутствует или недействителен токен доступа.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка, указывающая на отсутствие или недействительность токена.","type":"string"}}}}}},"403":{"description":"Запрещено - у пользователя нет прав администратора для создания сессий от имени других.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Ошибка, указывающая на недостаточные привилегии.","type":"string"}}}}}},"404":{"description":"Не найдено - указывает на проблемы бизнес-логики или ограничения ресурсов (например, лимит сессий).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Сообщение об ошибке, описывающее проблему.","type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера - непредвиденная ошибка на сервере.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Подробное сообщение об ошибке, указывающее на сбой на стороне сервера.","type":"string"}}}}}}},"tags":["jumping"],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"user_id":{"type":"string","description":"**Обязательно.** ID пользователя, для которого создается сессия (текстовое поле формы)."},"video":{"type":"string","description":"**Обязательно.** Исходный видеофайл для обработки (поле формы типа: файл)."},"session_name":{"type":"string","description":"**Опционально.** Описательное название сессии (текстовое поле формы)."},"exercise":{"type":"string","description":"**Обязательно.** Название упражнения. Выберите одно из: 'Countermovement Jump' или 'Drop Jump'."},"body_joint_angles":{"type":"array","description":"**Опционально.** Список названий суставов через запятую. Доступные значения: `'ankle'`, `'knee'`, `'elbow'`, `'hip'`, `'shoulder'`. Пример: `ankle,knee,hip`"}},"required":["user_id","video","exercise"]}}}}}}}}
````

## Получение данных сессии прыжков

> Получение детальной информации о конкретной обработанной сессии прыжков с использованием уникального \`session\_id\`.\
> \
> Опционально можно установить \`?demo=true\` для получения предопределенной демо-сессии для активности Jump.\
> \
> \*\*Пример использования:\*\*\
> Отправьте GET-запрос с параметром пути \`session\_id\` для получения деталей сессии.\
> \
> \*\*Параметры:\*\*\
> \- \`session\_id\` \*(строка, обязательно)\*: Уникальный идентификатор сессии, данные которой запрашиваются.\
> \
> \- \`demo\` \*(логический, опционально)\*: Установите \`true\` для возврата предопределенной демо-сессии для Jump.\
> \
> \*\*Тип данных ответа:\*\*\
> \- \*\*200 OK:\*\* JSON-объект со следующей структурой:\
> &#x20; \- \`angles\` \*(объект)\*: Содержит массивы различных измерений углов:\
> &#x20;   \- \`hip\_intersection\_angle\` \*(массив чисел)\*: Массив углов пересечения бедер.\
> &#x20;   \- \`ank\_angle\` \*(массив чисел)\*: Массив углов голеностопа.\
> &#x20;   \- \`rkne\_angle\` \*(массив чисел)\*: Массив углов правого колена.\
> &#x20;   \- \`lkne\_angle\` \*(массив чисел)\*: Массив углов левого колена.\
> &#x20;   \- \`kne\_angle\` \*(массив чисел)\*: Массив углов коленей.\
> &#x20;   \- \`rank\_angle\` \*(массив чисел)\*: Массив углов правого голеностопа.\
> &#x20;   \- \`lank\_angle\` \*(массив чисел)\*: Массив углов левого голеностопа.\
> &#x20; \- \`whole\_report\_metrics\` \*(объект)\*: Содержит массивы различных метрик:\
> &#x20;   \- \`hipy\` \*(массив чисел)\*: Массив значений высоты бедер.\
> &#x20;   \- \`grf\` \*(массив чисел)\*: Массив сил реакции опоры.\
> &#x20;   \- \`vhipy\` \*(массив чисел)\*: Массив скоростей бедер.\
> &#x20;   \- \`toey\` \*(массив чисел)\*: Массив позиций пальцев ног по оси Y.\
> &#x20;   \- \`ahipy\` \*(массив чисел)\*: Массив средних позиций бедер по оси Y.\
> &#x20;   \- \`vtoey\` \*(массив чисел)\*: Массив вертикальных скоростей пальцев ног.\
> &#x20; \- \`all\_timestamps\` \*(массив чисел)\*: Массив временных меток для каждого кадра.\
> &#x20; \- \`analyzed\_video\_url\` \*(строка, URI)\*: URL анализированного видео.\
> &#x20; \- \`video\_url\` \*(строка, URI)\*: URL исходного видео.\
> &#x20; \- \`created\_at\` \*(объект)\*: Содержит дату и время создания сессии:\
> &#x20;   \- \`date\` \*(строка, формат: YYYY-MM-DD)\*: Дата создания.\
> &#x20;   \- \`time\` \*(строка, формат: HH:MM AM/PM)\*: Время создания.\
> &#x20; \- \`exercise\` \*(строка)\*: Тип упражнения, анализируемого в сессии.\
> &#x20; \- \`user\_name\` \*(строка)\*: Имя пользователя, связанного с сессией.\
> &#x20; \- \`activity\` \*(строка)\*: Тип активности, анализируемой в сессии.\
> &#x20; \- \`title\` \*(строка)\*: Название сессии.\
> &#x20; \- \`end\_frames\` \*(массив целых чисел)\*: Массив номеров кадров, где заканчивается каждый сегмент.\
> &#x20; \- \`metrics\` \*(объект)\*: Содержит различные метрики производительности в виде массивов чисел.

```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":{"/jumping/sessions/{session_id}/":{"get":{"operationId":"jumping_sessions_read","summary":"Получение данных сессии прыжков","description":"Получение детальной информации о конкретной обработанной сессии прыжков с использованием уникального `session_id`.\n\nОпционально можно установить `?demo=true` для получения предопределенной демо-сессии для активности Jump.\n\n**Пример использования:**\nОтправьте GET-запрос с параметром пути `session_id` для получения деталей сессии.\n\n**Параметры:**\n- `session_id` *(строка, обязательно)*: Уникальный идентификатор сессии, данные которой запрашиваются.\n\n- `demo` *(логический, опционально)*: Установите `true` для возврата предопределенной демо-сессии для Jump.\n\n**Тип данных ответа:**\n- **200 OK:** JSON-объект со следующей структурой:\n  - `angles` *(объект)*: Содержит массивы различных измерений углов:\n    - `hip_intersection_angle` *(массив чисел)*: Массив углов пересечения бедер.\n    - `ank_angle` *(массив чисел)*: Массив углов голеностопа.\n    - `rkne_angle` *(массив чисел)*: Массив углов правого колена.\n    - `lkne_angle` *(массив чисел)*: Массив углов левого колена.\n    - `kne_angle` *(массив чисел)*: Массив углов коленей.\n    - `rank_angle` *(массив чисел)*: Массив углов правого голеностопа.\n    - `lank_angle` *(массив чисел)*: Массив углов левого голеностопа.\n  - `whole_report_metrics` *(объект)*: Содержит массивы различных метрик:\n    - `hipy` *(массив чисел)*: Массив значений высоты бедер.\n    - `grf` *(массив чисел)*: Массив сил реакции опоры.\n    - `vhipy` *(массив чисел)*: Массив скоростей бедер.\n    - `toey` *(массив чисел)*: Массив позиций пальцев ног по оси Y.\n    - `ahipy` *(массив чисел)*: Массив средних позиций бедер по оси Y.\n    - `vtoey` *(массив чисел)*: Массив вертикальных скоростей пальцев ног.\n  - `all_timestamps` *(массив чисел)*: Массив временных меток для каждого кадра.\n  - `analyzed_video_url` *(строка, URI)*: URL анализированного видео.\n  - `video_url` *(строка, URI)*: URL исходного видео.\n  - `created_at` *(объект)*: Содержит дату и время создания сессии:\n    - `date` *(строка, формат: YYYY-MM-DD)*: Дата создания.\n    - `time` *(строка, формат: HH:MM AM/PM)*: Время создания.\n  - `exercise` *(строка)*: Тип упражнения, анализируемого в сессии.\n  - `user_name` *(строка)*: Имя пользователя, связанного с сессией.\n  - `activity` *(строка)*: Тип активности, анализируемой в сессии.\n  - `title` *(строка)*: Название сессии.\n  - `end_frames` *(массив целых чисел)*: Массив номеров кадров, где заканчивается каждый сегмент.\n  - `metrics` *(объект)*: Содержит различные метрики производительности в виде массивов чисел.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Уникальный идентификатор сессии.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Установите `true` для получения демо-сессии вместо реальной.","required":false}],"responses":{"200":{"description":"Данные сессии успешно получены.","content":{"application/json":{"schema":{"required":["angles","whole_report_metrics","all_timestamps","analyzed_video_url","video_url","created_at","user_name","exercise","activity","title","end_frames","all_end_frames","metrics","all_metrics"],"type":"object","properties":{"angles":{"required":["hip_intersection_angle","ank_angle","rkne_angle","lkne_angle","kne_angle","rank_angle","lank_angle"],"type":"object","properties":{"hip_intersection_angle":{"description":"Массив углов пересечения бедер.","type":"array","items":{"type":"number"}},"ank_angle":{"description":"Массив углов голеностопа.","type":"array","items":{"type":"number"}},"rkne_angle":{"description":"Массив углов правого колена.","type":"array","items":{"type":"number"}},"lkne_angle":{"description":"Массив углов левого колена.","type":"array","items":{"type":"number"}},"kne_angle":{"description":"Массив углов коленей.","type":"array","items":{"type":"number"}},"rank_angle":{"description":"Массив углов правого голеностопа.","type":"array","items":{"type":"number"}},"lank_angle":{"description":"Массив углов левого голеностопа.","type":"array","items":{"type":"number"}}}},"whole_report_metrics":{"required":["hipy","grf","vhipy","toey","ahipy","vtoey"],"type":"object","properties":{"hipy":{"description":"Массив значений высоты бедер.","type":"array","items":{"type":"number"}},"grf":{"description":"Массив сил реакции опоры.","type":"array","items":{"type":"number"}},"vhipy":{"description":"Массив скоростей бедер.","type":"array","items":{"type":"number"}},"toey":{"description":"Массив позиций пальцев ног по оси Y.","type":"array","items":{"type":"number"}},"ahipy":{"description":"Массив средних позиций бедер по оси Y.","type":"array","items":{"type":"number"}},"vtoey":{"description":"Массив вертикальных скоростей пальцев ног.","type":"array","items":{"type":"number"}}}},"all_timestamps":{"description":"Массив временных меток для каждого кадра.","type":"array","items":{"type":"number"}},"analyzed_video_url":{"description":"URL анализированного видео.","type":"string","format":"uri"},"video_url":{"description":"URL исходного видео.","type":"string","format":"uri"},"created_at":{"description":"Объект, содержащий дату и время создания сессии.","required":["date","time"],"type":"object","properties":{"date":{"description":"Дата создания сессии в формате 'YYYY-MM-DD'.","type":"string","format":"date"},"time":{"description":"Время создания сессии в формате 'HH:MM AM/PM'.","type":"string","format":"time"}}},"exercise":{"description":"Тип упражнения, анализируемого в сессии.","type":"string"},"user_name":{"description":"Имя пользователя, связанного с сессией.","type":"string"},"activity":{"description":"Тип активности, анализируемой в сессии.","type":"string"},"title":{"description":"Название сессии.","type":"string"},"end_frames":{"description":"Массив номеров кадров, где заканчивается каждый сегмент.","type":"array","items":{"type":"integer"}},"all_end_frames":{"description":"Массив всех номеров кадров, где заканчиваются сегменты.","type":"array","items":{"type":"integer"}},"metrics":{"description":"Объект, содержащий различные метрики производительности.","type":"object","additionalProperties":{"description":"Массив числовых значений для каждой метрики.","type":"array","items":{"type":"number"}}},"all_metrics":{"description":"Объект, содержащий все метрики производительности.","type":"object","additionalProperties":{"description":"Массив числовых значений для каждой метрики.","type":"array","items":{"type":"number"}}}}}}}},"400":{"description":"Неверный запрос - указан недействительный `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"401":{"description":"Неавторизован - отсутствует или недействителен токен доступа.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"403":{"description":"Запрещено - у пользователя недостаточно прав.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"404":{"description":"Не найдено - данные сессии для указанного `session_id` не найдены.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера - произошла непредвиденная ошибка.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Экспорт данных сессии прыжков

> Получение детальной информации о конкретной сессии прыжков с использованием уникального \`session\_id\`.\
> \
> Опционально можно установить \`?demo=true\` для получения предопределенной демо-сессии для активности Jump.\
> \
> \*\*Пример использования:\*\*\
> Отправьте GET-запрос с параметром пути \`session\_id\` для получения деталей сессии.\
> \
> \*\*Параметры:\*\*\
> \- \`session\_id\` \*(строка, обязательно)\*: Уникальный идентификатор сессии, данные которой запрашиваются.\
> \- \`demo\` \*(логический, опционально)\*: Установите \`true\` для получения предопределенной демо-сессии для Jump.\
> \*\*Примечание:\*\* Этот эндпоинт включает в ответ координаты ключевых точек.\
> \
> \*\*Тип данных ответа:\*\*\
> \- \*\*200 OK:\*\* JSON-объект со следующей структурой:\
> &#x20; \- \`keypoints\` \*(объект)\*: Содержит массивы координат ключевых точек.\
> &#x20;   \- \`lknev\` \*(массив чисел)\*: Массив координат левого колена.\
> &#x20;   \- \`ltoev\` \*(массив чисел)\*: Массив координат левого пальца ноги.\
> &#x20;   \- \`relbv\` \*(массив чисел)\*: Массив координат правого локтя.\
> &#x20;   \- \`rtoey\` \*(массив чисел)\*: Массив координат правого пальца ноги.\
> &#x20;   \- \`headv\` \*(массив чисел)\*: Массив координат головы.\
> &#x20;   \- \`rearv\` \*(массив чисел)\*: Массив координат правого уха.\
> &#x20;   \- \`rshox\` \*(массив чисел)\*: Массив координат правого плеча.\
> &#x20;   \- \`etc\` \*(массив чисел)\*: Массив всех остальных ключевых точек.\
> &#x20; \- \`angles\` \*(объект)\*: Содержит массивы различных измерений углов.\
> &#x20;   \- \`hip\_intersection\_angle\` \*(массив чисел)\*: Углы пересечения бедер.\
> &#x20;   \- \`ank\_angle\` \*(массив чисел)\*: Углы голеностопа.\
> &#x20;   \- \`rkne\_angle\` \*(массив чисел)\*: Углы правого колена.\
> &#x20;   \- \`lkne\_angle\` \*(массив чисел)\*: Углы левого колена.\
> &#x20;   \- \`kne\_angle\` \*(массив чисел)\*: Углы коленей.\
> &#x20;   \- \`rank\_angle\` \*(массив чисел)\*: Углы правого голеностопа.\
> &#x20;   \- \`lank\_angle\` \*(массив чисел)\*: Углы левого голеностопа.\
> &#x20; \- \`all\_timestamps\` \*(массив чисел)\*: Временные метки для каждого кадра.\
> &#x20; \- \`analyzed\_video\_url\` \*(строка, URI)\*: URL анализированного видео.\
> &#x20; \- \`video\_url\` \*(строка, URI)\*: URL исходного видео.\
> &#x20; \- \`created\_at\` \*(объект)\*: Содержит дату и время создания сессии.\
> &#x20;   \- \`date\` \*(строка, формат: YYYY-MM-DD)\*: Дата создания.\
> &#x20;   \- \`time\` \*(строка, формат: HH:MM AM/PM)\*: Время создания.\
> &#x20; \- \`user\_name\` \*(строка)\*: Имя пользователя, связанного с сессией.\
> &#x20; \- \`activity\` \*(строка)\*: Тип анализируемой активности.\
> &#x20; \- \`title\` \*(строка)\*: Название сессии.\
> &#x20; \- \`end\_frames\` \*(массив целых чисел)\*: Номера кадров, где заканчивается каждый сегмент.\
> &#x20; \- \`metrics\` \*(объект)\*: Содержит различные метрики производительности в виде массивов чисел.

```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":{"/jumping/sessions/{session_id}/export/":{"get":{"operationId":"jumping_sessions_export_list","summary":"Экспорт данных сессии прыжков","description":"Получение детальной информации о конкретной сессии прыжков с использованием уникального `session_id`.\n\nОпционально можно установить `?demo=true` для получения предопределенной демо-сессии для активности Jump.\n\n**Пример использования:**\nОтправьте GET-запрос с параметром пути `session_id` для получения деталей сессии.\n\n**Параметры:**\n- `session_id` *(строка, обязательно)*: Уникальный идентификатор сессии, данные которой запрашиваются.\n- `demo` *(логический, опционально)*: Установите `true` для получения предопределенной демо-сессии для Jump.\n**Примечание:** Этот эндпоинт включает в ответ координаты ключевых точек.\n\n**Тип данных ответа:**\n- **200 OK:** JSON-объект со следующей структурой:\n  - `keypoints` *(объект)*: Содержит массивы координат ключевых точек.\n    - `lknev` *(массив чисел)*: Массив координат левого колена.\n    - `ltoev` *(массив чисел)*: Массив координат левого пальца ноги.\n    - `relbv` *(массив чисел)*: Массив координат правого локтя.\n    - `rtoey` *(массив чисел)*: Массив координат правого пальца ноги.\n    - `headv` *(массив чисел)*: Массив координат головы.\n    - `rearv` *(массив чисел)*: Массив координат правого уха.\n    - `rshox` *(массив чисел)*: Массив координат правого плеча.\n    - `etc` *(массив чисел)*: Массив всех остальных ключевых точек.\n  - `angles` *(объект)*: Содержит массивы различных измерений углов.\n    - `hip_intersection_angle` *(массив чисел)*: Углы пересечения бедер.\n    - `ank_angle` *(массив чисел)*: Углы голеностопа.\n    - `rkne_angle` *(массив чисел)*: Углы правого колена.\n    - `lkne_angle` *(массив чисел)*: Углы левого колена.\n    - `kne_angle` *(массив чисел)*: Углы коленей.\n    - `rank_angle` *(массив чисел)*: Углы правого голеностопа.\n    - `lank_angle` *(массив чисел)*: Углы левого голеностопа.\n  - `all_timestamps` *(массив чисел)*: Временные метки для каждого кадра.\n  - `analyzed_video_url` *(строка, URI)*: URL анализированного видео.\n  - `video_url` *(строка, URI)*: URL исходного видео.\n  - `created_at` *(объект)*: Содержит дату и время создания сессии.\n    - `date` *(строка, формат: YYYY-MM-DD)*: Дата создания.\n    - `time` *(строка, формат: HH:MM AM/PM)*: Время создания.\n  - `user_name` *(строка)*: Имя пользователя, связанного с сессией.\n  - `activity` *(строка)*: Тип анализируемой активности.\n  - `title` *(строка)*: Название сессии.\n  - `end_frames` *(массив целых чисел)*: Номера кадров, где заканчивается каждый сегмент.\n  - `metrics` *(объект)*: Содержит различные метрики производительности в виде массивов чисел.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Уникальный идентификатор сессии.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Установите `true` для получения демо-сессии вместо реальной.","required":false}],"responses":{"200":{"description":"Данные сессии успешно получены.","content":{"application/json":{"schema":{"required":["keypoints","angles","all_timestamps","analyzed_video_url","video_url","created_at","user_name","activity","title","end_frames","metrics"],"type":"object","properties":{"keypoints":{"required":["lknev","ltoev","relbv","rtoey","headv","rearv","rshox","etc"],"type":"object","properties":{"lknev":{"description":"Массив координат левого колена.","type":"array","items":{"type":"number"}},"ltoev":{"description":"Массив координат левого пальца ноги.","type":"array","items":{"type":"number"}},"relbv":{"description":"Массив координат правого локтя.","type":"array","items":{"type":"number"}},"rtoey":{"description":"Массив координат правого пальца ноги.","type":"array","items":{"type":"number"}},"headv":{"description":"Массив координат головы.","type":"array","items":{"type":"number"}},"rearv":{"description":"Массив координат правого уха.","type":"array","items":{"type":"number"}},"rshox":{"description":"Массив координат правого плеча.","type":"array","items":{"type":"number"}},"etc":{"description":"Все остальные ключевые точки.","type":"array","items":{"type":"number"}}}},"angles":{"required":["hip_intersection_angle","ank_angle","rkne_angle","lkne_angle","kne_angle","rank_angle","lank_angle"],"type":"object","properties":{"hip_intersection_angle":{"description":"Массив углов пересечения бедер.","type":"array","items":{"type":"number"}},"ank_angle":{"description":"Массив углов голеностопа.","type":"array","items":{"type":"number"}},"rkne_angle":{"description":"Массив углов правого колена.","type":"array","items":{"type":"number"}},"lkne_angle":{"description":"Массив углов левого колена.","type":"array","items":{"type":"number"}},"kne_angle":{"description":"Массив углов коленей.","type":"array","items":{"type":"number"}},"rank_angle":{"description":"Массив углов правого голеностопа.","type":"array","items":{"type":"number"}},"lank_angle":{"description":"Массив углов левого голеностопа.","type":"array","items":{"type":"number"}}}},"all_timestamps":{"description":"Массив временных меток для каждого кадра.","type":"array","items":{"type":"number"}},"analyzed_video_url":{"description":"URL анализированного видео.","type":"string","format":"uri"},"video_url":{"description":"URL исходного видео.","type":"string","format":"uri"},"created_at":{"description":"Объект, содержащий дату и время создания сессии.","required":["date","time"],"type":"object","properties":{"date":{"description":"Дата создания сессии в формате 'YYYY-MM-DD'.","type":"string","format":"date"},"time":{"description":"Время создания сессии в формате 'HH:MM AM/PM'.","type":"string","format":"time"}}},"user_name":{"description":"Имя пользователя, связанного с сессией.","type":"string"},"activity":{"description":"Тип активности, анализируемой в сессии.","type":"string"},"title":{"description":"Название сессии.","type":"string"},"end_frames":{"description":"Массив номеров кадров, где заканчивается каждый сегмент.","type":"array","items":{"type":"integer"}},"metrics":{"description":"Объект, содержащий различные метрики производительности.","type":"object","additionalProperties":{"description":"Массив числовых значений для каждой метрики.","type":"array","items":{"type":"number"}}}}}}}},"400":{"description":"Неверный запрос - указан недействительный `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"401":{"description":"Неавторизован - отсутствует или недействителен токен доступа.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"403":{"description":"Запрещено - у пользователя недостаточно прав.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"404":{"description":"Не найдено - данные сессии для указанного `session_id` не найдены.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера - произошла непредвиденная ошибка.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Получить отчет анализа прыжка

> \### Получение отчета анализа вертикального прыжка\
> \
> Этот эндпоинт позволяет пользователям получить подробный отчет анализа для конкретной сессии вертикального прыжка. Отчет включает графические данные, информацию о фазах, данные пользователя и дополнительные комментарии для глубокого понимания производительности пользователя во время сессии.\
> \
> \*\*Пример использования:\*\*\
> Отправьте \`POST\` запрос на \`/jumping/{session\_id}/jump-analysis/\`, где \`{session\_id}\` - уникальный идентификатор сессии.\
> \
> \*\*Параметры:\*\*\
> \
> \- \`session\_id\` \*(строка, обязательно)\*: Уникальный идентификатор сессии, для которой запрашивается отчет.\
> \
> \- \`demo\` \*(булево, опционально)\*: Установите \`true\` для получения предопределенного демо-отчета вместо реальной сессии.\
> \
> \*\*Структура ответа:\*\*\
> При успешном запросе эндпоинт возвращает JSON-объект, содержащий следующие разделы:\
> \
> 1\. \*\*Упражнение\*\*: Название выполненного упражнения во время сессии.\
> 2\. \*\*Графические данные\*\*: Визуальные представления различных метрик, собранных во время сессии.\
> 3\. \*\*Информация о кадрах\*\*: Детали о видео кадрах, связанных с сессией.\
> 4\. \*\*Данные фаз\*\*: Информация о различных фазах вертикального прыжка.\
> 5\. \*\*Информация о пользователе\*\*: Персональные данные пользователя.\
> 6\. \*\*Дата сессии\*\*: Дата проведения сессии.\
> 7\. \*\*Комментарии\*\*: Обратная связь и комментарии на основе производительности во время сессии.\
> \
> \*\*Подробное описание полей ответа:\*\*\
> \- \*\*exercise\*\*: Название выполненного упражнения.\
> \- \*\*graph\_data\*\*: Содержит вложенные объекты для каждой метрики (например, hip\_height, hip\_speed) с точками данных во времени.\
> \- \*\*min\_frame\*\* & \*\*max\_frame\*\*: Указывают диапазон анализируемых кадров в видео сессии.\
> \- \*\*phase\_data\*\*: Предоставляет детальную информацию о каждой фазе прыжка, включая видео кадры, фазы графика и связанные изображения.\
> \- \*\*user\_information\*\*: Включает имя, возраст, вес, рост и пол пользователя.\
> \- \*\*session\_date\*\*: Дата сессии в формате \`ДД/ММ/ГГГГ\`.\
> \- \*\*comments\*\*: Содержит обратную связь, связанную с конкретными метриками, такими как мощность и сила реакции опоры (grf).\
> \
> \*\*Примечание:\*\* Убедитесь, что предоставленный \`session\_id\` действителен и соответствует существующей сессии в системе.

```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":{"/jumping/sessions/{session_id}/jump-analysis/":{"post":{"operationId":"jumping_sessions_jump-analysis_create","summary":"Получить отчет анализа прыжка","description":"### Получение отчета анализа вертикального прыжка\n\nЭтот эндпоинт позволяет пользователям получить подробный отчет анализа для конкретной сессии вертикального прыжка. Отчет включает графические данные, информацию о фазах, данные пользователя и дополнительные комментарии для глубокого понимания производительности пользователя во время сессии.\n\n**Пример использования:**\nОтправьте `POST` запрос на `/jumping/{session_id}/jump-analysis/`, где `{session_id}` - уникальный идентификатор сессии.\n\n**Параметры:**\n\n- `session_id` *(строка, обязательно)*: Уникальный идентификатор сессии, для которой запрашивается отчет.\n\n- `demo` *(булево, опционально)*: Установите `true` для получения предопределенного демо-отчета вместо реальной сессии.\n\n**Структура ответа:**\nПри успешном запросе эндпоинт возвращает JSON-объект, содержащий следующие разделы:\n\n1. **Упражнение**: Название выполненного упражнения во время сессии.\n2. **Графические данные**: Визуальные представления различных метрик, собранных во время сессии.\n3. **Информация о кадрах**: Детали о видео кадрах, связанных с сессией.\n4. **Данные фаз**: Информация о различных фазах вертикального прыжка.\n5. **Информация о пользователе**: Персональные данные пользователя.\n6. **Дата сессии**: Дата проведения сессии.\n7. **Комментарии**: Обратная связь и комментарии на основе производительности во время сессии.\n\n**Подробное описание полей ответа:**\n- **exercise**: Название выполненного упражнения.\n- **graph_data**: Содержит вложенные объекты для каждой метрики (например, hip_height, hip_speed) с точками данных во времени.\n- **min_frame** & **max_frame**: Указывают диапазон анализируемых кадров в видео сессии.\n- **phase_data**: Предоставляет детальную информацию о каждой фазе прыжка, включая видео кадры, фазы графика и связанные изображения.\n- **user_information**: Включает имя, возраст, вес, рост и пол пользователя.\n- **session_date**: Дата сессии в формате `ДД/ММ/ГГГГ`.\n- **comments**: Содержит обратную связь, связанную с конкретными метриками, такими как мощность и сила реакции опоры (grf).\n\n**Примечание:** Убедитесь, что предоставленный `session_id` действителен и соответствует существующей сессии в системе.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Уникальный идентификатор сессии.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Установите `true` для получения демо-отчета.","required":false}],"responses":{"200":{"description":"Успешно получен отчет анализа прыжка.","content":{"application/json":{"schema":{"required":["exercise","graph_data","min_frame","max_frame","phase_data","user_information","session_date","comments"],"type":"object","properties":{"exercise":{"description":"Для какого упражнения предназначен этот отчет.","type":"string","enum":["Countermovement Jump","Drop Jump"]},"graph_data":{"description":"Временные ряды метрик для каждого прыжка.","type":"object","properties":{"hip_height":{"description":"Вертикальное смещение бедра во времени.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"hip_speed":{"description":"Вертикальная скорость бедра во времени.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"hip_trajectory":{"description":"Траектория бедра для нескольких прыжков.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"hip_velocity":{"description":"Скорость бедра для нескольких прыжков.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"toe_trajectory":{"description":"Траектория носка для нескольких прыжков.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"grf":{"description":"Данные силы реакции опоры.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"power":{"description":"Данные мощности.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"kne_angle":{"description":"Угол колена во времени.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"ank_angle":{"description":"Угол голеностопа во времени.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}},"hip_angle":{"description":"Угол бедра во времени.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Временные метки для точек данных.","type":"array","items":{"type":"number"}},"data":{"description":"Значения метрик в эти моменты времени.","type":"array","items":{"type":"number"}}}}}},"additionalProperties":false},"min_frame":{"description":"Минимальный номер кадра в видео.","type":"integer"},"max_frame":{"description":"Максимальный номер кадра в видео.","type":"integer"},"phase_data":{"description":"Детальная информация о каждой фазе прыжка.","required":["start_of_preparation","braking","zero_velocity","takeoff","peak","landing","damping","recuperation"],"type":"object","properties":{"start_of_preparation":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}},"braking":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}},"zero_velocity":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}},"takeoff":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}},"peak":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}},"landing":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}},"damping":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}},"recuperation":{"required":["video_frame","graph_phase","image_url"],"type":"object","properties":{"video_frame":{"type":"integer"},"graph_phase":{"type":"integer"},"image_url":{"type":"string","format":"uri"}}}}},"user_information":{"description":"Персональные данные пользователя.","required":["name","age","weight","height","gender"],"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer"},"weight":{"type":"number"},"height":{"type":"number"},"gender":{"type":"string"}}},"session_date":{"description":"Дата сессии (ДД/ММ/ГГГГ).","type":"string","format":"date"},"comments":{"description":"Комментарии обратной связи на основе метрик сессии.","type":"object","properties":{"power":{"type":"string"},"grf":{"type":"string"}}}}}}}},"400":{"description":"Неверный запрос - Указан неверный `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"401":{"description":"Неавторизован - Токен доступа отсутствует или недействителен.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"403":{"description":"Запрещено - У пользователя недостаточно прав.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"404":{"description":"Не найдено - Нет данных сессии для указанного `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера - Произошла непредвиденная ошибка.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Создать ветки рекомендаций

> \### Создание веток рекомендаций\
> \
> Этот эндпоинт генерирует персонализированные ветки рекомендаций на основе отчета анализа вертикального прыжка пользователя для конкретной сессии. Эти ветки могут использоваться для предоставления индивидуальных советов, рекомендаций по тренировкам или анализа производительности пользователю.\
> \
> \*\*Пример использования:\*\*\
> Отправьте \`POST\` запрос на \`/jumping/sessions/{session\_id}/recommendation/\`, где \`{session\_id}\` - уникальный идентификатор сессии.\
> \
> \*\*Параметры:\*\*\
> \
> \- \`session\_id\` \*(строка, обязательно)\*: Уникальный идентификатор сессии, для которой создаются ветки рекомендаций.\
> \
> \*\*Структура ответа:\*\*\
> При успешном запросе эндпоинт возвращает JSON-объект, содержащий идентификаторы веток, сопоставленные с соответствующими метриками.\
> \
> \*\*Пример ответа для Countermovement Jump:\*\*\
> \`\`\`json\
> {\
> &#x20;   "hip\_height": "thread\_ybIdbAtHLSnHM4BnH551X4fT",\
> &#x20;   "hip\_speed": "thread\_MLGE8nAmLYyW3adwIViKiVpL",\
> &#x20;   "grf": "thread\_rBIUL25oD3VLtBaPRDLunFsu",\
> &#x20;   "power": "thread\_UGCg6dZzsRI1YCpSgCf0dgT4",\
> &#x20;   "kne\_angle": "thread\_rEiSblZuq3bzPHRBNXd2etJ6",\
> &#x20;   "ank\_angle": "thread\_QLrCfbBuBBKpmPFFnBkJfcln",\
> &#x20;   "hip\_angle": "thread\_CMWV9HCt85XlpVSORSk4MmCG"\
> }\
> \`\`\`\
> \
> \*\*Пример ответа для Drop Jump:\*\*\
> \`\`\`json\
> {\
> &#x20;   "hip\_trajectory": "thread\_ABC123",\
> &#x20;   "hip\_velocity": "thread\_DEF456",\
> &#x20;   "toe\_trajectory": "thread\_GHI789"\
> &#x20;   "grf": "thread\_JKL012",\
> &#x20;   "power": "thread\_MNO345",\
> &#x20;   "kne\_angle": "thread\_PQR678",\
> &#x20;   "ank\_angle": "thread\_STU901",\
> &#x20;   "hip\_angle": "thread\_VWX234"\
> }\
> \`\`\`\
> \
> \*\*Примечание:\*\*\
> \- Убедитесь, что предоставленный \`session\_id\` действителен и соответствует существующей сессии в системе.\
> \- Пользователь должен иметь активный платежный план для доступа к этой функции.

````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":{"/jumping/sessions/{session_id}/recommendation/":{"post":{"operationId":"jumping_sessions_recommendation_create","summary":"Создать ветки рекомендаций","description":"### Создание веток рекомендаций\n\nЭтот эндпоинт генерирует персонализированные ветки рекомендаций на основе отчета анализа вертикального прыжка пользователя для конкретной сессии. Эти ветки могут использоваться для предоставления индивидуальных советов, рекомендаций по тренировкам или анализа производительности пользователю.\n\n**Пример использования:**\nОтправьте `POST` запрос на `/jumping/sessions/{session_id}/recommendation/`, где `{session_id}` - уникальный идентификатор сессии.\n\n**Параметры:**\n\n- `session_id` *(строка, обязательно)*: Уникальный идентификатор сессии, для которой создаются ветки рекомендаций.\n\n**Структура ответа:**\nПри успешном запросе эндпоинт возвращает JSON-объект, содержащий идентификаторы веток, сопоставленные с соответствующими метриками.\n\n**Пример ответа для Countermovement Jump:**\n```json\n{\n    \"hip_height\": \"thread_ybIdbAtHLSnHM4BnH551X4fT\",\n    \"hip_speed\": \"thread_MLGE8nAmLYyW3adwIViKiVpL\",\n    \"grf\": \"thread_rBIUL25oD3VLtBaPRDLunFsu\",\n    \"power\": \"thread_UGCg6dZzsRI1YCpSgCf0dgT4\",\n    \"kne_angle\": \"thread_rEiSblZuq3bzPHRBNXd2etJ6\",\n    \"ank_angle\": \"thread_QLrCfbBuBBKpmPFFnBkJfcln\",\n    \"hip_angle\": \"thread_CMWV9HCt85XlpVSORSk4MmCG\"\n}\n```\n\n**Пример ответа для Drop Jump:**\n```json\n{\n    \"hip_trajectory\": \"thread_ABC123\",\n    \"hip_velocity\": \"thread_DEF456\",\n    \"toe_trajectory\": \"thread_GHI789\"\n    \"grf\": \"thread_JKL012\",\n    \"power\": \"thread_MNO345\",\n    \"kne_angle\": \"thread_PQR678\",\n    \"ank_angle\": \"thread_STU901\",\n    \"hip_angle\": \"thread_VWX234\"\n}\n```\n\n**Примечание:**\n- Убедитесь, что предоставленный `session_id` действителен и соответствует существующей сессии в системе.\n- Пользователь должен иметь активный платежный план для доступа к этой функции.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Уникальный идентификатор сессии.","required":true}],"responses":{"200":{"description":"Ветки успешно созданы.","content":{"application/json":{"schema":{"description":"Сопоставление названий метрик с ID веток рекомендаций.","required":["grf","power","kne_angle","ank_angle","hip_angle"],"type":"object","properties":{"hip_height":{"description":"ID ветки для рекомендаций по высоте бедра.","type":"string"},"hip_speed":{"description":"ID ветки для рекомендаций по скорости бедра.","type":"string"},"hip_trajectory":{"description":"ID ветки для рекомендаций по траектории бедра.","type":"string"},"hip_velocity":{"description":"ID ветки для рекомендаций по скорости бедра.","type":"string"},"toe_trajectory":{"description":"ID ветки для рекомендаций по траектории носка.","type":"string"},"grf":{"description":"ID ветки для рекомендаций по силе реакции опоры (GRF).","type":"string"},"power":{"description":"ID ветки для рекомендаций по мощности.","type":"string"},"kne_angle":{"description":"ID ветки для рекомендаций по углу колена.","type":"string"},"ank_angle":{"description":"ID ветки для рекомендаций по углу голеностопа.","type":"string"},"hip_angle":{"description":"ID ветки для рекомендаций по углу бедра.","type":"string"}}}}}},"400":{"description":"Неверный запрос - Указан неверный `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"401":{"description":"Неавторизован - Токен доступа отсутствует или недействителен.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"403":{"description":"Запрещено - У пользователя недостаточно прав.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"404":{"description":"Не найдено - Нет данных сессии для указанного `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера - Произошла непредвиденная ошибка.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}}},"tags":["jumping"]}}}}
````

## Получить сводку сессии

> \### Получение сводки сессии\
> \
> Этот эндпоинт предоставляет сводку конкретной сессии, включая ключевые метрики производительности, данные пользователя и детали создания сессии.\
> \
> \*\*Пример использования:\*\*\
> Отправьте GET запрос на \`/jumping/{session\_id}/summary/\`, где \`{session\_id}\` - уникальный идентификатор сессии.\
> \
> \*\*Параметры запроса:\*\*\
> \- \`demo\` \*(булево, опционально)\*: Установите \`true\` для получения предварительно сгенерированной демо-сводки вместо реальной сессии.\
> \
> \*\*Структура ответа:\*\*\
> \- \*\*exercise\*\*: Тип упражнения, для которого создана сводка.\
> \- \*\*metrics\*\*: Содержит различные измерения из сессии.\
> \- \*\*summary\*\*: Описательный обзор производительности.\
> \- \*\*user\_info\*\*: Основная информация о пользователе.\
> \- \*\*session\_date\*\*: Дата записи сессии.\
> \
> \*\*Примечание:\*\* Убедитесь, что \`session\_id\` существует. Если используется \`demo=true\`, система возвращает предустановленную демо-сводку сессии.

```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":{"/jumping/sessions/{session_id}/summary/":{"get":{"operationId":"jumping_sessions_summary_list","summary":"Получить сводку сессии","description":"### Получение сводки сессии\n\nЭтот эндпоинт предоставляет сводку конкретной сессии, включая ключевые метрики производительности, данные пользователя и детали создания сессии.\n\n**Пример использования:**\nОтправьте GET запрос на `/jumping/{session_id}/summary/`, где `{session_id}` - уникальный идентификатор сессии.\n\n**Параметры запроса:**\n- `demo` *(булево, опционально)*: Установите `true` для получения предварительно сгенерированной демо-сводки вместо реальной сессии.\n\n**Структура ответа:**\n- **exercise**: Тип упражнения, для которого создана сводка.\n- **metrics**: Содержит различные измерения из сессии.\n- **summary**: Описательный обзор производительности.\n- **user_info**: Основная информация о пользователе.\n- **session_date**: Дата записи сессии.\n\n**Примечание:** Убедитесь, что `session_id` существует. Если используется `demo=true`, система возвращает предустановленную демо-сводку сессии.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Уникальный идентификатор сессии.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Установите `true` для получения демо-сводки сессии вместо реальной.","required":false}],"responses":{"200":{"description":"Сводка сессии успешно получена.","content":{"application/json":{"schema":{"description":"Объект, содержащий детали сводки сессии.","required":["metrics","summary","user_info","created_at"],"type":"object","properties":{"exercise":{"description":"Тип упражнения, для которого создана сводка.","type":"string"},"metrics":{"description":"Объект, содержащий различные метрики производительности.","type":"object","additionalProperties":{"description":"Массив числовых значений для каждой метрики.","type":"array","items":{"type":"number"}}},"summary":{"description":"Объект, содержащий детали сводки сессии.","type":"object","additionalProperties":{"description":"Сводная информация для каждого ключа.","type":"string"}},"user_info":{"description":"Объект, содержащий информацию о пользователе.","required":["name","age","weight","height","gender"],"type":"object","properties":{"name":{"description":"Полное имя пользователя.","type":"string"},"age":{"description":"Возраст пользователя.","type":"integer"},"weight":{"description":"Вес пользователя в килограммах.","type":"number"},"height":{"description":"Рост пользователя в сантиметрах.","type":"number"},"gender":{"description":"Пол пользователя.","type":"string"}}},"created_at":{"description":"Объект, содержащий дату и время создания сессии.","required":["date","time"],"type":"object","properties":{"date":{"description":"Дата создания сессии в формате 'ГГГГ-ММ-ДД'.","type":"string","format":"date"},"time":{"description":"Время создания сессии в формате 'ЧЧ:ММ AM/PM'.","type":"string","format":"time"}}}}}}}},"400":{"description":"Неверный запрос - Указан неверный `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"401":{"description":"Неавторизован - Токен доступа отсутствует или недействителен.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"403":{"description":"Запрещено - У пользователя недостаточно прав.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"404":{"description":"Не найдено - Нет данных сессии для указанного `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера - Произошла непредвиденная ошибка.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Сгенерировать ветки сводки для сессии

> \### Генерация веток сводки\
> \
> Этот эндпоинт генерирует ветки сводки для заданной сессии на основе предопределенных блоков сводки и метрик.\
> \
> \*\*Пример использования:\*\*\
> Отправьте \`POST\` запрос на \`/jumping/sessions/{session\_id}/summary/\`, где \`{session\_id}\` - уникальный идентификатор сессии.\
> \
> \*\*Параметры:\*\*\
> \- \`session\_id\` \*(строка, обязательно)\*: Уникальный идентификатор сессии, для которой генерируются ветки сводки.\
> \
> \*\*Структура ответа:\*\*\
> При успешном запросе эндпоинт возвращает JSON-объект, сопоставляющий каждое название блока с соответствующим ID ветки.\
> \
> \*\*Пример ответа для Countermovement Jump:\*\*\
> \`\`\`json\
> {\
> &#x20;   "jump\_flight": "thread\_thread\_id",\
> &#x20;   "jump\_forces": "thread\_thread\_id",\
> &#x20;   "control\_and\_stability": "thread\_thread\_id",\
> &#x20;   "efficiency": "thread\_thread\_id",\
> &#x20;   "final\_summary": "thread\_thread\_id",\
> }\
> \`\`\`\
> \
> \*\*Пример ответа для Drop Jump:\*\*\
> \`\`\`json\
> {\
> &#x20;   "contact\_and\_jump\_structure": "thread\_thread\_id",\
> &#x20;   "performance\_and\_efficiency": "thread\_thread\_id",\
> &#x20;   "force\_metrics": "thread\_thread\_id",\
> &#x20;   "final\_summary": "thread\_thread\_id",\
> }\
> \`\`\`\
> \
> \*\*Примечания:\*\*\
> \- Убедитесь, что предоставленный \`session\_id\` действителен и соответствует существующей сессии в системе.\
> \- Пользователь должен иметь необходимые права для генерации веток сводки.

````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":{"/jumping/sessions/{session_id}/summary/":{"post":{"operationId":"jumping_sessions_summary_create","summary":"Сгенерировать ветки сводки для сессии","description":"### Генерация веток сводки\n\nЭтот эндпоинт генерирует ветки сводки для заданной сессии на основе предопределенных блоков сводки и метрик.\n\n**Пример использования:**\nОтправьте `POST` запрос на `/jumping/sessions/{session_id}/summary/`, где `{session_id}` - уникальный идентификатор сессии.\n\n**Параметры:**\n- `session_id` *(строка, обязательно)*: Уникальный идентификатор сессии, для которой генерируются ветки сводки.\n\n**Структура ответа:**\nПри успешном запросе эндпоинт возвращает JSON-объект, сопоставляющий каждое название блока с соответствующим ID ветки.\n\n**Пример ответа для Countermovement Jump:**\n```json\n{\n    \"jump_flight\": \"thread_thread_id\",\n    \"jump_forces\": \"thread_thread_id\",\n    \"control_and_stability\": \"thread_thread_id\",\n    \"efficiency\": \"thread_thread_id\",\n    \"final_summary\": \"thread_thread_id\",\n}\n```\n\n**Пример ответа для Drop Jump:**\n```json\n{\n    \"contact_and_jump_structure\": \"thread_thread_id\",\n    \"performance_and_efficiency\": \"thread_thread_id\",\n    \"force_metrics\": \"thread_thread_id\",\n    \"final_summary\": \"thread_thread_id\",\n}\n```\n\n**Примечания:**\n- Убедитесь, что предоставленный `session_id` действителен и соответствует существующей сессии в системе.\n- Пользователь должен иметь необходимые права для генерации веток сводки.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Уникальный идентификатор сессии.","required":true},{"schema":{"type":"string","enum":["metric","imperial"]},"name":"measurement_system","in":"query","description":"Система измерений: 'metric' или 'imperial'","required":false}],"responses":{"201":{"description":"Ветки сводки успешно сгенерированы.","content":{"application/json":{"schema":{"description":"Словарь, сопоставляющий названия блоков с соответствующими ID веток, включая финальную ветку сводки.","type":"object","additionalProperties":{"description":"ID ветки, соответствующий названию блока.","type":"string"}}}}},"400":{"description":"Неверный запрос - Указан неверный `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"401":{"description":"Неавторизован - Токен доступа отсутствует или недействителен.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"403":{"description":"Запрещено - У пользователя недостаточно прав.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"404":{"description":"Не найдено - Нет данных сессии для указанного `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}},"500":{"description":"Внутренняя ошибка сервера - Произошла непредвиденная ошибка.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Сообщение об ошибке.","type":"string"}}}}}}},"tags":["jumping"]}}}}
````


---

# 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/jumping.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.
