# Mobility Assessment

## 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\*\* (Mobility Assessment). 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\_name\*\* \*(string, required)\*: The name of the exercise to be performed. Choose one of the following:\
> \- \*\*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:\
> \
> \`\`\`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 'body\_joint\_angles=ankle, knee' \\\
> &#x20;    https\://\<backend-link>/mobility-assessment/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":{"/mobility-assessment/sessions/":{"post":{"operationId":"mobility-assessment_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** (Mobility Assessment). 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_name** *(string, required)*: The name of the exercise to be performed. Choose one of the following:\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:\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 'body_joint_angles=ankle, knee' \\\n     https://<backend-link>/mobility-assessment/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":["mobility-assessment"],"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: 'Overhead Squat', 'Joint Angle Mobility'"},"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"]}}}}}}}}
````

## Retrieve Mobility Assessment Session

> Retrieve details of a specific \*\*Mobility Assessment\*\* session identified by its \`session\_id\`. This endpoint returns information such as the number of segments, video URLs, angle data, timestamps, and other session metadata.\
> \
> \### Path Parameter\
> \- \*\*session\_id\*\* \*(string, required)\*: Unique identifier of the Mobility Assessment session to retrieve.\
> \
> \### Query Parameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Set to \`true\` to retrieve the pre-generated demo session instead of a real session.\
> \
> \### Successful Response (HTTP 200)\
> \
> A JSON object containing:\
> \
> \- \*\*segments\*\* \*(integer)\*: The total number of segments in this mobility assessment.\
> \- \*\*video\_url\*\* \*(string, URI)\*: URL of the original uploaded video.\
> \- \*\*analyzed\_video\_url\*\* \*(string, URI, optional)\*: URL of the analyzed (processed) video.\
> \- \*\*activity\*\* \*(string)\*: The type of activity, e.g., \`Mobility Assessment\`.\
> \- \*\*title\*\* \*(string)\*: Title or name of the session.\
> \- \*\*user\_name\*\* \*(string)\*: Name of the user associated with the session.\
> \- \*\*created\_at\*\* \*(object)\*: An object with \`date\` and \`time\` for the session's creation.\
> &#x20; \- \*\*date\*\* \*(string)\*: Format \`DD/MM/YYYY\`.\
> &#x20; \- \*\*time\*\* \*(string)\*: Format \`HH:MM AM/PM\`.\
> \- \*\*exercise\*\* \*(string)\*: The exercise name or type (e.g., \`Overhead Squad\`).\
> \- \*\*angles\*\* \*(object)\*: An object containing any angle data relevant to the mobility assessment.\
> &#x20; \- \*\*hip\_angle\*\* \*(array of numbers)\*: Example array of hip angles.\
> &#x20; \- \*\*ankle\_angle\*\* \*(array of numbers)\*: Example array of ankle angles.\
> &#x20; \- ... (additional angle fields as needed)\
> \- \*\*all\_timestamps\*\* \*(array of numbers)\*: Array of timestamps corresponding to the angle data.\
> \
> \### Error Responses\
> \
> \- \*\*400 Bad Request\*\*: Invalid or missing parameters.\
> \- \*\*401 Unauthorized\*\*: Missing or invalid authentication token.\
> \- \*\*403 Forbidden\*\*: User lacks permission to retrieve this session.\
> \- \*\*404 Not Found\*\*: Session not found.\
> \- \*\*500 Internal Server Error\*\*: Unexpected error occurred on the server.\
> \
> A valid API-KEY token must be provided in the \`Authorization\` header.

```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":{"/mobility-assessment/sessions/{session_id}/":{"get":{"operationId":"mobility-assessment_sessions_read","summary":"Retrieve Mobility Assessment Session","description":"Retrieve details of a specific **Mobility Assessment** session identified by its `session_id`. This endpoint returns information such as the number of segments, video URLs, angle data, timestamps, and other session metadata.\n\n### Path Parameter\n- **session_id** *(string, required)*: Unique identifier of the Mobility Assessment session to retrieve.\n\n### Query Parameter\n- **demo** *(boolean, optional)*: Set to `true` to retrieve the pre-generated demo session instead of a real session.\n\n### Successful Response (HTTP 200)\n\nA JSON object containing:\n\n- **segments** *(integer)*: The total number of segments in this mobility assessment.\n- **video_url** *(string, URI)*: URL of the original uploaded video.\n- **analyzed_video_url** *(string, URI, optional)*: URL of the analyzed (processed) video.\n- **activity** *(string)*: The type of activity, e.g., `Mobility Assessment`.\n- **title** *(string)*: Title or name of the session.\n- **user_name** *(string)*: Name of the user associated with the session.\n- **created_at** *(object)*: An object with `date` and `time` for the session's creation.\n  - **date** *(string)*: Format `DD/MM/YYYY`.\n  - **time** *(string)*: Format `HH:MM AM/PM`.\n- **exercise** *(string)*: The exercise name or type (e.g., `Overhead Squad`).\n- **angles** *(object)*: An object containing any angle data relevant to the mobility assessment.\n  - **hip_angle** *(array of numbers)*: Example array of hip angles.\n  - **ankle_angle** *(array of numbers)*: Example array of ankle angles.\n  - ... (additional angle fields as needed)\n- **all_timestamps** *(array of numbers)*: Array of timestamps corresponding to the angle data.\n\n### Error Responses\n\n- **400 Bad Request**: Invalid or missing parameters.\n- **401 Unauthorized**: Missing or invalid authentication token.\n- **403 Forbidden**: User lacks permission to retrieve this session.\n- **404 Not Found**: Session not found.\n- **500 Internal Server Error**: Unexpected error occurred on the server.\n\nA valid API-KEY token must be provided in the `Authorization` header.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"The unique identifier of the Mobility Assessment session to retrieve.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the pre-generated demo session instead of a real session.","required":false}],"responses":{"200":{"description":"Successfully retrieved Mobility Assessment session data.","content":{"application/json":{"schema":{"required":["segments","video_url","activity","title","user_name","created_at","exercise","angles","all_timestamps"],"type":"object","properties":{"segments":{"description":"Number of segments in this mobility assessment.","type":"integer"},"video_url":{"description":"URL of the original video.","type":"string","format":"uri"},"analyzed_video_url":{"description":"Optional URL of the processed video.","type":"string","format":"uri"},"activity":{"description":"Type of activity, e.g., 'Mobility Assessment'.","type":"string"},"title":{"description":"A user-friendly session title.","type":"string"},"user_name":{"description":"Name of the user associated with this session.","type":"string"},"created_at":{"description":"A date/time object indicating when this session was created.","type":"object","properties":{"date":{"description":"Date of creation, format 'DD/MM/YYYY'.","type":"string"},"time":{"description":"Time of creation, format 'HH:MM AM/PM'.","type":"string"}}},"exercise":{"description":"The exercise name, e.g. 'Overhead Squad'.","type":"string"},"angles":{"description":"Object containing arrays of angle data relevant to the mobility assessment.","type":"object","additionalProperties":{"description":"An array of numeric values for a specific angle metric.","type":"array","items":{"type":"number"}}},"all_timestamps":{"description":"Array of numeric timestamps corresponding to each angle data entry.","type":"array","items":{"type":"number"}}}}}}},"400":{"description":"Bad Request - Invalid or missing parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A descriptive error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Missing or invalid authentication token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error indicating that token credentials are missing or invalid.","type":"string"}}}}}},"403":{"description":"Forbidden - The user does not have permission to retrieve this session.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"User is not allowed to retrieve this session.","type":"string"}}}}}},"404":{"description":"Not Found - The session was not found or does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating the session could not be located.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred on the server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A detailed error message describing the server-side failure.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Export Session Data (Mobility Assessment)

> Exports landmark data and angle data for a specific mobility-related session. This endpoint returns minimal metadata, including only \`activity\`, \`angles\`, \`all\_timestamps\`, and \`keypoints\` with various arrays of landmark points.\
> \
> \### Path Parameter\
> \- \*\*session\_id\*\* \*(string, required)\*: The unique identifier of the session whose data is being exported.\
> \
> \### Query Parameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Set to \`true\` to retrieve the demo session data instead of a real one.\
> \
> \### Successful Response (HTTP 200)\
> \
> A JSON object containing:\
> \
> \- \*\*activity\*\* \*(string)\*: The type of activity (e.g. 'Mobility Assessment').\
> \- \*\*angles\*\* \*(object)\*: An object containing any angle data relevant to the mobility assessment.\
> &#x20; \- \*\*hip\_angle\*\* \*(array of numbers)\*: Example array of hip angles.\
> &#x20; \- \*\*ankle\_angle\*\* \*(array of numbers)\*: Example array of ankle angles.\
> &#x20; \- ... (additional angle fields as needed)\
> \- \*\*all\_timestamps\*\* \*(array of numbers)\*: Array of timestamps corresponding to each data point.\
> \- \*\*keypoints\*\* \*(object)\*: Contains arrays of landmark points. Examples include:\
> &#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.\
> \
> \### Error Responses\
> \
> \- \*\*400 Bad Request\*\*: Invalid or missing parameters.\
> \- \*\*401 Unauthorized\*\*: Missing or invalid authentication token.\
> \- \*\*403 Forbidden\*\*: Insufficient privileges to retrieve this data.\
> \- \*\*404 Not Found\*\*: The session does not exist.\
> \- \*\*500 Internal Server Error\*\*: An unexpected error occurred.\
> \
> A valid API-KEY token must be provided in the \`Authorization\` header.

```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":{"/mobility-assessment/sessions/{session_id}/export/":{"get":{"operationId":"mobility-assessment_sessions_export_list","summary":"Export Session Data (Mobility Assessment)","description":"Exports landmark data and angle data for a specific mobility-related session. This endpoint returns minimal metadata, including only `activity`, `angles`, `all_timestamps`, and `keypoints` with various arrays of landmark points.\n\n### Path Parameter\n- **session_id** *(string, required)*: The unique identifier of the session whose data is being exported.\n\n### Query Parameter\n- **demo** *(boolean, optional)*: Set to `true` to retrieve the demo session data instead of a real one.\n\n### Successful Response (HTTP 200)\n\nA JSON object containing:\n\n- **activity** *(string)*: The type of activity (e.g. 'Mobility Assessment').\n- **angles** *(object)*: An object containing any angle data relevant to the mobility assessment.\n  - **hip_angle** *(array of numbers)*: Example array of hip angles.\n  - **ankle_angle** *(array of numbers)*: Example array of ankle angles.\n  - ... (additional angle fields as needed)\n- **all_timestamps** *(array of numbers)*: Array of timestamps corresponding to each data point.\n- **keypoints** *(object)*: Contains arrays of landmark points. Examples include:\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\n### Error Responses\n\n- **400 Bad Request**: Invalid or missing parameters.\n- **401 Unauthorized**: Missing or invalid authentication token.\n- **403 Forbidden**: Insufficient privileges to retrieve this data.\n- **404 Not Found**: The session does not exist.\n- **500 Internal Server Error**: An unexpected error occurred.\n\nA valid API-KEY token must be provided in the `Authorization` header.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"The unique identifier of the session whose data is being exported.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the demo session data instead of a real one.","required":false}],"responses":{"200":{"description":"Session data exported successfully.","content":{"application/json":{"schema":{"required":["activity","angles","all_timestamps","keypoints"],"type":"object","properties":{"activity":{"description":"Type of activity (e.g., 'Mobility Assessment').","type":"string"},"angles":{"description":"Key-value pairs for angle metrics. Each value is an array of numbers.","type":"object","additionalProperties":{"description":"An array of numeric angle values.","type":"array","items":{"type":"number"}}},"all_timestamps":{"description":"Array of numeric timestamps corresponding to each data point.","type":"array","items":{"type":"number"}},"keypoints":{"description":"Contains arrays of landmark points for each tracked body part.","type":"object","additionalProperties":{"description":"An array of numeric values for the specified landmark key.","type":"array","items":{"type":"number"}}}}}}}},"400":{"description":"Bad Request - Possibly due to invalid or missing session_id.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A descriptive error message.","type":"string"}}}}}},"401":{"description":"Unauthorized - Missing or invalid authentication token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating missing or invalid token credentials.","type":"string"}}}}}},"403":{"description":"Forbidden - Insufficient privileges to retrieve session data.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating that the user is not allowed to access this data.","type":"string"}}}}}},"404":{"description":"Not Found - The session does not exist.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating that the requested session could not be found.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Unexpected error on the server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A detailed error message describing the server-side failure.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Retrieve the saved report configuration for a session

> Returns the current display settings for the specified Joint Angle mobility session.\
> \
> \- \*\*Path Parameter\*\*\
> &#x20; \- \`session\_id\` \*(string, required)\*: Identifier of the session to query.\
> \
> \*\*Responses\*\*\
> \- \*\*200 OK\*\*: Configuration was found and returned.\
> &#x20; \- \`shown\_angles\`: Array of joint-angle keys the user has selected.\
> &#x20; \- \`comments\`: Map of any free-form notes keyed by angle.\
> \- \*\*401 Unauthorized\*\*: No valid authentication credentials provided.\
> \- \*\*403 Forbidden\*\*: You’re not allowed to view this session’s settings.\
> \- \*\*404 Not Found\*\*: The session ID does not correspond to a stored configuration.\
> \- \*\*500 Internal Server Error\*\*: An unexpected error occurred on the server.

```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":{"/mobility-assessment/sessions/{session_id}/joint-mobility-config/":{"get":{"operationId":"mobility-assessment_sessions_joint-mobility-config_list","summary":"Retrieve the saved report configuration for a session","description":"Returns the current display settings for the specified Joint Angle mobility session.\n\n- **Path Parameter**\n  - `session_id` *(string, required)*: Identifier of the session to query.\n\n**Responses**\n- **200 OK**: Configuration was found and returned.\n  - `shown_angles`: Array of joint-angle keys the user has selected.\n  - `comments`: Map of any free-form notes keyed by angle.\n- **401 Unauthorized**: No valid authentication credentials provided.\n- **403 Forbidden**: You’re not allowed to view this session’s settings.\n- **404 Not Found**: The session ID does not correspond to a stored configuration.\n- **500 Internal Server Error**: An unexpected error occurred on the server.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Mobility session identifier","required":true}],"responses":{"200":{"description":"Configuration retrieved successfully.","content":{"application/json":{"schema":{"required":["shown_angles","comments"],"type":"object","properties":{"shown_angles":{"description":"Selected joint-angle keys","type":"array","items":{"type":"string"}},"comments":{"description":"Optional notes for each angle","type":"object","additionalProperties":{"type":"string"}}}}}}},"401":{"description":"Unauthorized – Authentication credentials were missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"403":{"description":"Forbidden – You do not have permission to view this configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"404":{"description":"Not Found – No report configuration exists for that session.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Internal Server Error – Something went wrong on our end.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Create or update the report configuration for a session

> Saves your chosen display settings for the specified Joint Angle mobility session.\
> \
> \- \*\*Path Parameter\*\*\
> &#x20; \- \`session\_id\` \*(string, required)\*: Session identifier.\
> \
> \- \*\*Request Body\*\*\
> &#x20; \- \`shown\_angles\` \*(array\[string], optional)\*: Joint-angle keys you want to display.\
> &#x20; \- \`comments\` \*(object\[string→string], optional)\*: Any notes per angle.\
> \
> \*\*Responses\*\*\
> \- \*\*200 OK\*\*: Configuration saved successfully (returns the stored settings).\
> \- \*\*400 Bad Request\*\*: One or more fields were invalid — see \`errors\` for details.\
> \- \*\*401 Unauthorized\*\*: No valid authentication credentials provided.\
> \- \*\*403 Forbidden\*\*: You’re not allowed to modify this session’s settings.\
> \- \*\*500 Internal Server Error\*\*: An unexpected error occurred while saving.

```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":{"/mobility-assessment/sessions/{session_id}/joint-mobility-config/":{"post":{"operationId":"mobility-assessment_sessions_joint-mobility-config_create","summary":"Create or update the report configuration for a session","description":"Saves your chosen display settings for the specified Joint Angle mobility session.\n\n- **Path Parameter**\n  - `session_id` *(string, required)*: Session identifier.\n\n- **Request Body**\n  - `shown_angles` *(array[string], optional)*: Joint-angle keys you want to display.\n  - `comments` *(object[string→string], optional)*: Any notes per angle.\n\n**Responses**\n- **200 OK**: Configuration saved successfully (returns the stored settings).\n- **400 Bad Request**: One or more fields were invalid — see `errors` for details.\n- **401 Unauthorized**: No valid authentication credentials provided.\n- **403 Forbidden**: You’re not allowed to modify this session’s settings.\n- **500 Internal Server Error**: An unexpected error occurred while saving.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Mobility session identifier","required":true}],"responses":{"200":{"description":"Configuration saved and returned.","content":{"application/json":{"schema":{"required":["shown_angles","comments"],"type":"object","properties":{"shown_angles":{"description":"Updated list of displayed angles","type":"array","items":{"type":"string"}},"comments":{"description":"Updated notes per angle","type":"object","additionalProperties":{"type":"string"}}}}}}},"400":{"description":"Bad Request – Validation failed for one or more fields.","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"description":"Mapping of field names to error messages","type":"object","additionalProperties":{"type":"string"}}}}}}},"401":{"description":"Unauthorized – Authentication credentials were missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"403":{"description":"Forbidden – You do not have permission to modify this configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Internal Server Error – Something went wrong saving your data.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["mobility-assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"shown_angles":{"description":"Angles to show","type":"array","items":{"type":"string"}},"comments":{"description":"Optional comments keyed by angle","type":"object","additionalProperties":{"type":"string"}}}}}},"required":true}}}}}
```

## Generate Joint Angle Mobility Report

> Generates a summarized Joint Angle Mobility report for a given \`session\_id\`.\
> \
> \### Path Parameter\
> \- \*\*session\_id\*\* \*(string, required)\*: The unique identifier of the mobility session.\
> \
> \### Successful Response (HTTP 200)\
> \
> Returns a JSON object containing:\
> \
> \- \*\*title\*\* \*(string)\*: The session’s title.\
> \- \*\*angles\*\* \*(object)\*: Keys are joint names, values are:\
> &#x20; \- \*\*max\*\* \*(number|null)\*\
> &#x20; \- \*\*min\*\* \*(number|null)\*\
> &#x20; \- \*\*values\*\* \*(array\[number])\* \
> \- \*\*exercise\*\* \*(string)\*: Always \`Joint Angle Mobility\`.\
> \- \*\*user\_info\*\* \*(object)\*: User details.\
> \- \*\*date\*\* \*(string)\*: Formatted date (DD/MM/YYYY).\
> \- \*\*uploaded\_date\*\* \*(string, date-time)\*: Raw ISO timestamp.\
> \- \*\*shown\_angles\*\* \*(array\[string])\*: Which angles to show.\
> \- \*\*comments\*\* \*(object\[string → string])\*: Per-angle comments.\
> \
> \### Error Responses\
> \
> \- \*\*400 Bad Request\*\*: Invalid session type or parameters.\
> \- \*\*404 Not Found\*\*: Session not found.\
> \- \*\*500 Internal Server Error\*\*: Unexpected server error.\
> \
> Requires A valid API-KEY token in the \`Authorization\` header.

```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":{"/mobility-assessment/sessions/{session_id}/joint-mobility/":{"post":{"operationId":"mobility-assessment_sessions_joint-mobility_create","summary":"Generate Joint Angle Mobility Report","description":"Generates a summarized Joint Angle Mobility report for a given `session_id`.\n\n### Path Parameter\n- **session_id** *(string, required)*: The unique identifier of the mobility session.\n\n### Successful Response (HTTP 200)\n\nReturns a JSON object containing:\n\n- **title** *(string)*: The session’s title.\n- **angles** *(object)*: Keys are joint names, values are:\n  - **max** *(number|null)*\n  - **min** *(number|null)*\n  - **values** *(array[number])* \n- **exercise** *(string)*: Always `Joint Angle Mobility`.\n- **user_info** *(object)*: User details.\n- **date** *(string)*: Formatted date (DD/MM/YYYY).\n- **uploaded_date** *(string, date-time)*: Raw ISO timestamp.\n- **shown_angles** *(array[string])*: Which angles to show.\n- **comments** *(object[string → string])*: Per-angle comments.\n\n### Error Responses\n\n- **400 Bad Request**: Invalid session type or parameters.\n- **404 Not Found**: Session not found.\n- **500 Internal Server Error**: Unexpected server error.\n\nRequires A valid API-KEY token in the `Authorization` header.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the mobility session","required":true}],"responses":{"200":{"description":"Joint Angle Mobility report retrieved successfully.","content":{"application/json":{"schema":{"required":["title","angles","exercise","user_info","date","uploaded_date"],"type":"object","properties":{"title":{"description":"Session title","type":"string"},"angles":{"description":"Summary of joint angles keyed by joint name.","type":"object","additionalProperties":{"required":["max","min","values"],"type":"object","properties":{"max":{"description":"Maximum angle or null","type":"number"},"min":{"description":"Minimum angle or null","type":"number"},"values":{"description":"Original angle values","type":"array","items":{"type":"number"}}}}},"exercise":{"description":"Exercise name, 'Joint Angle Mobility'","type":"string"},"user_info":{"description":"User details associated with the session","type":"object","additionalProperties":{"description":"User field value","type":"string"}},"date":{"description":"Session date in DD/MM/YYYY format","type":"string"},"uploaded_date":{"description":"Raw ISO timestamp of upload","type":"string","format":"date-time"},"shown_angles":{"description":"Angles the user has chosen to display","type":"array","items":{"type":"string"}},"comments":{"description":"Per-angle comments","type":"object","additionalProperties":{"description":"Comment text","type":"string"}}}}}}},"400":{"description":"Bad Request - Invalid exercise type or parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating the request was malformed or invalid.","type":"string"}}}}}},"403":{"description":"Forbidden - Insufficient privileges to retrieve session data.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating that the user is not allowed to access this data.","type":"string"}}}}}},"404":{"description":"Not Found - Session data not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating that the requested session could not be found.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Unexpected error occurred.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating an unexpected server error.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Create Recommendations Threads

> \### Create Recommendations Threads\
> \
> This endpoint generates personalized recommendation threads based on the user's Overhead Squat 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 \`/mobility-assessment/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 from the Overhead Squat report.\
> \
> \*\*Example Response:\*\*\
> \`\`\`json\
> {\
> &#x20;   "ankle\_dorsiflexion": "thread\_boQ0PSivWvPHIx4MQ02HqSEX",\
> &#x20;   "hip\_abduction": "thread\_eoTqfX3qWuT2IrEhZpGcem7L",\
> &#x20;   "hip\_flexion": "thread\_0pJjWIs5ybuo5gzRJd1ykgaB",\
> &#x20;   "knee\_flexion": "thread\_8gp2spSn8XasAOafDwwzw5QT",\
> &#x20;   "knee\_movement": "thread\_8gp2spSn8XasAOafDwwzw5QT",\
> &#x20;   "final\_summary": "thread\_P3MqG76m9s6qlYwINJrlNomB"\
> }\
> \`\`\`\
> \
> \*\*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":{"/mobility-assessment/sessions/{session_id}/recommendation/":{"post":{"operationId":"mobility-assessment_sessions_recommendation_create","summary":"Create Recommendations Threads","description":"### Create Recommendations Threads\n\nThis endpoint generates personalized recommendation threads based on the user's Overhead Squat 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 `/mobility-assessment/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 from the Overhead Squat report.\n\n**Example Response:**\n```json\n{\n    \"ankle_dorsiflexion\": \"thread_boQ0PSivWvPHIx4MQ02HqSEX\",\n    \"hip_abduction\": \"thread_eoTqfX3qWuT2IrEhZpGcem7L\",\n    \"hip_flexion\": \"thread_0pJjWIs5ybuo5gzRJd1ykgaB\",\n    \"knee_flexion\": \"thread_8gp2spSn8XasAOafDwwzw5QT\",\n    \"knee_movement\": \"thread_8gp2spSn8XasAOafDwwzw5QT\",\n    \"final_summary\": \"thread_P3MqG76m9s6qlYwINJrlNomB\"\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 for which recommendation threads are to be created.","required":true}],"responses":{"200":{"description":"Threads created successfully.","content":{"application/json":{"schema":{"description":"A dictionary mapping each metric to its corresponding thread ID.","required":["ankle_dorsiflexion","hip_abduction","hip_flexion","knee_flexion","knee_movement","final_summary"],"type":"object","properties":{"ankle_dorsiflexion":{"description":"Unique identifier for the ankle dorsiflexion recommendation thread.","type":"string"},"hip_abduction":{"description":"Unique identifier for the hip abduction recommendation thread.","type":"string"},"hip_flexion":{"description":"Unique identifier for the hip flexion recommendation thread.","type":"string"},"knee_flexion":{"description":"Unique identifier for the knee flexion recommendation thread.","type":"string"},"knee_movement":{"description":"Unique identifier for the knee movement recommendation thread.","type":"string"},"final_summary":{"description":"Unique identifier for the final summary recommendation thread.","type":"string"}}}}}},"401":{"description":"Unauthorized - Missing or invalid token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"An error message indicating that credentials were not provided or invalid.","type":"string"}}}}}},"403":{"description":"Forbidden - Invalid payment plan or insufficient privileges to create recommendation threads.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating user cannot access the resource.","type":"string"}}}}}},"404":{"description":"Not Found - Session not found or missing metrics.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating the session does not exist or lacks data.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A detailed error message describing the failure.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
````

## Generate Overhead Squat Report

> Generates or retrieves a detailed Overhead Squat report for a given \`session\_id\`. This endpoint consolidates session metrics, organizes them into groups, and embeds user and session metadata.\
> \
> \### Path Parameter\
> \- \*\*session\_id\*\* \*(string, required)\*: The unique identifier of the Overhead Squat session.\
> \
> \### Query Parameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Set to \`true\` to retrieve the demo Overhead Squat report instead of a real one.\
> \
> \### Successful Response (HTTP 200)\
> \
> Returns a JSON object containing:\
> \
> \- \*\*grouped\_data\*\* \*(object)\*: Organized by metric groups (e.g., \`hip\_flexion\`, \`knee\_flexion\`). Each group has:\
> &#x20; \- \*\*metrics\*\* \*(object)\*: Key-value pairs of aggregated metric results.\
> &#x20; \- \*\*graph\_data\*\* \*(object)\*: Arrays of numeric data for graph plotting.\
> \
> \- \*\*graph\_timestamps\*\* \*(array\[number])\*: List of timestamps (in milliseconds) corresponding to each graph data.\
> \- \*\*knee\_movement\_phases\*\* \*(object)\*: URLs of visualization images showing different views of knee movement phases.\
> &#x20; \- \*\*left\*\* \*(string)\*: URL for the left view image.\
> &#x20; \- \*\*right\*\* \*(string)\*: URL for the right view image.\
> &#x20; \- \*\*front\*\* \*(string)\*: URL for the front view image.\
> \- \*\*user\_info\*\* \*(object, optional)\*: Basic user details associated with the session.\
> \- \*\*exercise\*\* \*(string)\*: The exercise name/type (e.g., \`Overhead Squat\`).\
> \- \*\*report\_comments\*\* \*(object, optional)\*: Detailed feedback on different movement aspects.\
> \- \*\*output\_quality\*\* \*(object, optional)\*: Any additional quality or scoring info.\
> \- \*\*date\*\* \*(string, format=DD/MM/YYYY)\*: The creation or processing date of the session.\
> \
> \### Example Successful Response\
> \
> \`\`\`json\
> {\
> &#x20; "grouped\_data": {\
> &#x20;   "hip\_flexion": {\
> &#x20;     "metrics": {\
> &#x20;       "left\_hip\_flexion": 12.5,\
> &#x20;       "right\_hip\_flexion": 15.3,\
> &#x20;       "hip\_flexion\_asymmetry": 2.8\
> &#x20;     },\
> &#x20;     "graph\_data": {\
> &#x20;       "lhip\_flexion": \[10, 20, 30],\
> &#x20;       "rhip\_flexion": \[15, 25, 35]\
> &#x20;     }\
> &#x20;   },\
> &#x20;   "ankle\_dorsiflexion": {\
> &#x20;     "metrics": {\
> &#x20;       "left\_ankle\_flexion": 9.8,\
> &#x20;       "right\_ankle\_flexion": 10.5,\
> &#x20;       "ankle\_flexion\_asymmetry": 0.7\
> &#x20;     },\
> &#x20;     "graph\_data": {\
> &#x20;       "lank\_flexion": \[6, 12, 18],\
> &#x20;       "rank\_flexion": \[7, 14, 21]\
> &#x20;     }\
> &#x20;   }\
> &#x20; },\
> &#x20; "graph\_timestamps": \[0, 5000, 10000],\
> &#x20; "knee\_movement\_phases": {\
> &#x20;   "left": "<https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../left.png",\\>
> &#x20;   "right": "<https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../right.png",\\>
> &#x20;   "front": "<https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../front.png"\\>
> &#x20; },\
> &#x20; "user\_info": {\
> &#x20;   "weight": 70,\
> &#x20;   "email": "<natalia3@gmail.com>",\
> &#x20;   ...\
> &#x20; },\
> &#x20; "exercise": "Overhead Squat",\
> &#x20; "report\_comments": {\
> &#x20;   "hip\_flexion": "For optimal hip flexion improvement, focus on dynamic stretching and mobility exercises.",\
> &#x20;   "ankle\_dorsiflexion": "Natalia, your left ankle dorsiflexion is at 9.0 degrees...",\
> &#x20;   "final\_summary": "Natalia, your knee and hip flexion metrics are strong...",\
> &#x20;   "hip\_abduction": "For optimal hip abduction performance, focus on improving..."\
> &#x20; },\
> &#x20; "output\_quality": {\
> &#x20;   "mobility\_index": 46,\
> &#x20;   "quality\_index": 67\
> &#x20; },\
> &#x20; "date": "11/03/2025"\
> }\
> \`\`\`\
> \
> \*\*Error Handling\*\*\
> \
> \- \*\*403 Forbidden\*\*: Returned if the user's payment plan is not Standard, Pro, or Enterprise.\
> \- \*\*404 Not Found\*\*: Returned if the session data cannot be found or no metrics are returned.\
> \- \*\*500 Internal Server Error\*\*: Returned if an unexpected error occurs on the server.\
> \
> A valid API-KEY token must be provided in the \`Authorization\` header.

````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":{"/mobility-assessment/sessions/{session_id}/report/":{"post":{"operationId":"mobility-assessment_sessions_report_create","summary":"Generate Overhead Squat Report","description":"Generates or retrieves a detailed Overhead Squat report for a given `session_id`. This endpoint consolidates session metrics, organizes them into groups, and embeds user and session metadata.\n\n### Path Parameter\n- **session_id** *(string, required)*: The unique identifier of the Overhead Squat session.\n\n### Query Parameter\n- **demo** *(boolean, optional)*: Set to `true` to retrieve the demo Overhead Squat report instead of a real one.\n\n### Successful Response (HTTP 200)\n\nReturns a JSON object containing:\n\n- **grouped_data** *(object)*: Organized by metric groups (e.g., `hip_flexion`, `knee_flexion`). Each group has:\n  - **metrics** *(object)*: Key-value pairs of aggregated metric results.\n  - **graph_data** *(object)*: Arrays of numeric data for graph plotting.\n\n- **graph_timestamps** *(array[number])*: List of timestamps (in milliseconds) corresponding to each graph data.\n- **knee_movement_phases** *(object)*: URLs of visualization images showing different views of knee movement phases.\n  - **left** *(string)*: URL for the left view image.\n  - **right** *(string)*: URL for the right view image.\n  - **front** *(string)*: URL for the front view image.\n- **user_info** *(object, optional)*: Basic user details associated with the session.\n- **exercise** *(string)*: The exercise name/type (e.g., `Overhead Squat`).\n- **report_comments** *(object, optional)*: Detailed feedback on different movement aspects.\n- **output_quality** *(object, optional)*: Any additional quality or scoring info.\n- **date** *(string, format=DD/MM/YYYY)*: The creation or processing date of the session.\n\n### Example Successful Response\n\n```json\n{\n  \"grouped_data\": {\n    \"hip_flexion\": {\n      \"metrics\": {\n        \"left_hip_flexion\": 12.5,\n        \"right_hip_flexion\": 15.3,\n        \"hip_flexion_asymmetry\": 2.8\n      },\n      \"graph_data\": {\n        \"lhip_flexion\": [10, 20, 30],\n        \"rhip_flexion\": [15, 25, 35]\n      }\n    },\n    \"ankle_dorsiflexion\": {\n      \"metrics\": {\n        \"left_ankle_flexion\": 9.8,\n        \"right_ankle_flexion\": 10.5,\n        \"ankle_flexion_asymmetry\": 0.7\n      },\n      \"graph_data\": {\n        \"lank_flexion\": [6, 12, 18],\n        \"rank_flexion\": [7, 14, 21]\n      }\n    }\n  },\n  \"graph_timestamps\": [0, 5000, 10000],\n  \"knee_movement_phases\": {\n    \"left\": \"https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../left.png\",\n    \"right\": \"https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../right.png\",\n    \"front\": \"https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../front.png\"\n  },\n  \"user_info\": {\n    \"weight\": 70,\n    \"email\": \"natalia3@gmail.com\",\n    ...\n  },\n  \"exercise\": \"Overhead Squat\",\n  \"report_comments\": {\n    \"hip_flexion\": \"For optimal hip flexion improvement, focus on dynamic stretching and mobility exercises.\",\n    \"ankle_dorsiflexion\": \"Natalia, your left ankle dorsiflexion is at 9.0 degrees...\",\n    \"final_summary\": \"Natalia, your knee and hip flexion metrics are strong...\",\n    \"hip_abduction\": \"For optimal hip abduction performance, focus on improving...\"\n  },\n  \"output_quality\": {\n    \"mobility_index\": 46,\n    \"quality_index\": 67\n  },\n  \"date\": \"11/03/2025\"\n}\n```\n\n**Error Handling**\n\n- **403 Forbidden**: Returned if the user's payment plan is not Standard, Pro, or Enterprise.\n- **404 Not Found**: Returned if the session data cannot be found or no metrics are returned.\n- **500 Internal Server Error**: Returned if an unexpected error occurs on the server.\n\nA valid API-KEY token must be provided in the `Authorization` header.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the Overhead Squat session.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the demo Overhead Squat report instead of a real one.","required":false}],"responses":{"200":{"description":"Overhead Squat report generated/retrieved successfully.","content":{"application/json":{"schema":{"required":["grouped_data","graph_timestamps","knee_movement_phases","user_info","exercise","output_quality","date"],"type":"object","properties":{"grouped_data":{"description":"Groups of metrics and graph data related to Overhead Squat performance.","type":"object","additionalProperties":{"required":["metrics","graph_data"],"type":"object","properties":{"metrics":{"description":"Aggregated metric results (e.g., left/right asymmetry).","type":"object","additionalProperties":{"description":"A numeric metric value.","type":"number"}},"graph_data":{"description":"Arrays of numeric values for plotting graphs.","type":"object","additionalProperties":{"description":"An array of numbers for plotting one metric graph.","type":"array","items":{"type":"number"}}}}}},"graph_timestamps":{"description":"A list of timestamps (in milliseconds) corresponding to each graph data.","type":"array","items":{"type":"number"}},"knee_movement_phases":{"description":"URLs of visualization images showing different views of knee movement phases.","type":"object","properties":{"left":{"description":"Left view image URL","type":"string"},"right":{"description":"Right view image URL","type":"string"},"front":{"description":"Front view image URL","type":"string"}}},"user_info":{"description":"Optional basic user details (e.g., weight, age, email).","type":"object","additionalProperties":{"description":"Key-value pairs of user data.","type":"string"}},"exercise":{"description":"Name/type of the exercise (e.g., 'Overhead Squat').","type":"string"},"output_quality":{"description":"Optional object containing scoring metrics or indices.","type":"object","additionalProperties":{"description":"A numeric score or index related to output quality.","type":"number"}},"report_comments":{"description":"Detailed feedback for different movement aspects.","type":"object","properties":{"hip_flexion":{"description":"Recommendations for improving hip flexion.","type":"string"},"ankle_dorsiflexion":{"description":"Assessment and improvements for ankle dorsiflexion.","type":"string"},"final_summary":{"description":"Overall session summary and recommendations.","type":"string"},"hip_abduction":{"description":"Guidance for improving hip abduction.","type":"string"}}},"date":{"description":"A string representing the session date in DD/MM/YYYY format.","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 permission to create sessions (admin-only).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error indicating insufficient privileges.","type":"string"}}}}}},"404":{"description":"Not Found - Session data cannot be found or no metrics returned.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating session or metrics missing.","type":"string"}}}}}},"500":{"description":"Internal Server Error - Unexpected error occurred.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A detailed error message describing the server-side failure.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
````

## Retrieve Overhead Squat Summary

> Retrieves a high-level summary of Overhead Squat session data identified by its \`session\_id\`. This endpoint returns grouped metrics (e.g., hip\_flexion, knee\_flexion) without detailed graph data, as well as optional user and session metadata.\
> \
> \### Path Parameter\
> \- \*\*session\_id\*\* \*(string, required)\*: The unique identifier of the Overhead Squat session.\
> \
> \### Query Parameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Set to \`true\` to retrieve the pre-generated demo Overhead Squat summary instead of a real one.\
> \
> \### Successful Response (HTTP 200)\
> \
> Returns a JSON object containing:\
> \
> \- \*\*grouped\_data\*\* \*(object)\*: High-level metrics grouped by category (e.g., hip\_flexion, knee\_flexion). Each group contains metric keys, each mapping to numeric values.\
> \
> &#x20; \`\`\`json\
> &#x20; {\
> &#x20;   "hip\_flexion": {\
> &#x20;     "left\_hip\_flexion": 84.0,\
> &#x20;     "right\_hip\_flexion": 80.0,\
> &#x20;     "hip\_flexion\_asymmetry": 4.0\
> &#x20;   }\
> &#x20; }\
> &#x20; \`\`\`\
> \
> \- \*\*knee\_movement\_phases\*\* \*(object)\*: URLs of visualization images showing different views of knee movement phases.\
> &#x20; \- \*\*left\*\* \*(string)\*: URL for the left view image.\
> &#x20; \- \*\*right\*\* \*(string)\*: URL for the right view image.\
> &#x20; \- \*\*front\*\* \*(string)\*: URL for the front view image.\
> \
> \- \*\*user\_info\*\* \*(object, optional)\*: Contains user-related fields, e.g., weight, display\_name, email.\
> \- \*\*exercise\*\* \*(string)\*: The exercise name (e.g., \`Overhead Squat\`).\
> \- \*\*output\_quality\*\* \*(object, optional)\*: Contains numeric values or indices (e.g., mobility\_index).\
> \- \*\*summary\*\* \*(object, optional)\*: Contains detailed feedback on different movement aspects.\
> \- \*\*date\*\* \*(string, format=DD/MM/YYYY)\*: The creation/processing date of this session.\
> \
> \### Example Successful Response\
> \
> \`\`\`json\
> {\
> &#x20; "grouped\_data": {\
> &#x20;   "hip\_flexion": {\
> &#x20;     "left\_hip\_flexion": 84.0,\
> &#x20;     "right\_hip\_flexion": 80.0,\
> &#x20;     "hip\_flexion\_asymmetry": 4.0\
> &#x20;   },\
> &#x20;   "hip\_adduction": {\
> &#x20;     "left\_hip\_abduction": 9.0,\
> &#x20;     "right\_hip\_abduction": 16.0,\
> &#x20;     "hip\_abduction\_asymmetry": 7.0\
> &#x20;   },\
> &#x20;   "knee\_flexion": {\
> &#x20;     "left\_knee\_flexion": 79.0,\
> &#x20;     "right\_knee\_flexion": 82.0,\
> &#x20;     "knee\_flexion\_asymmetry": 3.0\
> &#x20;   },\
> &#x20;   "ankle\_dorsiflexion": {\
> &#x20;     "left\_ankle\_flexion": 9.0,\
> &#x20;     "right\_ankle\_flexion": 15.0,\
> &#x20;     "ankle\_flexion\_asymmetry": 6.0\
> &#x20;   }\
> &#x20; },\
> &#x20; "knee\_movement\_phases": {\
> &#x20;   "left": "<https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../left.png",\\>
> &#x20;   "right": "<https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../right.png",\\>
> &#x20;   "front": "<https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../front.png"\\>
> &#x20; },\
> &#x20; "user\_info": {\
> &#x20;   "display\_name": "Natalia Alioth",\
> &#x20;   "weight": 70.0,\
> &#x20;   "email": "<natalia3@gmail.com>",\
> &#x20;   ...\
> &#x20; },\
> &#x20; "exercise": "Overhead Squat",\
> &#x20; "output\_quality": {\
> &#x20;   "mobility\_index": 46.0,\
> &#x20;   "quality\_index": 67.0\
> &#x20; },\
> &#x20; "summary": {\
> &#x20;   "hip\_flexion": "For optimal hip flexion improvement, focus on dynamic stretching and mobility exercises.",\
> &#x20;   "ankle\_dorsiflexion": "Natalia, your left ankle dorsiflexion is at 9.0 degrees...",\
> &#x20;   "final\_summary": "Natalia, your knee and hip flexion metrics are strong...",\
> &#x20;   "hip\_abduction": "For optimal hip abduction performance, focus on improving..."\
> &#x20; },\
> &#x20; "date": "11/03/2025"\
> }\
> \`\`\`\
> \
> \*\*Error Handling\*\*\
> \
> \- \*\*401 Unauthorized\*\*: Missing or invalid token.\
> \- \*\*403 Forbidden\*\*: Payment plan is not valid (Basic, Standard, Pro, or Enterprise required) or user lacks privileges.\
> \- \*\*404 Not Found\*\*: Session data is not found or metrics are missing.\
> \- \*\*500 Internal Server Error\*\*: Unexpected server error.\
> \
> A valid API-KEY token must be provided in the \`Authorization\` header.

````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":{"/mobility-assessment/sessions/{session_id}/summary/":{"get":{"operationId":"mobility-assessment_sessions_summary_list","summary":"Retrieve Overhead Squat Summary","description":"Retrieves a high-level summary of Overhead Squat session data identified by its `session_id`. This endpoint returns grouped metrics (e.g., hip_flexion, knee_flexion) without detailed graph data, as well as optional user and session metadata.\n\n### Path Parameter\n- **session_id** *(string, required)*: The unique identifier of the Overhead Squat session.\n\n### Query Parameter\n- **demo** *(boolean, optional)*: Set to `true` to retrieve the pre-generated demo Overhead Squat summary instead of a real one.\n\n### Successful Response (HTTP 200)\n\nReturns a JSON object containing:\n\n- **grouped_data** *(object)*: High-level metrics grouped by category (e.g., hip_flexion, knee_flexion). Each group contains metric keys, each mapping to numeric values.\n\n  ```json\n  {\n    \"hip_flexion\": {\n      \"left_hip_flexion\": 84.0,\n      \"right_hip_flexion\": 80.0,\n      \"hip_flexion_asymmetry\": 4.0\n    }\n  }\n  ```\n\n- **knee_movement_phases** *(object)*: URLs of visualization images showing different views of knee movement phases.\n  - **left** *(string)*: URL for the left view image.\n  - **right** *(string)*: URL for the right view image.\n  - **front** *(string)*: URL for the front view image.\n\n- **user_info** *(object, optional)*: Contains user-related fields, e.g., weight, display_name, email.\n- **exercise** *(string)*: The exercise name (e.g., `Overhead Squat`).\n- **output_quality** *(object, optional)*: Contains numeric values or indices (e.g., mobility_index).\n- **summary** *(object, optional)*: Contains detailed feedback on different movement aspects.\n- **date** *(string, format=DD/MM/YYYY)*: The creation/processing date of this session.\n\n### Example Successful Response\n\n```json\n{\n  \"grouped_data\": {\n    \"hip_flexion\": {\n      \"left_hip_flexion\": 84.0,\n      \"right_hip_flexion\": 80.0,\n      \"hip_flexion_asymmetry\": 4.0\n    },\n    \"hip_adduction\": {\n      \"left_hip_abduction\": 9.0,\n      \"right_hip_abduction\": 16.0,\n      \"hip_abduction_asymmetry\": 7.0\n    },\n    \"knee_flexion\": {\n      \"left_knee_flexion\": 79.0,\n      \"right_knee_flexion\": 82.0,\n      \"knee_flexion_asymmetry\": 3.0\n    },\n    \"ankle_dorsiflexion\": {\n      \"left_ankle_flexion\": 9.0,\n      \"right_ankle_flexion\": 15.0,\n      \"ankle_flexion_asymmetry\": 6.0\n    }\n  },\n  \"knee_movement_phases\": {\n    \"left\": \"https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../left.png\",\n    \"right\": \"https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../right.png\",\n    \"front\": \"https://storage.googleapis.com/aikonweb001.appspot.com/report-images/.../front.png\"\n  },\n  \"user_info\": {\n    \"display_name\": \"Natalia Alioth\",\n    \"weight\": 70.0,\n    \"email\": \"natalia3@gmail.com\",\n    ...\n  },\n  \"exercise\": \"Overhead Squat\",\n  \"output_quality\": {\n    \"mobility_index\": 46.0,\n    \"quality_index\": 67.0\n  },\n  \"summary\": {\n    \"hip_flexion\": \"For optimal hip flexion improvement, focus on dynamic stretching and mobility exercises.\",\n    \"ankle_dorsiflexion\": \"Natalia, your left ankle dorsiflexion is at 9.0 degrees...\",\n    \"final_summary\": \"Natalia, your knee and hip flexion metrics are strong...\",\n    \"hip_abduction\": \"For optimal hip abduction performance, focus on improving...\"\n  },\n  \"date\": \"11/03/2025\"\n}\n```\n\n**Error Handling**\n\n- **401 Unauthorized**: Missing or invalid token.\n- **403 Forbidden**: Payment plan is not valid (Basic, Standard, Pro, or Enterprise required) or user lacks privileges.\n- **404 Not Found**: Session data is not found or metrics are missing.\n- **500 Internal Server Error**: Unexpected server error.\n\nA valid API-KEY token must be provided in the `Authorization` header.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Unique identifier of the Overhead Squat session.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Set to `true` to retrieve the pre-generated demo Overhead Squat summary instead of a real one.","required":false}],"responses":{"200":{"description":"Overhead Squat summary retrieved successfully.","content":{"application/json":{"schema":{"required":["grouped_data","knee_movement_phases","exercise","date"],"type":"object","properties":{"grouped_data":{"description":"High-level metrics grouped by category (no graph data).","type":"object","additionalProperties":{"description":"An object where each key is a metric name and the value is numeric.","type":"object","additionalProperties":{"description":"Numeric value for the metric.","type":"number"}}},"knee_movement_phases":{"description":"URLs of visualization images showing different views of knee movement phases.","type":"object","properties":{"left":{"description":"Left view image URL","type":"string"},"right":{"description":"Right view image URL","type":"string"},"front":{"description":"Front view image URL","type":"string"}}},"user_info":{"description":"Optional user information (e.g., weight, email).","type":"object","additionalProperties":{"description":"A key-value pair of user metadata.","type":"string"}},"exercise":{"description":"The exercise name/type, e.g. 'Overhead Squat'.","type":"string"},"output_quality":{"description":"Optional object containing numeric scoring or quality indexes.","type":"object","additionalProperties":{"description":"A numeric score or index related to output quality.","type":"number"}},"summary":{"description":"Detailed feedback on different movement aspects.","type":"object","properties":{"hip_flexion":{"description":"Recommendations for improving hip flexion.","type":"string"},"ankle_dorsiflexion":{"description":"Assessment and improvements for ankle dorsiflexion.","type":"string"},"final_summary":{"description":"Overall session summary and recommendations.","type":"string"},"hip_abduction":{"description":"Guidance for improving hip abduction.","type":"string"}}},"date":{"description":"Session date in 'DD/MM/YYYY' format.","type":"string"}}}}}},"401":{"description":"Unauthorized - Missing or invalid token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"An error message indicating that credentials were not provided or invalid.","type":"string"}}}}}},"403":{"description":"Forbidden - Invalid payment plan or insufficient privileges to retrieve the summary.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating user cannot access the resource.","type":"string"}}}}}},"404":{"description":"Not Found - Session not found or missing metrics.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating the session does not exist or lacks data.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A detailed error message describing the failure.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
````

## 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 \`/mobility-assessment/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 metric to its corresponding thread ID.\
> \
> \*\*Example Response:\*\*\
> \`\`\`json\
> {\
> &#x20;   "hip\_flexion": "thread\_x7C4p5ancmeluBmEJgmFwXra",\
> &#x20;   "hip\_abduction": "thread\_lth8oxKfnktwne9ryGZefd6V",\
> &#x20;   "knee\_flexion": "thread\_cM4jY2RLfVNeFIImJXaIinMK",\
> &#x20;   "knee\_movement": "thread\_8gp2spSn8XasAOafDwwzw5QT",\
> &#x20;   "ankle\_dorsiflexion": "thread\_EIwgj822ZHtGCTMucHZDtatH",\
> &#x20;   "final\_summary": "thread\_2XwSNDNrclHgakiBFm4o9K65"\
> }\
> \`\`\`\
> \
> \*\*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":{"/mobility-assessment/sessions/{session_id}/summary/":{"post":{"operationId":"mobility-assessment_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 `/mobility-assessment/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 metric to its corresponding thread ID.\n\n**Example Response:**\n```json\n{\n    \"hip_flexion\": \"thread_x7C4p5ancmeluBmEJgmFwXra\",\n    \"hip_abduction\": \"thread_lth8oxKfnktwne9ryGZefd6V\",\n    \"knee_flexion\": \"thread_cM4jY2RLfVNeFIImJXaIinMK\",\n    \"knee_movement\": \"thread_8gp2spSn8XasAOafDwwzw5QT\",\n    \"ankle_dorsiflexion\": \"thread_EIwgj822ZHtGCTMucHZDtatH\",\n    \"final_summary\": \"thread_2XwSNDNrclHgakiBFm4o9K65\"\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 for which summary threads are to be generated.","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 each metric to its corresponding thread ID.","required":["hip_flexion","hip_abduction","knee_flexion","knee_movement","ankle_dorsiflexion","final_summary"],"type":"object","properties":{"hip_flexion":{"description":"Unique identifier for the hip flexion summary thread.","type":"string"},"hip_abduction":{"description":"Unique identifier for the hip abduction summary thread.","type":"string"},"knee_flexion":{"description":"Unique identifier for the knee flexion summary thread.","type":"string"},"knee_movement":{"description":"Unique identifier for the knee movement summary thread.","type":"string"},"ankle_dorsiflexion":{"description":"Unique identifier for the ankle dorsiflexion summary thread.","type":"string"},"final_summary":{"description":"Unique identifier for the final summary thread.","type":"string"}}}}}},"401":{"description":"Unauthorized - Missing or invalid token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"An error message indicating that credentials were not provided or invalid.","type":"string"}}}}}},"403":{"description":"Forbidden - Invalid payment plan or insufficient privileges to create recommendation threads.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating user cannot access the resource.","type":"string"}}}}}},"404":{"description":"Not Found - Session not found or missing metrics.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error message indicating the session does not exist or lacks data.","type":"string"}}}}}},"500":{"description":"Internal Server Error - An unexpected error occurred.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A detailed error message describing the failure.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
````


---

# 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/mobility-assessment.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.
