# Jumping

## Create a New Video Processing Session

> This endpoint allows an \*\*admin\*\* (or sub-admin) to upload a \*\*video file\*\* for processing and create a new "session" resource \*\*on behalf of another user\*\*. The server will return a \`session\_id\` that can be used to poll or retrieve the session details/results.\
> \
> \### Request Body (Multipart/Form-Data)\
> \
> You must supply the following fields:\
> \
> \- \*\*user\_id\*\* \*(string, required)\*: The ID of the user on whose behalf this session is created.\
> \- \*\*video\*\* \*(file, required)\*: The raw video file to be processed.\
> \- \*\*session\_name\*\* \*(string, optional)\*: A human-readable name/title for the session.\
> \- \*\*exercise\*\* \*(string, required)\*: The name of the exercise. Choose one of the following: 'Countermovement Jump' or 'Drop Jump'.\
> \- \*\*body\_joint\_angles\*\* \*(array\[string], optional)\*: A comma-separated list of joint names (e.g. 'elbow, knee, ankle'). Defaults to \['all'] if not provided.\
> \
> \### Response Structure\
> \
> On success (HTTP 200), the response is a JSON object with:\
> \
> \- \*\*session\_id\*\* \*(string)\*: A unique identifier for the created session.\
> \- \*\*title\*\* \*(string)\*: The session title (defaults to a fallback if \`session\_name\` was not provided).\
> \
> \### Workflow\
> 1\. \*\*POST\*\* a multipart/form-data request containing the required fields \`user\_id\` and \`video\`, plus any optional fields.\
> 2\. Provide A valid API-KEY token in the \`Authorization\` header.\
> 3\. The caller must have admin privileges to successfully create a session for another user.\
> 4\. If successful, the server responds with \`session\_id\` and \`title\`.\
> 5\. If an error occurs (e.g., missing fields, lack of permissions), a JSON object with an \`error\` key is returned.\
> \
> \#### Example 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/\
> \`\`\`\
> \#### Example 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":"Enter your bearer token (Firebase auth) in the format: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Enter your API key in the header: API-KEY: <api_key>"}}},"paths":{"/jumping/sessions/":{"post":{"operationId":"jumping_sessions_create","summary":"Create a New Video Processing Session","description":"This endpoint allows an **admin** (or sub-admin) to upload a **video file** for processing and create a new \"session\" resource **on behalf of another user**. The server will return a `session_id` that can be used to poll or retrieve the session details/results.\n\n### Request Body (Multipart/Form-Data)\n\nYou must supply the following fields:\n\n- **user_id** *(string, required)*: The ID of the user on whose behalf this session is created.\n- **video** *(file, required)*: The raw video file to be processed.\n- **session_name** *(string, optional)*: A human-readable name/title for the session.\n- **exercise** *(string, required)*: The name of the exercise. Choose one of the following: 'Countermovement Jump' or 'Drop Jump'.\n- **body_joint_angles** *(array[string], optional)*: A comma-separated list of joint names (e.g. 'elbow, knee, ankle'). Defaults to ['all'] if not provided.\n\n### Response Structure\n\nOn success (HTTP 200), the response is a JSON object with:\n\n- **session_id** *(string)*: A unique identifier for the created session.\n- **title** *(string)*: The session title (defaults to a fallback if `session_name` was not provided).\n\n### Workflow\n1. **POST** a multipart/form-data request containing the required fields `user_id` and `video`, plus any optional fields.\n2. Provide A valid API-KEY token in the `Authorization` header.\n3. The caller must have admin privileges to successfully create a session for another user.\n4. If successful, the server responds with `session_id` and `title`.\n5. If an error occurs (e.g., missing fields, lack of permissions), a JSON object with an `error` key is returned.\n\n#### Example 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#### Example 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":"Video processing session created successfully (HTTP 200).","content":{"application/json":{"schema":{"required":["session_id","title"],"type":"object","properties":{"session_id":{"description":"The unique identifier for the created session.","type":"string"},"title":{"description":"The session title (defaults if not provided).","type":"string"}}}}}},"400":{"description":"Bad Request - Possibly due to missing `user_id`, missing `video`, or invalid form data.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Detailed error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Missing or invalid access token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error indicating a missing or invalid token.","type":"string"}}}}}},"403":{"description":"Forbidden - The user does not have admin permission to create sessions for others.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error indicating insufficient privileges.","type":"string"}}}}}},"404":{"description":"Not Found - Indicates business logic issues or resource limitations (e.g., session limit).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message describing the issue.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Unexpected error occurred on the server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Detailed error message indicating a server-side failure.","type":"string"}}}}}}},"tags":["jumping"],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"user_id":{"type":"string","description":"**Required.** The ID of the user for whom this session is created (form field: text)."},"video":{"type":"string","description":"**Required.** The raw video file to be processed (form field type: file)."},"session_name":{"type":"string","description":"**Optional.** A descriptive name for the session (form field: text)."},"exercise":{"type":"string","description":"**Required.** The name of the exercise. Choose one of the following: 'Countermovement Jump' or 'Drop Jump'."},"body_joint_angles":{"type":"array","description":"**Optional.** A comma-separated list of joint names. Available values: `'ankle'`, `'knee'`, `'elbow'`, `'hip'`, `'shoulder'`. Example: `ankle,knee,hip`"}},"required":["user_id","video","exercise"]}}}}}}}}
````

## Get Jumping Session Data

> Retrieve detailed information about a specific processed jumping session using its unique \`session\_id\`.\
> \
> Optionally, set \`?demo=true\` to retrieve the predefined demo session for the Jump activity.\
> \
> \*\*Usage Example:\*\*\
> Send a GET request with the \`session\_id\` as a path parameter to obtain session details.\
> \
> \*\*Parameters:\*\*\
> \- \`session\_id\` \*(string, required)\*: The unique identifier of the session whose data is being requested.\
> \
> \- \`demo\` \*(boolean, optional)\*: Set to \`true\` to return the predefined demo session for Jump.\
> \
> \*\*Response Data Type:\*\*\
> \- \*\*200 OK:\*\* A JSON object with the following structure:\
> &#x20; \- \`angles\` \*(object)\*: Contains arrays of various angle measurements:\
> &#x20;   \- \`hip\_intersection\_angle\` \*(array of numbers)\*: Array of hip intersection angles.\
> &#x20;   \- \`ank\_angle\` \*(array of numbers)\*: Array of ankle angles.\
> &#x20;   \- \`rkne\_angle\` \*(array of numbers)\*: Array of right knee angles.\
> &#x20;   \- \`lkne\_angle\` \*(array of numbers)\*: Array of left knee angles.\
> &#x20;   \- \`kne\_angle\` \*(array of numbers)\*: Array of knee angles.\
> &#x20;   \- \`rank\_angle\` \*(array of numbers)\*: Array of right ankle angles.\
> &#x20;   \- \`lank\_angle\` \*(array of numbers)\*: Array of left ankle angles.\
> &#x20; \- \`whole\_report\_metrics\` \*(object)\*: Contains arrays of various metrics:\
> &#x20;   \- \`hipy\` \*(array of numbers)\*: Array of hip height values.\
> &#x20;   \- \`grf\` \*(array of numbers)\*: Array of ground reaction forces.\
> &#x20;   \- \`vhipy\` \*(array of numbers)\*: Array of hip speed values.\
> &#x20;   \- \`toey\` \*(array of numbers)\*: Array of toe Y-axis positions.\
> &#x20;   \- \`ahipy\` \*(array of numbers)\*: Array of average hip Y-axis positions.\
> &#x20;   \- \`vtoey\` \*(array of numbers)\*: Array of vertical toe velocities.\
> &#x20; \- \`all\_timestamps\` \*(array of numbers)\*: Array of timestamps for each frame.\
> &#x20; \- \`analyzed\_video\_url\` \*(string, URI)\*: URL of the analyzed video.\
> &#x20; \- \`video\_url\` \*(string, URI)\*: URL of the original video.\
> &#x20; \- \`created\_at\` \*(object)\*: Contains the date and time of session creation:\
> &#x20;   \- \`date\` \*(string, format: YYYY-MM-DD)\*: Creation date.\
> &#x20;   \- \`time\` \*(string, format: HH:MM AM/PM)\*: Creation time.\
> &#x20; \- \`exercise\` \*(string)\*: Type of exercise being analyzed in the session.\
> &#x20; \- \`user\_name\` \*(string)\*: Name of the user associated with the session.\
> &#x20; \- \`activity\` \*(string)\*: Type of activity being analyzed in the session.\
> &#x20; \- \`title\` \*(string)\*: Title of the session.\
> &#x20; \- \`end\_frames\` \*(array of integers)\*: Array of frame numbers where each segment ends.\
> &#x20; \- \`metrics\` \*(object)\*: Contains various performance metrics as arrays of numbers.

```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":"Enter your bearer token (Firebase auth) in the format: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Enter your API key in the header: API-KEY: <api_key>"}}},"paths":{"/jumping/sessions/{session_id}/":{"get":{"operationId":"jumping_sessions_read","summary":"Get Jumping Session Data","description":"Retrieve detailed information about a specific processed jumping session using its unique `session_id`.\n\nOptionally, set `?demo=true` to retrieve the predefined demo session for the Jump activity.\n\n**Usage Example:**\nSend a GET request with the `session_id` as a path parameter to obtain session details.\n\n**Parameters:**\n- `session_id` *(string, required)*: The unique identifier of the session whose data is being requested.\n\n- `demo` *(boolean, optional)*: Set to `true` to return the predefined demo session for Jump.\n\n**Response Data Type:**\n- **200 OK:** A JSON object with the following structure:\n  - `angles` *(object)*: Contains arrays of various angle measurements:\n    - `hip_intersection_angle` *(array of numbers)*: Array of hip intersection angles.\n    - `ank_angle` *(array of numbers)*: Array of ankle angles.\n    - `rkne_angle` *(array of numbers)*: Array of right knee angles.\n    - `lkne_angle` *(array of numbers)*: Array of left knee angles.\n    - `kne_angle` *(array of numbers)*: Array of knee angles.\n    - `rank_angle` *(array of numbers)*: Array of right ankle angles.\n    - `lank_angle` *(array of numbers)*: Array of left ankle angles.\n  - `whole_report_metrics` *(object)*: Contains arrays of various metrics:\n    - `hipy` *(array of numbers)*: Array of hip height values.\n    - `grf` *(array of numbers)*: Array of ground reaction forces.\n    - `vhipy` *(array of numbers)*: Array of hip speed values.\n    - `toey` *(array of numbers)*: Array of toe Y-axis positions.\n    - `ahipy` *(array of numbers)*: Array of average hip Y-axis positions.\n    - `vtoey` *(array of numbers)*: Array of vertical toe velocities.\n  - `all_timestamps` *(array of numbers)*: Array of timestamps for each frame.\n  - `analyzed_video_url` *(string, URI)*: URL of the analyzed video.\n  - `video_url` *(string, URI)*: URL of the original video.\n  - `created_at` *(object)*: Contains the date and time of session creation:\n    - `date` *(string, format: YYYY-MM-DD)*: Creation date.\n    - `time` *(string, format: HH:MM AM/PM)*: Creation time.\n  - `exercise` *(string)*: Type of exercise being analyzed in the session.\n  - `user_name` *(string)*: Name of the user associated with the session.\n  - `activity` *(string)*: Type of activity being analyzed in the session.\n  - `title` *(string)*: Title of the session.\n  - `end_frames` *(array of integers)*: Array of frame numbers where each segment ends.\n  - `metrics` *(object)*: Contains various performance metrics as arrays of numbers.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the session.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the demo session instead of the real one.","required":false}],"responses":{"200":{"description":"Successfully retrieved session data.","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":"Array of hip intersection angles.","type":"array","items":{"type":"number"}},"ank_angle":{"description":"Array of ankle angles.","type":"array","items":{"type":"number"}},"rkne_angle":{"description":"Array of right knee angles.","type":"array","items":{"type":"number"}},"lkne_angle":{"description":"Array of left knee angles.","type":"array","items":{"type":"number"}},"kne_angle":{"description":"Array of knee angles.","type":"array","items":{"type":"number"}},"rank_angle":{"description":"Array of right ankle angles.","type":"array","items":{"type":"number"}},"lank_angle":{"description":"Array of left ankle angles.","type":"array","items":{"type":"number"}}}},"whole_report_metrics":{"required":["hipy","grf","vhipy","toey","ahipy","vtoey"],"type":"object","properties":{"hipy":{"description":"Array of hip height values.","type":"array","items":{"type":"number"}},"grf":{"description":"Array of ground reaction forces.","type":"array","items":{"type":"number"}},"vhipy":{"description":"Array of hip speed values.","type":"array","items":{"type":"number"}},"toey":{"description":"Array of toe Y-axis positions.","type":"array","items":{"type":"number"}},"ahipy":{"description":"Array of average hip Y-axis positions.","type":"array","items":{"type":"number"}},"vtoey":{"description":"Array of vertical toe velocities.","type":"array","items":{"type":"number"}}}},"all_timestamps":{"description":"Array of timestamps for each frame.","type":"array","items":{"type":"number"}},"analyzed_video_url":{"description":"URL of the analyzed video.","type":"string","format":"uri"},"video_url":{"description":"URL of the original video.","type":"string","format":"uri"},"created_at":{"description":"Object containing the date and time of session creation.","required":["date","time"],"type":"object","properties":{"date":{"description":"Date when the session was created, in 'YYYY-MM-DD' format.","type":"string","format":"date"},"time":{"description":"Time when the session was created, in 'HH:MM AM/PM' format.","type":"string","format":"time"}}},"exercise":{"description":"Type of exercise being analyzed in the session.","type":"string"},"user_name":{"description":"Name of the user associated with the session.","type":"string"},"activity":{"description":"Type of activity being analyzed in the session.","type":"string"},"title":{"description":"Title of the session.","type":"string"},"end_frames":{"description":"Array of frame numbers where each segment ends.","type":"array","items":{"type":"integer"}},"all_end_frames":{"description":"Array of all frame numbers where segments end.","type":"array","items":{"type":"integer"}},"metrics":{"description":"Object containing various performance metrics.","type":"object","additionalProperties":{"description":"Array of numeric values for each metric.","type":"array","items":{"type":"number"}}},"all_metrics":{"description":"Object containing all performance metrics.","type":"object","additionalProperties":{"description":"Array of numeric values for each metric.","type":"array","items":{"type":"number"}}}}}}}},"400":{"description":"Bad Request - Invalid `session_id` provided.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Access token is missing or invalid.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"403":{"description":"Forbidden - User lacks necessary permissions.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"404":{"description":"Not Found - No session data found for the provided `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Export Jumping Session Data

> Retrieve detailed information about a specific jumping session using its unique \`session\_id\`.\
> \
> Optionally, set \`?demo=true\` to retrieve the predefined demo session for the Jump activity.\
> \
> \*\*Usage Example:\*\*\
> Send a GET request with the \`session\_id\` as a path parameter to obtain session details.\
> \
> \*\*Parameters:\*\*\
> \- \`session\_id\` \*(string, required)\*: The unique identifier of the session whose data is being requested.\
> \- \`demo\` \*(boolean, optional)\*: Set to \`true\` to retrieve the predefined demo session for Jump.\
> \*\*Note:\*\* This endpoint includes landmark points in the response.\
> \
> \*\*Response Data Type:\*\*\
> \- \*\*200 OK:\*\* A JSON object with the following structure:\
> &#x20; \- \`keypoints\` \*(object)\*: Contains arrays of landmark points.\
> &#x20;   \- \`lknev\` \*(array of numbers)\*: Array of left knee landmark points.\
> &#x20;   \- \`ltoev\` \*(array of numbers)\*: Array of left toe landmark points.\
> &#x20;   \- \`relbv\` \*(array of numbers)\*: Array of right elbow landmark points.\
> &#x20;   \- \`rtoey\` \*(array of numbers)\*: Array of right toe landmark points.\
> &#x20;   \- \`headv\` \*(array of numbers)\*: Array of head landmark points.\
> &#x20;   \- \`rearv\` \*(array of numbers)\*: Array of right ear landmark points.\
> &#x20;   \- \`rshox\` \*(array of numbers)\*: Array of right shoulder landmark points.\
> &#x20;   \- \`etc\` \*(array of numbers)\*: Array of all other landmark points.\
> &#x20; \- \`angles\` \*(object)\*: Contains arrays of various angle measurements.\
> &#x20;   \- \`hip\_intersection\_angle\` \*(array of numbers)\*: Hip intersection angles.\
> &#x20;   \- \`ank\_angle\` \*(array of numbers)\*: Ankle angles.\
> &#x20;   \- \`rkne\_angle\` \*(array of numbers)\*: Right knee angles.\
> &#x20;   \- \`lkne\_angle\` \*(array of numbers)\*: Left knee angles.\
> &#x20;   \- \`kne\_angle\` \*(array of numbers)\*: Knee angles.\
> &#x20;   \- \`rank\_angle\` \*(array of numbers)\*: Right ankle angles.\
> &#x20;   \- \`lank\_angle\` \*(array of numbers)\*: Left ankle angles.\
> &#x20; \- \`all\_timestamps\` \*(array of numbers)\*: Timestamps for each frame.\
> &#x20; \- \`analyzed\_video\_url\` \*(string, URI)\*: URL of the analyzed video.\
> &#x20; \- \`video\_url\` \*(string, URI)\*: URL of the original video.\
> &#x20; \- \`created\_at\` \*(object)\*: Contains the date and time of session creation.\
> &#x20;   \- \`date\` \*(string, format: YYYY-MM-DD)\*: Creation date.\
> &#x20;   \- \`time\` \*(string, format: HH:MM AM/PM)\*: Creation time.\
> &#x20; \- \`user\_name\` \*(string)\*: Name of the user associated with the session.\
> &#x20; \- \`activity\` \*(string)\*: Type of activity being analyzed.\
> &#x20; \- \`title\` \*(string)\*: Title of the session.\
> &#x20; \- \`end\_frames\` \*(array of integers)\*: Frame numbers where each segment ends.\
> &#x20; \- \`metrics\` \*(object)\*: Contains various performance metrics as arrays of numbers.

```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":"Enter your bearer token (Firebase auth) in the format: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Enter your API key in the header: API-KEY: <api_key>"}}},"paths":{"/jumping/sessions/{session_id}/export/":{"get":{"operationId":"jumping_sessions_export_list","summary":"Export Jumping Session Data","description":"Retrieve detailed information about a specific jumping session using its unique `session_id`.\n\nOptionally, set `?demo=true` to retrieve the predefined demo session for the Jump activity.\n\n**Usage Example:**\nSend a GET request with the `session_id` as a path parameter to obtain session details.\n\n**Parameters:**\n- `session_id` *(string, required)*: The unique identifier of the session whose data is being requested.\n- `demo` *(boolean, optional)*: Set to `true` to retrieve the predefined demo session for Jump.\n**Note:** This endpoint includes landmark points in the response.\n\n**Response Data Type:**\n- **200 OK:** A JSON object with the following structure:\n  - `keypoints` *(object)*: Contains arrays of landmark points.\n    - `lknev` *(array of numbers)*: Array of left knee landmark points.\n    - `ltoev` *(array of numbers)*: Array of left toe landmark points.\n    - `relbv` *(array of numbers)*: Array of right elbow landmark points.\n    - `rtoey` *(array of numbers)*: Array of right toe landmark points.\n    - `headv` *(array of numbers)*: Array of head landmark points.\n    - `rearv` *(array of numbers)*: Array of right ear landmark points.\n    - `rshox` *(array of numbers)*: Array of right shoulder landmark points.\n    - `etc` *(array of numbers)*: Array of all other landmark points.\n  - `angles` *(object)*: Contains arrays of various angle measurements.\n    - `hip_intersection_angle` *(array of numbers)*: Hip intersection angles.\n    - `ank_angle` *(array of numbers)*: Ankle angles.\n    - `rkne_angle` *(array of numbers)*: Right knee angles.\n    - `lkne_angle` *(array of numbers)*: Left knee angles.\n    - `kne_angle` *(array of numbers)*: Knee angles.\n    - `rank_angle` *(array of numbers)*: Right ankle angles.\n    - `lank_angle` *(array of numbers)*: Left ankle angles.\n  - `all_timestamps` *(array of numbers)*: Timestamps for each frame.\n  - `analyzed_video_url` *(string, URI)*: URL of the analyzed video.\n  - `video_url` *(string, URI)*: URL of the original video.\n  - `created_at` *(object)*: Contains the date and time of session creation.\n    - `date` *(string, format: YYYY-MM-DD)*: Creation date.\n    - `time` *(string, format: HH:MM AM/PM)*: Creation time.\n  - `user_name` *(string)*: Name of the user associated with the session.\n  - `activity` *(string)*: Type of activity being analyzed.\n  - `title` *(string)*: Title of the session.\n  - `end_frames` *(array of integers)*: Frame numbers where each segment ends.\n  - `metrics` *(object)*: Contains various performance metrics as arrays of numbers.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the session.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the demo session instead of the real one.","required":false}],"responses":{"200":{"description":"Successfully retrieved session data.","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":"Array of left knee landmark points.","type":"array","items":{"type":"number"}},"ltoev":{"description":"Array of left toe landmark points.","type":"array","items":{"type":"number"}},"relbv":{"description":"Array of right elbow landmark points.","type":"array","items":{"type":"number"}},"rtoey":{"description":"Array of right toe landmark points.","type":"array","items":{"type":"number"}},"headv":{"description":"Array of head landmark points.","type":"array","items":{"type":"number"}},"rearv":{"description":"Array of right ear landmark points.","type":"array","items":{"type":"number"}},"rshox":{"description":"Array of right shoulder landmark points.","type":"array","items":{"type":"number"}},"etc":{"description":"All other landmark points.","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":"Array of hip intersection angles.","type":"array","items":{"type":"number"}},"ank_angle":{"description":"Array of ankle angles.","type":"array","items":{"type":"number"}},"rkne_angle":{"description":"Array of right knee angles.","type":"array","items":{"type":"number"}},"lkne_angle":{"description":"Array of left knee angles.","type":"array","items":{"type":"number"}},"kne_angle":{"description":"Array of knee angles.","type":"array","items":{"type":"number"}},"rank_angle":{"description":"Array of right ankle angles.","type":"array","items":{"type":"number"}},"lank_angle":{"description":"Array of left ankle angles.","type":"array","items":{"type":"number"}}}},"all_timestamps":{"description":"Array of timestamps for each frame.","type":"array","items":{"type":"number"}},"analyzed_video_url":{"description":"URL of the analyzed video.","type":"string","format":"uri"},"video_url":{"description":"URL of the original video.","type":"string","format":"uri"},"created_at":{"description":"Object containing the date and time of session creation.","required":["date","time"],"type":"object","properties":{"date":{"description":"Date when the session was created, in 'YYYY-MM-DD' format.","type":"string","format":"date"},"time":{"description":"Time when the session was created, in 'HH:MM AM/PM' format.","type":"string","format":"time"}}},"user_name":{"description":"Name of the user associated with the session.","type":"string"},"activity":{"description":"Type of activity being analyzed in the session.","type":"string"},"title":{"description":"Title of the session.","type":"string"},"end_frames":{"description":"Array of frame numbers where each segment ends.","type":"array","items":{"type":"integer"}},"metrics":{"description":"Object containing various performance metrics.","type":"object","additionalProperties":{"description":"Array of numeric values for each metric.","type":"array","items":{"type":"number"}}}}}}}},"400":{"description":"Bad Request - Invalid `session_id` provided.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Access token is missing or invalid.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"403":{"description":"Forbidden - User lacks necessary permissions.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"404":{"description":"Not Found - No session data found for the provided `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Get Jump Analysis Report

> \### Retrieve Vertical Jump Analysis Report\
> \
> This endpoint allows users to retrieve a comprehensive analysis report for a specific vertical jump session. The report includes graphical data, phase details, user information, and additional comments to provide an in-depth understanding of the user's performance during the session.\
> \
> \*\*Usage Example:\*\*\
> Send a \`POST\` request to \`/jumping/{session\_id}/jump-analysis/\` where \`{session\_id}\` is the unique identifier of the session.\
> \
> \*\*Parameters:\*\*\
> \
> \- \`session\_id\` \*(string, required)\*: The unique identifier of the session for which the report is being requested.\
> \
> \- \`demo\` \*(boolean, optional)\*: Set to \`true\` to retrieve the predefined demo report instead of the real session.\
> \
> \*\*Response Structure:\*\*\
> Upon a successful request, the endpoint returns a JSON object containing the following sections:\
> \
> 1\. \*\*Exercise\*\*: The name of the exercise performed during the session.\
> 2\. \*\*Graph Data\*\*: Visual representations of various metrics collected during the session.\
> 3\. \*\*Frame Information\*\*: Details about the video frames involved in the session.\
> 4\. \*\*Phase Data\*\*: Information about different phases of the vertical jump activity.\
> 5\. \*\*User Information\*\*: Personal details of the user.\
> 6\. \*\*Session Date\*\*: The date when the session took place.\
> 7\. \*\*Comments\*\*: Feedback and comments based on the session performance.\
> \
> \*\*Detailed Description of Response Fields:\*\*\
> \- \*\*exercise\*\*: The name of the exercise performed.\
> \- \*\*graph\_data\*\*: Contains nested objects for each metric (e.g., hip\_height, hip\_speed) with data points over time.\
> \- \*\*min\_frame\*\* & \*\*max\_frame\*\*: Indicate the range of frames analyzed in the session video.\
> \- \*\*phase\_data\*\*: Provides detailed information about each phase of the jump, including video frames, graph phases, and associated images.\
> \- \*\*user\_information\*\*: Includes the user's name, age, weight, height, and gender.\
> \- \*\*session\_date\*\*: The date of the session in \`DD/MM/YYYY\` format.\
> \- \*\*comments\*\*: Contains feedback related to specific metrics like power and ground reaction force (grf).\
> \
> \*\*Note:\*\* Ensure that the \`session\_id\` provided is valid and corresponds to an existing session in the system.

```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":"Enter your bearer token (Firebase auth) in the format: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Enter your API key in the header: API-KEY: <api_key>"}}},"paths":{"/jumping/sessions/{session_id}/jump-analysis/":{"post":{"operationId":"jumping_sessions_jump-analysis_create","summary":"Get Jump Analysis Report","description":"### Retrieve Vertical Jump Analysis Report\n\nThis endpoint allows users to retrieve a comprehensive analysis report for a specific vertical jump session. The report includes graphical data, phase details, user information, and additional comments to provide an in-depth understanding of the user's performance during the session.\n\n**Usage Example:**\nSend a `POST` request to `/jumping/{session_id}/jump-analysis/` where `{session_id}` is the unique identifier of the session.\n\n**Parameters:**\n\n- `session_id` *(string, required)*: The unique identifier of the session for which the report is being requested.\n\n- `demo` *(boolean, optional)*: Set to `true` to retrieve the predefined demo report instead of the real session.\n\n**Response Structure:**\nUpon a successful request, the endpoint returns a JSON object containing the following sections:\n\n1. **Exercise**: The name of the exercise performed during the session.\n2. **Graph Data**: Visual representations of various metrics collected during the session.\n3. **Frame Information**: Details about the video frames involved in the session.\n4. **Phase Data**: Information about different phases of the vertical jump activity.\n5. **User Information**: Personal details of the user.\n6. **Session Date**: The date when the session took place.\n7. **Comments**: Feedback and comments based on the session performance.\n\n**Detailed Description of Response Fields:**\n- **exercise**: The name of the exercise performed.\n- **graph_data**: Contains nested objects for each metric (e.g., hip_height, hip_speed) with data points over time.\n- **min_frame** & **max_frame**: Indicate the range of frames analyzed in the session video.\n- **phase_data**: Provides detailed information about each phase of the jump, including video frames, graph phases, and associated images.\n- **user_information**: Includes the user's name, age, weight, height, and gender.\n- **session_date**: The date of the session in `DD/MM/YYYY` format.\n- **comments**: Contains feedback related to specific metrics like power and ground reaction force (grf).\n\n**Note:** Ensure that the `session_id` provided is valid and corresponds to an existing session in the system.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the session.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the demo report.","required":false}],"responses":{"200":{"description":"Successfully retrieved jump analysis report.","content":{"application/json":{"schema":{"required":["exercise","graph_data","min_frame","max_frame","phase_data","user_information","session_date","comments"],"type":"object","properties":{"exercise":{"description":"Which exercise this report is for.","type":"string","enum":["Countermovement Jump","Drop Jump"]},"graph_data":{"description":"Metric time-series for each jump.","type":"object","properties":{"hip_height":{"description":"Hip vertical displacement over time.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"hip_speed":{"description":"Hip vertical velocity over time.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"hip_trajectory":{"description":"Hip trajectory across multiple drop jumps.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"hip_velocity":{"description":"Hip velocity across multiple drop jumps.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"toe_trajectory":{"description":"Toe trajectory across multiple drop jumps.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"grf":{"description":"Ground Reaction Force data.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"power":{"description":"Power output data.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"kne_angle":{"description":"Knee angle over time.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"ank_angle":{"description":"Ankle angle over time.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}},"hip_angle":{"description":"Hip angle over time.","type":"object","additionalProperties":{"required":["times","data"],"type":"object","properties":{"times":{"description":"Timestamps for data points.","type":"array","items":{"type":"number"}},"data":{"description":"Metric values at those times.","type":"array","items":{"type":"number"}}}}}},"additionalProperties":false},"min_frame":{"description":"Minimum frame number in the video.","type":"integer"},"max_frame":{"description":"Maximum frame number in the video.","type":"integer"},"phase_data":{"description":"Detailed information about each jump phase.","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":"Personal details of the user.","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":"Date of the session (DD/MM/YYYY).","type":"string","format":"date"},"comments":{"description":"Feedback comments based on session metrics.","type":"object","properties":{"power":{"type":"string"},"grf":{"type":"string"}}}}}}}},"400":{"description":"Bad Request - Invalid `session_id` provided.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Access token is missing or invalid.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"403":{"description":"Forbidden - User lacks necessary permissions.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"404":{"description":"Not Found - No session data found for the provided `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Create Recommendations Threads

> \### Create Recommendations Threads\
> \
> This endpoint generates personalized recommendation threads based on the user's vertical jump analysis report for a specific session. These threads can be used to provide tailored advice, training suggestions, or performance insights to the user.\
> \
> \*\*Usage Example:\*\*\
> Send a \`POST\` request to \`/jumping/sessions/{session\_id}/recommendation/\` where \`{session\_id}\` is the unique identifier of the session.\
> \
> \*\*Parameters:\*\*\
> \
> \- \`session\_id\` \*(string, required)\*: The unique identifier of the session for which recommendation threads are to be created.\
> \
> \*\*Response Structure:\*\*\
> Upon a successful request, the endpoint returns a JSON object containing thread IDs mapped to their respective metrics.\
> \
> \*\*Example Response for 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"\
> }\
> \`\`\`\
> \
> \*\*Example Response for 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"\
> }\
> \`\`\`\
> \
> \*\*Note:\*\*\
> \- Ensure that the \`session\_id\` provided is valid and corresponds to an existing session in the system.\
> \- The user must have an active payment plan to access this feature.

````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":"Enter your bearer token (Firebase auth) in the format: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Enter your API key in the header: API-KEY: <api_key>"}}},"paths":{"/jumping/sessions/{session_id}/recommendation/":{"post":{"operationId":"jumping_sessions_recommendation_create","summary":"Create Recommendations Threads","description":"### Create Recommendations Threads\n\nThis endpoint generates personalized recommendation threads based on the user's vertical jump analysis report for a specific session. These threads can be used to provide tailored advice, training suggestions, or performance insights to the user.\n\n**Usage Example:**\nSend a `POST` request to `/jumping/sessions/{session_id}/recommendation/` where `{session_id}` is the unique identifier of the session.\n\n**Parameters:**\n\n- `session_id` *(string, required)*: The unique identifier of the session for which recommendation threads are to be created.\n\n**Response Structure:**\nUpon a successful request, the endpoint returns a JSON object containing thread IDs mapped to their respective metrics.\n\n**Example Response for 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**Example Response for 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**Note:**\n- Ensure that the `session_id` provided is valid and corresponds to an existing session in the system.\n- The user must have an active payment plan to access this feature.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the session.","required":true}],"responses":{"200":{"description":"Threads created successfully.","content":{"application/json":{"schema":{"description":"Mapping of metric names to recommendation thread IDs.","required":["grf","power","kne_angle","ank_angle","hip_angle"],"type":"object","properties":{"hip_height":{"description":"Thread ID for hip height recommendations.","type":"string"},"hip_speed":{"description":"Thread ID for hip speed recommendations.","type":"string"},"hip_trajectory":{"description":"Thread ID for hip trajectory recommendations.","type":"string"},"hip_velocity":{"description":"Thread ID for hip velocity recommendations.","type":"string"},"toe_trajectory":{"description":"Thread ID for toe trajectory recommendations.","type":"string"},"grf":{"description":"Thread ID for ground reaction force (GRF) recommendations.","type":"string"},"power":{"description":"Thread ID for power recommendations.","type":"string"},"kne_angle":{"description":"Thread ID for knee angle recommendations.","type":"string"},"ank_angle":{"description":"Thread ID for ankle angle recommendations.","type":"string"},"hip_angle":{"description":"Thread ID for hip angle recommendations.","type":"string"}}}}}},"400":{"description":"Bad Request - Invalid `session_id` provided.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Access token is missing or invalid.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"403":{"description":"Forbidden - User lacks necessary permissions.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"404":{"description":"Not Found - No session data found for the provided `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}}},"tags":["jumping"]}}}}
````

## Get Summary of a Session

> \### Retrieve Session Summary\
> \
> This endpoint provides a summary of a specific session, including key performance metrics, user data, and session creation details.\
> \
> \*\*Usage Example:\*\*\
> Send a GET request to \`/jumping/{session\_id}/summary/\` where \`{session\_id}\` is the unique session ID.\
> \
> \*\*Query Parameters:\*\*\
> \- \`demo\` \*(boolean, optional)\*: Set to \`true\` to retrieve a pre-generated demo summary instead of a real session.\
> \
> \*\*Response Structure:\*\*\
> \- \*\*exercise\*\*: Type of exercise being summarized.\
> \- \*\*metrics\*\*: Contains various measurements from the session.\
> \- \*\*summary\*\*: Descriptive overview of performance.\
> \- \*\*user\_info\*\*: Basic info about the user.\
> \- \*\*session\_date\*\*: Date when the session was recorded.\
> \
> \*\*Note:\*\* Ensure the \`session\_id\` exists. If \`demo=true\` is used, the system returns the pre-seeded demo session summary.

```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":"Enter your bearer token (Firebase auth) in the format: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Enter your API key in the header: API-KEY: <api_key>"}}},"paths":{"/jumping/sessions/{session_id}/summary/":{"get":{"operationId":"jumping_sessions_summary_list","summary":"Get Summary of a Session","description":"### Retrieve Session Summary\n\nThis endpoint provides a summary of a specific session, including key performance metrics, user data, and session creation details.\n\n**Usage Example:**\nSend a GET request to `/jumping/{session_id}/summary/` where `{session_id}` is the unique session ID.\n\n**Query Parameters:**\n- `demo` *(boolean, optional)*: Set to `true` to retrieve a pre-generated demo summary instead of a real session.\n\n**Response Structure:**\n- **exercise**: Type of exercise being summarized.\n- **metrics**: Contains various measurements from the session.\n- **summary**: Descriptive overview of performance.\n- **user_info**: Basic info about the user.\n- **session_date**: Date when the session was recorded.\n\n**Note:** Ensure the `session_id` exists. If `demo=true` is used, the system returns the pre-seeded demo session summary.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the session.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the demo session summary instead of a real one.","required":false}],"responses":{"200":{"description":"Successfully retrieved session summary.","content":{"application/json":{"schema":{"description":"Object containing session summary details.","required":["metrics","summary","user_info","created_at"],"type":"object","properties":{"exercise":{"description":"Type of exercise being summarized.","type":"string"},"metrics":{"description":"Object containing various performance metrics.","type":"object","additionalProperties":{"description":"Array of numeric values for each metric.","type":"array","items":{"type":"number"}}},"summary":{"description":"Object containing summary details of the session.","type":"object","additionalProperties":{"description":"Summary information for each key.","type":"string"}},"user_info":{"description":"Object containing user information.","required":["name","age","weight","height","gender"],"type":"object","properties":{"name":{"description":"Full name of the user.","type":"string"},"age":{"description":"Age of the user.","type":"integer"},"weight":{"description":"Weight of the user in kilograms.","type":"number"},"height":{"description":"Height of the user in centimeters.","type":"number"},"gender":{"description":"Gender of the user.","type":"string"}}},"created_at":{"description":"Object containing the date and time of session creation.","required":["date","time"],"type":"object","properties":{"date":{"description":"Date when the session was created, in 'YYYY-MM-DD' format.","type":"string","format":"date"},"time":{"description":"Time when the session was created, in 'HH:MM AM/PM' format.","type":"string","format":"time"}}}}}}}},"400":{"description":"Bad Request - Invalid `session_id` provided.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Access token is missing or invalid.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"403":{"description":"Forbidden - User lacks necessary permissions.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"404":{"description":"Not Found - No session data found for the provided `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}}},"tags":["jumping"]}}}}
```

## Generate Summary Threads for a Session

> \### Generate Summary Threads\
> \
> This endpoint generates summary threads for a given session based on predefined summary blocks and metrics.\
> \
> \*\*Usage Example:\*\*\
> Send a \`POST\` request to \`/jumping/sessions/{session\_id}/summary/\` where \`{session\_id}\` is the unique identifier of the session.\
> \
> \*\*Parameters:\*\*\
> \- \`session\_id\` \*(string, required)\*: The unique identifier of the session for which summary threads are to be generated.\
> \
> \*\*Response Structure:\*\*\
> Upon a successful request, the endpoint returns a JSON object mapping each block name to its corresponding thread ID.\
> \
> \*\*Example Response for 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",\
> }\
> \`\`\`\
> \
> \*\*Example Response for 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",\
> }\
> \`\`\`\
> \
> \*\*Notes:\*\*\
> \- Ensure that the \`session\_id\` provided is valid and corresponds to an existing session in the system.\
> \- The user must have the necessary permissions to generate summary threads.

````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":"Enter your bearer token (Firebase auth) in the format: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Enter your API key in the header: API-KEY: <api_key>"}}},"paths":{"/jumping/sessions/{session_id}/summary/":{"post":{"operationId":"jumping_sessions_summary_create","summary":"Generate Summary Threads for a Session","description":"### Generate Summary Threads\n\nThis endpoint generates summary threads for a given session based on predefined summary blocks and metrics.\n\n**Usage Example:**\nSend a `POST` request to `/jumping/sessions/{session_id}/summary/` where `{session_id}` is the unique identifier of the session.\n\n**Parameters:**\n- `session_id` *(string, required)*: The unique identifier of the session for which summary threads are to be generated.\n\n**Response Structure:**\nUpon a successful request, the endpoint returns a JSON object mapping each block name to its corresponding thread ID.\n\n**Example Response for 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**Example Response for 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**Notes:**\n- Ensure that the `session_id` provided is valid and corresponds to an existing session in the system.\n- The user must have the necessary permissions to generate summary threads.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the session.","required":true},{"schema":{"type":"string","enum":["metric","imperial"]},"name":"measurement_system","in":"query","description":"Measurement system: 'metric' or 'imperial'","required":false}],"responses":{"201":{"description":"Successfully generated summary threads.","content":{"application/json":{"schema":{"description":"Dictionary mapping block names to their corresponding thread IDs, including a final summary thread.","type":"object","additionalProperties":{"description":"Thread ID corresponding to the block name.","type":"string"}}}}},"400":{"description":"Bad Request - Invalid `session_id` provided.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Access token is missing or invalid.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"403":{"description":"Forbidden - User lacks necessary permissions.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"404":{"description":"Not Found - No session data found for the provided `session_id`.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"required":["error"],"type":"object","properties":{"error":{"description":"Error message.","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/api-documentation/developer-resources-and-api-reference/api-reference/v.2/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.
