# Mobilitätsbewertung

## Mobility Assessment-Sitzung abrufen

> Ruft Details einer bestimmten \*\*Mobility Assessment\*\*-Sitzung anhand ihrer \`session\_id\` ab. Dieser Endpunkt gibt Informationen wie die Anzahl der Segmente, Video-URLs, Winkeldaten, Zeitstempel und andere Sitzungsmetadaten zurück.\
> \
> \### Pfadparameter\
> \- \*\*session\_id\*\* \*(string, erforderlich)\*: Eindeutiger Identifikator der Mobility Assessment-Sitzung.\
> \
> \### Abfrageparameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Auf \`true\` setzen, um die vorgefertigte Demo-Sitzung abzurufen.\
> \
> \### Erfolgreiche Antwort (HTTP 200)\
> \
> Ein JSON-Objekt mit:\
> \
> \- \*\*segments\*\* \*(integer)\*: Die Gesamtzahl der Segmente in dieser Mobility Assessment.\
> \- \*\*video\_url\*\* \*(string, URI)\*: URL des ursprünglich hochgeladenen Videos.\
> \- \*\*analyzed\_video\_url\*\* \*(string, URI, optional)\*: URL des analysierten (verarbeiteten) Videos.\
> \- \*\*activity\*\* \*(string)\*: Die Art der Aktivität, z.B. \`Mobility Assessment\`.\
> \- \*\*title\*\* \*(string)\*: Titel oder Name der Sitzung.\
> \- \*\*user\_name\*\* \*(string)\*: Name des mit der Sitzung verknüpften Benutzers.\
> \- \*\*created\_at\*\* \*(object)\*: Ein Objekt mit \`date\` und \`time\` für die Erstellung der Sitzung.\
> &#x20; \- \*\*date\*\* \*(string)\*: Format \`DD/MM/YYYY\`.\
> &#x20; \- \*\*time\*\* \*(string)\*: Format \`HH:MM AM/PM\`.\
> \- \*\*exercise\*\* \*(string)\*: Der Übungsname oder -typ (z.B. \`Overhead Squad\`).\
> \- \*\*angles\*\* \*(object)\*: Ein Objekt mit relevanten Winkeldaten für die Mobility Assessment.\
> &#x20; \- \*\*hip\_angle\*\* \*(array of numbers)\*: Beispielarray von Hüftwinkeln.\
> &#x20; \- \*\*ankle\_angle\*\* \*(array of numbers)\*: Beispielarray von Knöchelwinkeln.\
> &#x20; \- ... (weitere Winkelparameter nach Bedarf)\
> \- \*\*all\_timestamps\*\* \*(array of numbers)\*: Array von Zeitstempeln, die den Winkeldaten entsprechen.\
> \
> \### Fehlerantworten\
> \
> \- \*\*400 Bad Request\*\*: Ungültige oder fehlende Parameter.\
> \- \*\*401 Unauthorized\*\*: Fehlender oder ungültiger Authentifizierungstoken.\
> \- \*\*403 Forbidden\*\*: Benutzer hat keine Berechtigung, diese Sitzung abzurufen.\
> \- \*\*404 Not Found\*\*: Sitzung nicht gefunden.\
> \- \*\*500 Internal Server Error\*\*: Unerwarteter Fehler auf dem Server.\
> \
> Ein gültiger API-KEY Token muss im \`Authorization\`-Header angegeben werden.

```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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/":{"get":{"operationId":"mobility-assessment_sessions_read","summary":"Mobility Assessment-Sitzung abrufen","description":"Ruft Details einer bestimmten **Mobility Assessment**-Sitzung anhand ihrer `session_id` ab. Dieser Endpunkt gibt Informationen wie die Anzahl der Segmente, Video-URLs, Winkeldaten, Zeitstempel und andere Sitzungsmetadaten zurück.\n\n### Pfadparameter\n- **session_id** *(string, erforderlich)*: Eindeutiger Identifikator der Mobility Assessment-Sitzung.\n\n### Abfrageparameter\n- **demo** *(boolean, optional)*: Auf `true` setzen, um die vorgefertigte Demo-Sitzung abzurufen.\n\n### Erfolgreiche Antwort (HTTP 200)\n\nEin JSON-Objekt mit:\n\n- **segments** *(integer)*: Die Gesamtzahl der Segmente in dieser Mobility Assessment.\n- **video_url** *(string, URI)*: URL des ursprünglich hochgeladenen Videos.\n- **analyzed_video_url** *(string, URI, optional)*: URL des analysierten (verarbeiteten) Videos.\n- **activity** *(string)*: Die Art der Aktivität, z.B. `Mobility Assessment`.\n- **title** *(string)*: Titel oder Name der Sitzung.\n- **user_name** *(string)*: Name des mit der Sitzung verknüpften Benutzers.\n- **created_at** *(object)*: Ein Objekt mit `date` und `time` für die Erstellung der Sitzung.\n  - **date** *(string)*: Format `DD/MM/YYYY`.\n  - **time** *(string)*: Format `HH:MM AM/PM`.\n- **exercise** *(string)*: Der Übungsname oder -typ (z.B. `Overhead Squad`).\n- **angles** *(object)*: Ein Objekt mit relevanten Winkeldaten für die Mobility Assessment.\n  - **hip_angle** *(array of numbers)*: Beispielarray von Hüftwinkeln.\n  - **ankle_angle** *(array of numbers)*: Beispielarray von Knöchelwinkeln.\n  - ... (weitere Winkelparameter nach Bedarf)\n- **all_timestamps** *(array of numbers)*: Array von Zeitstempeln, die den Winkeldaten entsprechen.\n\n### Fehlerantworten\n\n- **400 Bad Request**: Ungültige oder fehlende Parameter.\n- **401 Unauthorized**: Fehlender oder ungültiger Authentifizierungstoken.\n- **403 Forbidden**: Benutzer hat keine Berechtigung, diese Sitzung abzurufen.\n- **404 Not Found**: Sitzung nicht gefunden.\n- **500 Internal Server Error**: Unerwarteter Fehler auf dem Server.\n\nEin gültiger API-KEY Token muss im `Authorization`-Header angegeben werden.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Der eindeutige Identifikator der Mobility Assessment-Sitzung.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Auf `true` setzen, um die vorgefertigte Demo-Sitzung abzurufen.","required":false}],"responses":{"200":{"description":"Mobility Assessment-Sitzungsdaten erfolgreich abgerufen.","content":{"application/json":{"schema":{"required":["segments","video_url","activity","title","user_name","created_at","exercise","angles","all_timestamps"],"type":"object","properties":{"segments":{"description":"Anzahl der Segmente in dieser Mobility Assessment.","type":"integer"},"video_url":{"description":"URL des ursprünglichen Videos.","type":"string","format":"uri"},"analyzed_video_url":{"description":"Optionale URL des verarbeiteten Videos.","type":"string","format":"uri"},"activity":{"description":"Art der Aktivität, z.B. 'Mobility Assessment'.","type":"string"},"title":{"description":"Ein benutzerfreundlicher Sitzungstitel.","type":"string"},"user_name":{"description":"Name des mit dieser Sitzung verknüpften Benutzers.","type":"string"},"created_at":{"description":"Ein Datum/Zeit-Objekt, das angibt, wann diese Sitzung erstellt wurde.","type":"object","properties":{"date":{"description":"Erstellungsdatum, Format 'DD/MM/YYYY'.","type":"string"},"time":{"description":"Erstellungszeit, Format 'HH:MM AM/PM'.","type":"string"}}},"exercise":{"description":"Der Übungsname, z.B. 'Overhead Squad'.","type":"string"},"angles":{"description":"Objekt mit Arrays von Winkeldaten für die Mobility Assessment.","type":"object","additionalProperties":{"description":"Ein Array von numerischen Werten für eine bestimmte Winkelmetrik.","type":"array","items":{"type":"number"}}},"all_timestamps":{"description":"Array von numerischen Zeitstempeln, die jedem Winkeldateneintrag entsprechen.","type":"array","items":{"type":"number"}}}}}}},"400":{"description":"Ungültige Anfrage - Ungültige oder fehlende Parameter.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine beschreibende Fehlermeldung.","type":"string"}}}}}},"401":{"description":"Nicht autorisiert - Fehlender oder ungültiger Authentifizierungstoken.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehler, der auf fehlende oder ungültige Token-Anmeldeinformationen hinweist.","type":"string"}}}}}},"403":{"description":"Verboten - Der Benutzer hat keine Berechtigung, diese Sitzung abzurufen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Benutzer darf diese Sitzung nicht abrufen.","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Die Sitzung wurde nicht gefunden oder existiert nicht.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die Sitzung nicht gefunden werden konnte.","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Unerwarteter Fehler auf dem Server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine detaillierte Fehlermeldung, die den serverseitigen Fehler beschreibt.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Gelenkwinkel-Mobilitätsbericht generieren

> Generiert einen zusammengefassten Gelenkwinkel-Mobilitätsbericht für eine gegebene \`session\_id\`.\
> \### Pfadparameter\
> \- \*\*session\_id\*\* \*(string, erforderlich)\*: Die eindeutige Kennung der Mobilitätssitzung.\
> \### Erfolgreiche Antwort (HTTP 200)\
> Gibt ein JSON-Objekt zurück mit:\
> \- \*\*title\*\* \*(string)\*: Der Titel der Sitzung. - \*\*angles\*\* \*(object)\*: Schlüssel sind Gelenknamen, Werte sind:\
> &#x20; \- \*\*max\*\* \*(number|null)\*\
> &#x20; \- \*\*min\*\* \*(number|null)\*\
> &#x20; \- \*\*values\*\* \*(array\[number])\* \
> \- \*\*exercise\*\* \*(string)\*: Immer \`Gelenkwinkel-Mobilität\`. - \*\*user\_info\*\* \*(object)\*: Benutzerdetails. - \*\*date\*\* \*(string)\*: Formatierter Datum (TT/MM/JJJJ). - \*\*uploaded\_date\*\* \*(string, date-time)\*: Roh-ISO-Zeitstempel. - \*\*shown\_angles\*\* \*(array\[string])\*: Welche Winkel angezeigt werden sollen. - \*\*comments\*\* \*(object\[string → string])\*: Kommentare pro Winkel.\
> \### Fehlerantworten\
> \- \*\*400 Bad Request\*\*: Ungültiger Sitzungstyp oder Parameter. - \*\*404 Not Found\*\*: Sitzung nicht gefunden. - \*\*500 Internal Server Error\*\*: Unerwarteter Serverfehler.\
> Erfordert einen gültigen API-KEY-Token im \`Authorization\`-Header.<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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/joint-mobility/":{"post":{"operationId":"mobility-assessment_sessions_joint-mobility_create","summary":"Gelenkwinkel-Mobilitätsbericht generieren","description":"Generiert einen zusammengefassten Gelenkwinkel-Mobilitätsbericht für eine gegebene `session_id`.\n### Pfadparameter\n- **session_id** *(string, erforderlich)*: Die eindeutige Kennung der Mobilitätssitzung.\n### Erfolgreiche Antwort (HTTP 200)\nGibt ein JSON-Objekt zurück mit:\n- **title** *(string)*: Der Titel der Sitzung. - **angles** *(object)*: Schlüssel sind Gelenknamen, Werte sind:\n  - **max** *(number|null)*\n  - **min** *(number|null)*\n  - **values** *(array[number])* \n- **exercise** *(string)*: Immer `Gelenkwinkel-Mobilität`. - **user_info** *(object)*: Benutzerdetails. - **date** *(string)*: Formatierter Datum (TT/MM/JJJJ). - **uploaded_date** *(string, date-time)*: Roh-ISO-Zeitstempel. - **shown_angles** *(array[string])*: Welche Winkel angezeigt werden sollen. - **comments** *(object[string → string])*: Kommentare pro Winkel.\n### Fehlerantworten\n- **400 Bad Request**: Ungültiger Sitzungstyp oder Parameter. - **404 Not Found**: Sitzung nicht gefunden. - **500 Internal Server Error**: Unerwarteter Serverfehler.\nErfordert einen gültigen API-KEY-Token im `Authorization`-Header.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Eindeutige Kennung der Mobilitätssitzung","required":true}],"responses":{"200":{"description":"Gelenkwinkel-Mobilitätsbericht erfolgreich abgerufen.","content":{"application/json":{"schema":{"required":["title","angles","exercise","user_info","date","uploaded_date"],"type":"object","properties":{"title":{"description":"Sitzungstitel","type":"string"},"angles":{"description":"Zusammenfassung der Gelenkwinkel nach Gelenknamen.","type":"object","additionalProperties":{"required":["max","min","values"],"type":"object","properties":{"max":{"description":"Maximaler Winkel oder null","type":"number"},"min":{"description":"Minimaler Winkel oder null","type":"number"},"values":{"description":"Originale Winkelwerte","type":"array","items":{"type":"number"}}}}},"exercise":{"description":"Übungsname, 'Gelenkwinkel-Mobilität'","type":"string"},"user_info":{"description":"Benutzerdetails der Sitzung","type":"object","additionalProperties":{"description":"Benutzerfeldwert","type":"string"}},"date":{"description":"Sitzungsdatum im TT/MM/JJJJ-Format","type":"string"},"uploaded_date":{"description":"Roh-ISO-Zeitstempel des Uploads","type":"string","format":"date-time"},"shown_angles":{"description":"Vom Benutzer ausgewählte anzuzeigende Winkel","type":"array","items":{"type":"string"}},"comments":{"description":"Kommentare pro Winkel","type":"object","additionalProperties":{"description":"Kommentartext","type":"string"}}}}}}},"400":{"description":"Ungültige Anfrage - Ungültiger Übungstyp oder Parameter.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die Anfrage fehlerhaft oder ungültig war.","type":"string"}}}}}},"403":{"description":"Verboten - Unzureichende Berechtigungen zum Abrufen der Sitzungsdaten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass der Benutzer nicht auf diese Daten zugreifen darf.\n","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Sitzungsdaten nicht gefunden.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die angeforderte Sitzung nicht gefunden werden konnte.\n","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Unerwarteter Fehler aufgetreten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die einen unerwarteten Serverfehler anzeigt.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Sitzungsdaten exportieren (Mobility Assessment)

> Exportiert Landmarken- und Winkeldaten für eine bestimmte Mobility Assessment-Sitzung. Dieser Endpunkt gibt minimale Metadaten zurück, einschließlich nur \`activity\`, \`angles\`, \`all\_timestamps\` und \`keypoints\` mit verschiedenen Arrays von Landmarkenpunkten.\
> \
> \### Pfadparameter\
> \- \*\*session\_id\*\* \*(string, erforderlich)\*: Der eindeutige Identifikator der Sitzung.\
> \
> \### Abfrageparameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Auf \`true\` setzen, um Demo-Sitzungsdaten abzurufen.\
> \
> \### Erfolgreiche Antwort (HTTP 200)\
> \
> Ein JSON-Objekt mit:\
> \
> \- \*\*activity\*\* \*(string)\*: Die Art der Aktivität (z.B. 'Mobility Assessment').\
> \- \*\*angles\*\* \*(object)\*: Ein Objekt mit relevanten Winkeldaten für die Mobility Assessment.\
> &#x20; \- \*\*hip\_angle\*\* \*(array of numbers)\*: Beispielarray von Hüftwinkeln.\
> &#x20; \- \*\*ankle\_angle\*\* \*(array of numbers)\*: Beispielarray von Knöchelwinkeln.\
> &#x20; \- ... (weitere Winkelparameter nach Bedarf)\
> \- \*\*all\_timestamps\*\* \*(array of numbers)\*: Array von Zeitstempeln für jeden Datenpunkt.\
> \- \*\*keypoints\*\* \*(object)\*: Enthält Arrays von Landmarkenpunkten. Beispiele:\
> &#x20; \- \*\*lknev\*\* \*(array of numbers)\*: Array von linken Knie-Landmarkenpunkten.\
> &#x20; \- \*\*ltoev\*\* \*(array of numbers)\*: Array von linken Zehen-Landmarkenpunkten.\
> &#x20; \- \*\*relbv\*\* \*(array of numbers)\*: Array von rechten Ellenbogen-Landmarkenpunkten.\
> &#x20; \- \*\*rtoey\*\* \*(array of numbers)\*: Array von rechten Zehen-Landmarkenpunkten.\
> &#x20; \- \*\*headv\*\* \*(array of numbers)\*: Array von Kopf-Landmarkenpunkten.\
> &#x20; \- \*\*rearv\*\* \*(array of numbers)\*: Array von rechten Ohr-Landmarkenpunkten.\
> &#x20; \- \*\*rshox\*\* \*(array of numbers)\*: Array von rechten Schulter-Landmarkenpunkten.\
> &#x20; \- \*\*etc\*\* \*(array of numbers)\*: Array aller anderen Landmarkenpunkten.\
> \
> \### Fehlerantworten\
> \
> \- \*\*400 Bad Request\*\*: Ungültige oder fehlende Parameter.\
> \- \*\*401 Unauthorized\*\*: Fehlender oder ungültiger Authentifizierungstoken.\
> \- \*\*403 Forbidden\*\*: Unzureichende Berechtigungen zum Abrufen dieser Daten.\
> \- \*\*404 Not Found\*\*: Die Sitzung existiert nicht.\
> \- \*\*500 Internal Server Error\*\*: Unerwarteter Fehler auf dem Server.\
> \
> Ein gültiger API-KEY Token muss im \`Authorization\`-Header angegeben werden.

```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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/export/":{"get":{"operationId":"mobility-assessment_sessions_export_list","summary":"Sitzungsdaten exportieren (Mobility Assessment)","description":"Exportiert Landmarken- und Winkeldaten für eine bestimmte Mobility Assessment-Sitzung. Dieser Endpunkt gibt minimale Metadaten zurück, einschließlich nur `activity`, `angles`, `all_timestamps` und `keypoints` mit verschiedenen Arrays von Landmarkenpunkten.\n\n### Pfadparameter\n- **session_id** *(string, erforderlich)*: Der eindeutige Identifikator der Sitzung.\n\n### Abfrageparameter\n- **demo** *(boolean, optional)*: Auf `true` setzen, um Demo-Sitzungsdaten abzurufen.\n\n### Erfolgreiche Antwort (HTTP 200)\n\nEin JSON-Objekt mit:\n\n- **activity** *(string)*: Die Art der Aktivität (z.B. 'Mobility Assessment').\n- **angles** *(object)*: Ein Objekt mit relevanten Winkeldaten für die Mobility Assessment.\n  - **hip_angle** *(array of numbers)*: Beispielarray von Hüftwinkeln.\n  - **ankle_angle** *(array of numbers)*: Beispielarray von Knöchelwinkeln.\n  - ... (weitere Winkelparameter nach Bedarf)\n- **all_timestamps** *(array of numbers)*: Array von Zeitstempeln für jeden Datenpunkt.\n- **keypoints** *(object)*: Enthält Arrays von Landmarkenpunkten. Beispiele:\n  - **lknev** *(array of numbers)*: Array von linken Knie-Landmarkenpunkten.\n  - **ltoev** *(array of numbers)*: Array von linken Zehen-Landmarkenpunkten.\n  - **relbv** *(array of numbers)*: Array von rechten Ellenbogen-Landmarkenpunkten.\n  - **rtoey** *(array of numbers)*: Array von rechten Zehen-Landmarkenpunkten.\n  - **headv** *(array of numbers)*: Array von Kopf-Landmarkenpunkten.\n  - **rearv** *(array of numbers)*: Array von rechten Ohr-Landmarkenpunkten.\n  - **rshox** *(array of numbers)*: Array von rechten Schulter-Landmarkenpunkten.\n  - **etc** *(array of numbers)*: Array aller anderen Landmarkenpunkten.\n\n### Fehlerantworten\n\n- **400 Bad Request**: Ungültige oder fehlende Parameter.\n- **401 Unauthorized**: Fehlender oder ungültiger Authentifizierungstoken.\n- **403 Forbidden**: Unzureichende Berechtigungen zum Abrufen dieser Daten.\n- **404 Not Found**: Die Sitzung existiert nicht.\n- **500 Internal Server Error**: Unerwarteter Fehler auf dem Server.\n\nEin gültiger API-KEY Token muss im `Authorization`-Header angegeben werden.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Der eindeutige Identifikator der zu exportierenden Sitzung.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Auf `true` setzen, um Demo-Sitzungsdaten abzurufen.","required":false}],"responses":{"200":{"description":"Sitzungsdaten erfolgreich exportiert.","content":{"application/json":{"schema":{"required":["activity","angles","all_timestamps","keypoints"],"type":"object","properties":{"activity":{"description":"Art der Aktivität (z.B. 'Mobility Assessment').","type":"string"},"angles":{"description":"Schlüssel-Wert-Paare für Winkelmetriken. Jeder Wert ist ein Array von Zahlen.","type":"object","additionalProperties":{"description":"Ein Array von numerischen Winkelwerten.","type":"array","items":{"type":"number"}}},"all_timestamps":{"description":"Array von numerischen Zeitstempeln für jeden Datenpunkt.","type":"array","items":{"type":"number"}},"keypoints":{"description":"Enthält Arrays von Landmarkenpunkten für jeden verfolgten Körperteil.","type":"object","additionalProperties":{"description":"Ein Array von numerischen Werten für den angegebenen Landmarkenschlüssel.","type":"array","items":{"type":"number"}}}}}}}},"400":{"description":"Ungültige Anfrage - Möglicherweise aufgrund ungültiger oder fehlender session_id.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine beschreibende Fehlermeldung.","type":"string"}}}}}},"401":{"description":"Nicht autorisiert - Fehlender oder ungültiger Authentifizierungstoken.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die auf fehlende oder ungültige Token-Anmeldeinformationen hinweist.","type":"string"}}}}}},"403":{"description":"Verboten - Unzureichende Berechtigungen zum Abrufen der Sitzungsdaten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass der Benutzer nicht auf diese Daten zugreifen darf.","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Die Sitzung existiert nicht.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die angeforderte Sitzung nicht gefunden werden konnte.","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Unerwarteter Fehler auf dem Server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine detaillierte Fehlermeldung, die den serverseitigen Fehler beschreibt.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Neue Video-Verarbeitungssitzung erstellen

> Dieser Endpunkt ermöglicht es einem \*\*Admin\*\* (oder Sub-Admin), eine \*\*Videodatei\*\* zur Verarbeitung hochzuladen und eine neue "Sitzung"-Ressource \*\*im Namen eines anderen Benutzers\*\* (Mobility Assessment) zu erstellen. Der Server gibt eine \`session\_id\` zurück, die zum Abfragen oder Abrufen der Sitzungsdetails/Ergebnisse verwendet werden kann.\
> \
> \### Anfragekörper (Multipart/Form-Data)\
> \
> Folgende Felder müssen angegeben werden:\
> \
> \- \*\*user\_id\*\* \*(string, erforderlich)\*: Die ID des Benutzers, für den diese Sitzung erstellt wird.\
> \- \*\*video\*\* \*(file, erforderlich)\*: Die rohe Videodatei, die verarbeitet werden soll.\
> \- \*\*session\_name\*\* \*(string, optional)\*: Ein lesbarer Name/Titel für die Sitzung.\
> \- \*\*exercise\_name\*\* \*(string, erforderlich)\*: Der Name der durchzuführenden Übung. Wählen Sie eine der folgenden:\
> \- \*\*body\_joint\_angles\*\* \*(array\[string], optional)\*: Eine kommagetrennte Liste von Gelenknamen (z.B. 'elbow, knee, ankle'). Standardmäßig \['all'], falls nicht angegeben.\
> \
> \### Antwortstruktur\
> \
> Bei Erfolg (HTTP 200) ist die Antwort ein JSON-Objekt mit:\
> \
> \- \*\*session\_id\*\* \*(string)\*: Ein eindeutiger Identifikator für die erstellte Sitzung.\
> \- \*\*title\*\* \*(string)\*: Der Sitzungstitel (Standardwert, falls \`session\_name\` nicht angegeben wurde).\
> \
> \### Ablauf\
> 1\. \*\*POST\*\* eine multipart/form-data Anfrage mit den erforderlichen Feldern \`user\_id\` und \`video\` sowie optionalen Feldern.\
> 2\. Geben Sie einen gültigen API-KEY Token im \`Authorization\`-Header an.\
> 3\. Der Aufrufer muss Admin-Rechte haben, um erfolgreich eine Sitzung für einen anderen Benutzer zu erstellen.\
> 4\. Bei Erfolg antwortet der Server mit \`session\_id\` und \`title\`.\
> 5\. Bei einem Fehler (z.B. fehlende Felder, fehlende Berechtigungen) wird ein JSON-Objekt mit einem \`error\`-Schlüssel zurückgegeben.\
> \
> \#### Beispiel 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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/":{"post":{"operationId":"mobility-assessment_sessions_create","summary":"Neue Video-Verarbeitungssitzung erstellen","description":"Dieser Endpunkt ermöglicht es einem **Admin** (oder Sub-Admin), eine **Videodatei** zur Verarbeitung hochzuladen und eine neue \"Sitzung\"-Ressource **im Namen eines anderen Benutzers** (Mobility Assessment) zu erstellen. Der Server gibt eine `session_id` zurück, die zum Abfragen oder Abrufen der Sitzungsdetails/Ergebnisse verwendet werden kann.\n\n### Anfragekörper (Multipart/Form-Data)\n\nFolgende Felder müssen angegeben werden:\n\n- **user_id** *(string, erforderlich)*: Die ID des Benutzers, für den diese Sitzung erstellt wird.\n- **video** *(file, erforderlich)*: Die rohe Videodatei, die verarbeitet werden soll.\n- **session_name** *(string, optional)*: Ein lesbarer Name/Titel für die Sitzung.\n- **exercise_name** *(string, erforderlich)*: Der Name der durchzuführenden Übung. Wählen Sie eine der folgenden:\n- **body_joint_angles** *(array[string], optional)*: Eine kommagetrennte Liste von Gelenknamen (z.B. 'elbow, knee, ankle'). Standardmäßig ['all'], falls nicht angegeben.\n\n### Antwortstruktur\n\nBei Erfolg (HTTP 200) ist die Antwort ein JSON-Objekt mit:\n\n- **session_id** *(string)*: Ein eindeutiger Identifikator für die erstellte Sitzung.\n- **title** *(string)*: Der Sitzungstitel (Standardwert, falls `session_name` nicht angegeben wurde).\n\n### Ablauf\n1. **POST** eine multipart/form-data Anfrage mit den erforderlichen Feldern `user_id` und `video` sowie optionalen Feldern.\n2. Geben Sie einen gültigen API-KEY Token im `Authorization`-Header an.\n3. Der Aufrufer muss Admin-Rechte haben, um erfolgreich eine Sitzung für einen anderen Benutzer zu erstellen.\n4. Bei Erfolg antwortet der Server mit `session_id` und `title`.\n5. Bei einem Fehler (z.B. fehlende Felder, fehlende Berechtigungen) wird ein JSON-Objekt mit einem `error`-Schlüssel zurückgegeben.\n\n#### Beispiel 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-Verarbeitungssitzung erfolgreich erstellt (HTTP 200).","content":{"application/json":{"schema":{"required":["session_id","title"],"type":"object","properties":{"session_id":{"description":"Der eindeutige Identifikator für die erstellte Sitzung.","type":"string"},"title":{"description":"Der Sitzungstitel (Standardwert, falls nicht angegeben).","type":"string"}}}}}},"400":{"description":"Ungültige Anfrage - Möglicherweise aufgrund fehlender `user_id`, fehlender `video` oder ungültiger Formulardaten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Detaillierte Fehlermeldung.","type":"string"}}}}}},"401":{"description":"Nicht autorisiert - Fehlender oder ungültiger Zugriffstoken.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehler, der auf einen fehlenden oder ungültigen Token hinweist.","type":"string"}}}}}},"403":{"description":"Verboten - Der Benutzer hat keine Admin-Berechtigung, um Sitzungen für andere zu erstellen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehler, der auf unzureichende Berechtigungen hinweist.","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Zeigt Geschäftslogikprobleme oder Ressourcenbeschränkungen an (z.B. Sitzungslimit).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die das Problem beschreibt.","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Unerwarteter Fehler auf dem Server.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Detaillierte Fehlermeldung, die auf einen serverseitigen Fehler hinweist.","type":"string"}}}}}}},"tags":["mobility-assessment"],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"user_id":{"type":"string","description":"**Erforderlich.** Die ID des Benutzers, für den diese Sitzung erstellt wird (Formularfeld: Text)."},"video":{"type":"string","description":"**Erforderlich.** Die rohe Videodatei, die verarbeitet werden soll (Formularfeldtyp: file)."},"session_name":{"type":"string","description":"**Optional.** Ein beschreibender Name für die Sitzung (Formularfeld: Text)."},"exercise":{"type":"string","description":"**Erforderlich.** Der Name der Übung. Wählen Sie eine der folgenden: 'Overhead Squat', 'Joint Angle Mobility'"},"body_joint_angles":{"type":"array","description":"**Optional.** Eine kommagetrennte Liste von Gelenknamen. Verfügbare Werte: `'ankle'`, `'knee'`, `'elbow'`, `'hip'`, `'shoulder'`. Beispiel: `ankle,knee,hip`"}},"required":["user_id","video","exercise"]}}}}}}}}
````

## Gespeicherte Berichtskonfiguration für eine Sitzung abrufen

> Gibt die aktuellen Anzeigeeinstellungen für die angegebene Joint Angle Mobility-Sitzung zurück.\
> \
> \- \*\*Pfadparameter\*\*\
> &#x20; \- \`session\_id\` \*(string, erforderlich)\*: Identifikator der abzufragenden Sitzung.\
> \
> \*\*Antworten\*\*\
> \- \*\*200 OK\*\*: Konfiguration wurde gefunden und zurückgegeben.\
> &#x20; \- \`shown\_angles\`: Array von ausgewählten Gelenkwinkelschlüsseln.\
> &#x20; \- \`comments\`: Map mit freien Notizen, nach Winkeln sortiert.\
> \- \*\*401 Unauthorized\*\*: Keine gültigen Authentifizierungsdaten angegeben.\
> \- \*\*403 Forbidden\*\*: Sie dürfen die Einstellungen dieser Sitzung nicht einsehen.\
> \- \*\*404 Not Found\*\*: Die Sitzungs-ID entspricht keiner gespeicherten Konfiguration.\
> \- \*\*500 Internal Server Error\*\*: Unerwarteter Fehler auf dem 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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/joint-mobility-config/":{"get":{"operationId":"mobility-assessment_sessions_joint-mobility-config_list","summary":"Gespeicherte Berichtskonfiguration für eine Sitzung abrufen","description":"Gibt die aktuellen Anzeigeeinstellungen für die angegebene Joint Angle Mobility-Sitzung zurück.\n\n- **Pfadparameter**\n  - `session_id` *(string, erforderlich)*: Identifikator der abzufragenden Sitzung.\n\n**Antworten**\n- **200 OK**: Konfiguration wurde gefunden und zurückgegeben.\n  - `shown_angles`: Array von ausgewählten Gelenkwinkelschlüsseln.\n  - `comments`: Map mit freien Notizen, nach Winkeln sortiert.\n- **401 Unauthorized**: Keine gültigen Authentifizierungsdaten angegeben.\n- **403 Forbidden**: Sie dürfen die Einstellungen dieser Sitzung nicht einsehen.\n- **404 Not Found**: Die Sitzungs-ID entspricht keiner gespeicherten Konfiguration.\n- **500 Internal Server Error**: Unerwarteter Fehler auf dem Server.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Mobility-Sitzungsidentifikator","required":true}],"responses":{"200":{"description":"Konfiguration erfolgreich abgerufen.","content":{"application/json":{"schema":{"required":["shown_angles","comments"],"type":"object","properties":{"shown_angles":{"description":"Ausgewählte Gelenkwinkelschlüssel","type":"array","items":{"type":"string"}},"comments":{"description":"Optionale Notizen für jeden Winkel","type":"object","additionalProperties":{"type":"string"}}}}}}},"401":{"description":"Nicht autorisiert – Authentifizierungsdaten fehlen oder sind ungültig.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"403":{"description":"Verboten – Sie haben keine Berechtigung, diese Konfiguration einzusehen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"404":{"description":"Nicht gefunden – Keine Berichtskonfiguration für diese Sitzung vorhanden.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Interner Serverfehler – Etwas ist auf unserer Seite schiefgelaufen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
```

## Berichtskonfiguration für eine Sitzung erstellen oder aktualisieren

> Speichert Ihre gewählten Anzeigeeinstellungen für die angegebene Joint Angle Mobility-Sitzung.\
> \
> \- \*\*Pfadparameter\*\*\
> &#x20; \- \`session\_id\` \*(string, erforderlich)\*: Sitzungsidentifikator.\
> \
> \- \*\*Anfragekörper\*\*\
> &#x20; \- \`shown\_angles\` \*(array\[string], optional)\*: Gelenkwinkelschlüssel, die angezeigt werden sollen.\
> &#x20; \- \`comments\` \*(object\[string→string], optional)\*: Notizen pro Winkel.\
> \
> \*\*Antworten\*\*\
> \- \*\*200 OK\*\*: Konfiguration erfolgreich gespeichert (gibt die gespeicherten Einstellungen zurück).\
> \- \*\*400 Bad Request\*\*: Ein oder mehrere Felder waren ungültig — siehe \`errors\` für Details.\
> \- \*\*401 Unauthorized\*\*: Keine gültigen Authentifizierungsdaten angegeben.\
> \- \*\*403 Forbidden\*\*: Sie dürfen die Einstellungen dieser Sitzung nicht ändern.\
> \- \*\*500 Internal Server Error\*\*: Unerwarteter Fehler beim Speichern.

```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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/joint-mobility-config/":{"post":{"operationId":"mobility-assessment_sessions_joint-mobility-config_create","summary":"Berichtskonfiguration für eine Sitzung erstellen oder aktualisieren","description":"Speichert Ihre gewählten Anzeigeeinstellungen für die angegebene Joint Angle Mobility-Sitzung.\n\n- **Pfadparameter**\n  - `session_id` *(string, erforderlich)*: Sitzungsidentifikator.\n\n- **Anfragekörper**\n  - `shown_angles` *(array[string], optional)*: Gelenkwinkelschlüssel, die angezeigt werden sollen.\n  - `comments` *(object[string→string], optional)*: Notizen pro Winkel.\n\n**Antworten**\n- **200 OK**: Konfiguration erfolgreich gespeichert (gibt die gespeicherten Einstellungen zurück).\n- **400 Bad Request**: Ein oder mehrere Felder waren ungültig — siehe `errors` für Details.\n- **401 Unauthorized**: Keine gültigen Authentifizierungsdaten angegeben.\n- **403 Forbidden**: Sie dürfen die Einstellungen dieser Sitzung nicht ändern.\n- **500 Internal Server Error**: Unerwarteter Fehler beim Speichern.","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Mobility-Sitzungsidentifikator","required":true}],"responses":{"200":{"description":"Konfiguration gespeichert und zurückgegeben.","content":{"application/json":{"schema":{"required":["shown_angles","comments"],"type":"object","properties":{"shown_angles":{"description":"Aktualisierte Liste der angezeigten Winkel","type":"array","items":{"type":"string"}},"comments":{"description":"Aktualisierte Notizen pro Winkel","type":"object","additionalProperties":{"type":"string"}}}}}}},"400":{"description":"Ungültige Anfrage – Validierung für ein oder mehrere Felder fehlgeschlagen.","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"description":"Mapping von Feldnamen zu Fehlermeldungen","type":"object","additionalProperties":{"type":"string"}}}}}}},"401":{"description":"Nicht autorisiert – Authentifizierungsdaten fehlen oder sind ungültig.","content":{"application/json":{"schema":{"type":"object","properties":{"detail":{"type":"string"}}}}}},"403":{"description":"Verboten – Sie haben keine Berechtigung, diese Konfiguration zu ändern.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}},"500":{"description":"Interner Serverfehler – Etwas ist beim Speichern Ihrer Daten schiefgelaufen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["mobility-assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"shown_angles":{"description":"Anzuzeigende Winkel","type":"array","items":{"type":"string"}},"comments":{"description":"Optionale Kommentare, nach Winkeln sortiert","type":"object","additionalProperties":{"type":"string"}}}}}},"required":true}}}}}
```

## Empfehlungsthreads erstellen

> \### Empfehlungsthreads erstellen\
> Dieser Endpunkt generiert personalisierte Empfehlungsthreads basierend auf dem Overhead-Squat-Bericht des Benutzers für eine bestimmte Sitzung. Diese Threads können verwendet werden, um dem Benutzer maßgeschneiderte Ratschläge, Trainingsvorschläge oder Leistungs- einblicke zu bieten.\
> \*\*Beispielnutzung:\*\*\
> Senden Sie eine \`POST\`-Anfrage an \`/mobility-assessment/sessions/{session\_id}/recommendation/\`, wobei \`{session\_id}\` die eindeutige Kennung der Sitzung ist.\
> \*\*Parameter:\*\*\
> \- \`session\_id\` \*(string, erforderlich)\*: Die eindeutige Kennung der Sitzung, für die Empfehlungsthreads erstellt werden sollen.\
> \*\*Antwortstruktur:\*\*\
> Bei einer erfolgreichen Anfrage gibt der Endpunkt ein JSON-Objekt zurück, das Thread-IDs den jeweiligen Metriken aus dem Overhead-Squat-Bericht zuordnet.\
> \*\*Beispielantwort:\*\*\
> \`\`\`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"\
> } \`\`\`\
> \*\*Hinweis:\*\*\
> \- Stellen Sie sicher, dass die angegebene \`session\_id\` gültig ist und einer bestehenden Sitzung im System entspricht. - Der Benutzer muss einen aktiven Zahlungsplan haben, um diese Funktion nutzen zu können.<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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/recommendation/":{"post":{"operationId":"mobility-assessment_sessions_recommendation_create","summary":"Empfehlungsthreads erstellen","description":"### Empfehlungsthreads erstellen\nDieser Endpunkt generiert personalisierte Empfehlungsthreads basierend auf dem Overhead-Squat-Bericht des Benutzers für eine bestimmte Sitzung. Diese Threads können verwendet werden, um dem Benutzer maßgeschneiderte Ratschläge, Trainingsvorschläge oder Leistungs- einblicke zu bieten.\n**Beispielnutzung:**\nSenden Sie eine `POST`-Anfrage an `/mobility-assessment/sessions/{session_id}/recommendation/`, wobei `{session_id}` die eindeutige Kennung der Sitzung ist.\n**Parameter:**\n- `session_id` *(string, erforderlich)*: Die eindeutige Kennung der Sitzung, für die Empfehlungsthreads erstellt werden sollen.\n**Antwortstruktur:**\nBei einer erfolgreichen Anfrage gibt der Endpunkt ein JSON-Objekt zurück, das Thread-IDs den jeweiligen Metriken aus dem Overhead-Squat-Bericht zuordnet.\n**Beispielantwort:**\n```json {\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**Hinweis:**\n- Stellen Sie sicher, dass die angegebene `session_id` gültig ist und einer bestehenden Sitzung im System entspricht. - Der Benutzer muss einen aktiven Zahlungsplan haben, um diese Funktion nutzen zu können.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Eindeutige Kennung der Sitzung, für die Empfehlungsthreads erstellt werden sollen.\n","required":true}],"responses":{"200":{"description":"Threads erfolgreich erstellt.","content":{"application/json":{"schema":{"description":"Ein Wörterbuch, das jede Metrik ihrer entsprechenden Thread-ID zuordnet.","required":["ankle_dorsiflexion","hip_abduction","hip_flexion","knee_flexion","knee_movement","final_summary"],"type":"object","properties":{"ankle_dorsiflexion":{"description":"Eindeutige Kennung für den Sprunggelenks-Dorsalflexions-Empfehlungsthread.\n","type":"string"},"hip_abduction":{"description":"Eindeutige Kennung für den Hüftabduktions-Empfehlungsthread.","type":"string"},"hip_flexion":{"description":"Eindeutige Kennung für den Hüftflexions-Empfehlungsthread.","type":"string"},"knee_flexion":{"description":"Eindeutige Kennung für den Kniebeugungs-Empfehlungsthread.","type":"string"},"knee_movement":{"description":"Eindeutige Kennung für den Kniebewegungs-Empfehlungsthread.","type":"string"},"final_summary":{"description":"Eindeutige Kennung für den zusammenfassenden Empfehlungsthread.","type":"string"}}}}}},"401":{"description":"Nicht autorisiert - Fehlender oder ungültiger Token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine Fehlermeldung, die anzeigt, dass keine Anmeldedaten bereitgestellt wurden oder diese ungültig sind.\n","type":"string"}}}}}},"403":{"description":"Verboten - Ungültiger Zahlungsplan oder unzureichende Berechtigungen zum Erstellen von Empfehlungsthreads.\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass der Benutzer nicht auf die Ressource zugreifen kann.","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Sitzung nicht gefunden oder Metriken fehlen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die Sitzung nicht existiert oder keine Daten enthält.\n","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Ein unerwarteter Fehler ist aufgetreten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine detaillierte Fehlermeldung, die den Fehler beschreibt.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
````

## Overhead-Squat-Bericht generieren

> Generiert oder ruft einen detaillierten Overhead-Squat-Bericht für eine gegebene \`session\_id\` ab. Dieser Endpunkt konsolidiert Sitzungsmetriken, organisiert sie in Gruppen und fügt Benutzer- und Sitzungsmetadaten ein.\
> \### Pfadparameter\
> \- \*\*session\_id\*\* \*(string, erforderlich)\*: Die eindeutige Kennung der Overhead-Squat-Sitzung.\
> \### Abfrageparameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Auf \`true\` setzen, um den Demo-Overhead-Squat-Bericht anstelle eines echten abzurufen.\
> \### Erfolgreiche Antwort (HTTP 200)\
> Gibt ein JSON-Objekt zurück mit:\
> \- \*\*grouped\_data\*\* \*(object)\*: Nach Metrikengruppen organisiert (z.B. \`hip\_flexion\`, \`knee\_flexion\`). Jede Gruppe hat:\
> &#x20; \- \*\*metrics\*\* \*(object)\*: Schlüssel-Wert-Paare aggregierter Metrikergebnisse.\
> &#x20; \- \*\*graph\_data\*\* \*(object)\*: Arrays numerischer Daten zur Diagrammerstellung.\
> \- \*\*graph\_timestamps\*\* \*(array\[number])\*: Liste von Zeitstempeln (in Millisekunden) für jede Diagrammdaten. - \*\*knee\_movement\_phases\*\* \*(object)\*: URLs von Visualisierungsbildern, die verschiedene Ansichten der Kniebewegungsphasen zeigen.\
> &#x20; \- \*\*left\*\* \*(string)\*: URL für das Bild der linken Ansicht.\
> &#x20; \- \*\*right\*\* \*(string)\*: URL für das Bild der rechten Ansicht.\
> &#x20; \- \*\*front\*\* \*(string)\*: URL für das Bild der Frontansicht.\
> \- \*\*user\_info\*\* \*(object, optional)\*: Grundlegende Benutzerdetails der Sitzung. - \*\*exercise\*\* \*(string)\*: Der Übungsname/-typ (z.B. \`Overhead Squat\`). - \*\*report\_comments\*\* \*(object, optional)\*: Detailliertes Feedback zu verschiedenen Bewegungsaspekten. - \*\*output\_quality\*\* \*(object, optional)\*: Zusätzliche Qualitäts- oder Bewertungsinformationen. - \*\*date\*\* \*(string, format=TT/MM/JJJJ)\*: Das Erstellungs- oder Verarbeitungsdatum der Sitzung.\
> \### Beispiel für eine erfolgreiche Antwort\
> \`\`\`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": "Für eine optimale Verbesserung der Hüftbeugung konzentrieren Sie sich auf dynamische Dehn- und Mobilitätsübungen.",\
> &#x20;   "ankle\_dorsiflexion": "Natalia, Ihre linke Sprunggelenksdorsalflexion beträgt 9,0 Grad...",\
> &#x20;   "final\_summary": "Natalia, Ihre Knie- und Hüftbeugungsmetriken sind stark...",\
> &#x20;   "hip\_abduction": "Für eine optimale Hüftabduktionsleistung konzentrieren Sie sich auf die Verbesserung..."\
> &#x20; },\
> &#x20; "output\_quality": {\
> &#x20;   "mobility\_index": 46,\
> &#x20;   "quality\_index": 67\
> &#x20; },\
> &#x20; "date": "11/03/2025"\
> } \`\`\`\
> \*\*Fehlerbehandlung\*\*\
> \- \*\*403 Forbidden\*\*: Wird zurückgegeben, wenn der Zahlungsplan des Benutzers nicht Standard, Pro oder Enterprise ist. - \*\*404 Not Found\*\*: Wird zurückgegeben, wenn die Sitzungsdaten nicht gefunden werden können oder keine Metriken zurückgegeben werden. - \*\*500 Internal Server Error\*\*: Wird zurückgegeben, wenn ein unerwarteter Fehler auf dem Server auftritt.\
> Ein gültiger API-KEY-Token muss im \`Authorization\`-Header bereitgestellt werden.<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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/report/":{"post":{"operationId":"mobility-assessment_sessions_report_create","summary":"Overhead-Squat-Bericht generieren","description":"Generiert oder ruft einen detaillierten Overhead-Squat-Bericht für eine gegebene `session_id` ab. Dieser Endpunkt konsolidiert Sitzungsmetriken, organisiert sie in Gruppen und fügt Benutzer- und Sitzungsmetadaten ein.\n### Pfadparameter\n- **session_id** *(string, erforderlich)*: Die eindeutige Kennung der Overhead-Squat-Sitzung.\n### Abfrageparameter\n- **demo** *(boolean, optional)*: Auf `true` setzen, um den Demo-Overhead-Squat-Bericht anstelle eines echten abzurufen.\n### Erfolgreiche Antwort (HTTP 200)\nGibt ein JSON-Objekt zurück mit:\n- **grouped_data** *(object)*: Nach Metrikengruppen organisiert (z.B. `hip_flexion`, `knee_flexion`). Jede Gruppe hat:\n  - **metrics** *(object)*: Schlüssel-Wert-Paare aggregierter Metrikergebnisse.\n  - **graph_data** *(object)*: Arrays numerischer Daten zur Diagrammerstellung.\n- **graph_timestamps** *(array[number])*: Liste von Zeitstempeln (in Millisekunden) für jede Diagrammdaten. - **knee_movement_phases** *(object)*: URLs von Visualisierungsbildern, die verschiedene Ansichten der Kniebewegungsphasen zeigen.\n  - **left** *(string)*: URL für das Bild der linken Ansicht.\n  - **right** *(string)*: URL für das Bild der rechten Ansicht.\n  - **front** *(string)*: URL für das Bild der Frontansicht.\n- **user_info** *(object, optional)*: Grundlegende Benutzerdetails der Sitzung. - **exercise** *(string)*: Der Übungsname/-typ (z.B. `Overhead Squat`). - **report_comments** *(object, optional)*: Detailliertes Feedback zu verschiedenen Bewegungsaspekten. - **output_quality** *(object, optional)*: Zusätzliche Qualitäts- oder Bewertungsinformationen. - **date** *(string, format=TT/MM/JJJJ)*: Das Erstellungs- oder Verarbeitungsdatum der Sitzung.\n### Beispiel für eine erfolgreiche Antwort\n```json {\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\": \"Für eine optimale Verbesserung der Hüftbeugung konzentrieren Sie sich auf dynamische Dehn- und Mobilitätsübungen.\",\n    \"ankle_dorsiflexion\": \"Natalia, Ihre linke Sprunggelenksdorsalflexion beträgt 9,0 Grad...\",\n    \"final_summary\": \"Natalia, Ihre Knie- und Hüftbeugungsmetriken sind stark...\",\n    \"hip_abduction\": \"Für eine optimale Hüftabduktionsleistung konzentrieren Sie sich auf die Verbesserung...\"\n  },\n  \"output_quality\": {\n    \"mobility_index\": 46,\n    \"quality_index\": 67\n  },\n  \"date\": \"11/03/2025\"\n} ```\n**Fehlerbehandlung**\n- **403 Forbidden**: Wird zurückgegeben, wenn der Zahlungsplan des Benutzers nicht Standard, Pro oder Enterprise ist. - **404 Not Found**: Wird zurückgegeben, wenn die Sitzungsdaten nicht gefunden werden können oder keine Metriken zurückgegeben werden. - **500 Internal Server Error**: Wird zurückgegeben, wenn ein unerwarteter Fehler auf dem Server auftritt.\nEin gültiger API-KEY-Token muss im `Authorization`-Header bereitgestellt werden.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Eindeutige Kennung der Overhead-Squat-Sitzung.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Auf `true` setzen, um den Demo-Overhead-Squat-Bericht anstelle eines echten abzurufen.\n","required":false}],"responses":{"200":{"description":"Overhead-Squat-Bericht erfolgreich generiert/abgerufen.","content":{"application/json":{"schema":{"required":["grouped_data","graph_timestamps","knee_movement_phases","user_info","exercise","output_quality","date"],"type":"object","properties":{"grouped_data":{"description":"Gruppen von Metriken und Diagrammdaten zur Overhead-Squat-Leistung.\n","type":"object","additionalProperties":{"required":["metrics","graph_data"],"type":"object","properties":{"metrics":{"description":"Aggregierte Metrikergebnisse (z.B. links/rechts Asymmetrie).","type":"object","additionalProperties":{"description":"Ein numerischer Metrikwert.","type":"number"}},"graph_data":{"description":"Arrays numerischer Werte zur Diagrammerstellung.","type":"object","additionalProperties":{"description":"Ein Array von Zahlen für die Darstellung einer Metrik.","type":"array","items":{"type":"number"}}}}}},"graph_timestamps":{"description":"Eine Liste von Zeitstempeln (in Millisekunden) für jede Diagrammdaten.\n","type":"array","items":{"type":"number"}},"knee_movement_phases":{"description":"URLs von Visualisierungsbildern, die verschiedene Ansichten der Kniebewegungsphasen zeigen.\n","type":"object","properties":{"left":{"description":"URL für das Bild der linken Ansicht","type":"string"},"right":{"description":"URL für das Bild der rechten Ansicht","type":"string"},"front":{"description":"URL für das Bild der Frontansicht","type":"string"}}},"user_info":{"description":"Optionale grundlegende Benutzerdetails (z.B. Gewicht, Alter, E-Mail).","type":"object","additionalProperties":{"description":"Schlüssel-Wert-Paare von Benutzerdaten.","type":"string"}},"exercise":{"description":"Name/Typ der Übung (z.B. 'Overhead Squat').","type":"string"},"output_quality":{"description":"Optionales Objekt mit Bewertungsmetriken oder Indizes.","type":"object","additionalProperties":{"description":"Ein numerischer Score oder Index zur Ausgabequalität.","type":"number"}},"report_comments":{"description":"Detailliertes Feedback zu verschiedenen Bewegungsaspekten.","type":"object","properties":{"hip_flexion":{"description":"Empfehlungen zur Verbesserung der Hüftbeugung.","type":"string"},"ankle_dorsiflexion":{"description":"Bewertung und Verbesserungen für die Sprunggelenksdorsalflexion.","type":"string"},"final_summary":{"description":"Zusammenfassung der Sitzung und Empfehlungen.","type":"string"},"hip_abduction":{"description":"Anleitung zur Verbesserung der Hüftabduktion.","type":"string"}}},"date":{"description":"Eine Zeichenkette, die das Sitzungsdatum im TT/MM/JJJJ-Format darstellt.","type":"string"}}}}}},"401":{"description":"Nicht autorisiert - Fehlender oder ungültiger Zugriffstoken.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehler, der auf einen fehlenden oder ungültigen Token hinweist.","type":"string"}}}}}},"403":{"description":"Verboten - Der Benutzer hat keine Berechtigung zum Erstellen von Sitzungen (nur Admins).\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehler, der auf unzureichende Berechtigungen hinweist.","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Sitzungsdaten können nicht gefunden werden oder keine Metriken zurückgegeben.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die Sitzung oder Metriken fehlen.","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Unerwarteter Fehler aufgetreten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine detaillierte Fehlermeldung, die den serverseitigen Fehler beschreibt.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
````

## Overhead-Squat-Zusammenfassung abrufen

> Ruft eine hochrangige Zusammenfassung der Overhead-Squat-Sitzungsdaten ab, die durch ihre \`session\_id\` identifiziert werden. Dieser Endpunkt gibt gruppierte Metriken (z.B. hip\_flexion, knee\_flexion) ohne detaillierte Diagrammdaten zurück, sowie optionale Benutzer- und Sitzungsmetadaten.\
> \### Pfadparameter\
> \- \*\*session\_id\*\* \*(string, erforderlich)\*: Die eindeutige Kennung der Overhead-Squat-Sitzung.\
> \### Abfrageparameter\
> \- \*\*demo\*\* \*(boolean, optional)\*: Auf \`true\` setzen, um die vorgefertigte Demo-Overhead-Squat-Zusammenfassung anstelle einer echten abzurufen.\
> \### Erfolgreiche Antwort (HTTP 200)\
> Gibt ein JSON-Objekt zurück mit:\
> \- \*\*grouped\_data\*\* \*(object)\*: Hochrangige Metriken nach Kategorie gruppiert (z.B. hip\_flexion, knee\_flexion). Jede Gruppe enthält Metrikschlüssel, die numerischen Werten zugeordnet sind. - \*\*knee\_movement\_phases\*\* \*(object)\*: URLs von Visualisierungsbildern, die verschiedene Ansichten der Kniebewegungsphasen zeigen.\
> &#x20; \- \*\*left\*\* \*(string)\*: URL für das Bild der linken Ansicht.\
> &#x20; \- \*\*right\*\* \*(string)\*: URL für das Bild der rechten Ansicht.\
> &#x20; \- \*\*front\*\* \*(string)\*: URL für das Bild der Frontansicht.\
> \- \*\*user\_info\*\* \*(object, optional)\*: Enthält benutzerbezogene Felder, z.B. Gewicht, display\_name, E-Mail. - \*\*exercise\*\* \*(string)\*: Der Übungsname (z.B. \`Overhead Squat\`). - \*\*output\_quality\*\* \*(object, optional)\*: Enthält numerische Werte oder Indizes (z.B. mobility\_index). - \*\*summary\*\* \*(object, optional)\*: Enthält detailliertes Feedback zu verschiedenen Bewegungsaspekten. - \*\*date\*\* \*(string, format=TT/MM/JJJJ)\*: Das Erstellungs-/Verarbeitungsdatum dieser Sitzung.\
> \### Beispiel für eine erfolgreiche Antwort\
> \`\`\`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": "Für eine optimale Verbesserung der Hüftbeugung konzentrieren Sie sich auf dynamische Dehn- und Mobilitätsübungen.",\
> &#x20;   "ankle\_dorsiflexion": "Natalia, Ihre linke Sprunggelenksdorsalflexion beträgt 9,0 Grad...",\
> &#x20;   "final\_summary": "Natalia, Ihre Knie- und Hüftbeugungsmetriken sind stark...",\
> &#x20;   "hip\_abduction": "Für eine optimale Hüftabduktionsleistung konzentrieren Sie sich auf die Verbesserung..."\
> &#x20; },\
> &#x20; "date": "11/03/2025"\
> } \`\`\`\
> \*\*Fehlerbehandlung\*\*\
> \- \*\*401 Unauthorized\*\*: Fehlender oder ungültiger Token. - \*\*403 Forbidden\*\*: Der Zahlungsplan ist nicht gültig (Basic, Standard, Pro oder Enterprise erforderlich) oder der Benutzer hat keine Berechtigungen. - \*\*404 Not Found\*\*: Sitzungsdaten wurden nicht gefunden oder Metriken fehlen. - \*\*500 Internal Server Error\*\*: Unerwarteter Serverfehler.\
> Ein gültiger API-KEY-Token muss im \`Authorization\`-Header bereitgestellt werden.<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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/summary/":{"get":{"operationId":"mobility-assessment_sessions_summary_list","summary":"Overhead-Squat-Zusammenfassung abrufen","description":"Ruft eine hochrangige Zusammenfassung der Overhead-Squat-Sitzungsdaten ab, die durch ihre `session_id` identifiziert werden. Dieser Endpunkt gibt gruppierte Metriken (z.B. hip_flexion, knee_flexion) ohne detaillierte Diagrammdaten zurück, sowie optionale Benutzer- und Sitzungsmetadaten.\n### Pfadparameter\n- **session_id** *(string, erforderlich)*: Die eindeutige Kennung der Overhead-Squat-Sitzung.\n### Abfrageparameter\n- **demo** *(boolean, optional)*: Auf `true` setzen, um die vorgefertigte Demo-Overhead-Squat-Zusammenfassung anstelle einer echten abzurufen.\n### Erfolgreiche Antwort (HTTP 200)\nGibt ein JSON-Objekt zurück mit:\n- **grouped_data** *(object)*: Hochrangige Metriken nach Kategorie gruppiert (z.B. hip_flexion, knee_flexion). Jede Gruppe enthält Metrikschlüssel, die numerischen Werten zugeordnet sind. - **knee_movement_phases** *(object)*: URLs von Visualisierungsbildern, die verschiedene Ansichten der Kniebewegungsphasen zeigen.\n  - **left** *(string)*: URL für das Bild der linken Ansicht.\n  - **right** *(string)*: URL für das Bild der rechten Ansicht.\n  - **front** *(string)*: URL für das Bild der Frontansicht.\n- **user_info** *(object, optional)*: Enthält benutzerbezogene Felder, z.B. Gewicht, display_name, E-Mail. - **exercise** *(string)*: Der Übungsname (z.B. `Overhead Squat`). - **output_quality** *(object, optional)*: Enthält numerische Werte oder Indizes (z.B. mobility_index). - **summary** *(object, optional)*: Enthält detailliertes Feedback zu verschiedenen Bewegungsaspekten. - **date** *(string, format=TT/MM/JJJJ)*: Das Erstellungs-/Verarbeitungsdatum dieser Sitzung.\n### Beispiel für eine erfolgreiche Antwort\n```json {\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\": \"Für eine optimale Verbesserung der Hüftbeugung konzentrieren Sie sich auf dynamische Dehn- und Mobilitätsübungen.\",\n    \"ankle_dorsiflexion\": \"Natalia, Ihre linke Sprunggelenksdorsalflexion beträgt 9,0 Grad...\",\n    \"final_summary\": \"Natalia, Ihre Knie- und Hüftbeugungsmetriken sind stark...\",\n    \"hip_abduction\": \"Für eine optimale Hüftabduktionsleistung konzentrieren Sie sich auf die Verbesserung...\"\n  },\n  \"date\": \"11/03/2025\"\n} ```\n**Fehlerbehandlung**\n- **401 Unauthorized**: Fehlender oder ungültiger Token. - **403 Forbidden**: Der Zahlungsplan ist nicht gültig (Basic, Standard, Pro oder Enterprise erforderlich) oder der Benutzer hat keine Berechtigungen. - **404 Not Found**: Sitzungsdaten wurden nicht gefunden oder Metriken fehlen. - **500 Internal Server Error**: Unerwarteter Serverfehler.\nEin gültiger API-KEY-Token muss im `Authorization`-Header bereitgestellt werden.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Eindeutige Kennung der Overhead-Squat-Sitzung.","required":true},{"schema":{"type":"boolean"},"name":"demo","in":"query","description":"Auf `true` setzen, um die vorgefertigte Demo-Overhead-Squat-Zusammenfassung anstelle einer echten abzurufen.\n","required":false}],"responses":{"200":{"description":"Overhead-Squat-Zusammenfassung erfolgreich abgerufen.","content":{"application/json":{"schema":{"required":["grouped_data","knee_movement_phases","exercise","date"],"type":"object","properties":{"grouped_data":{"description":"Hochrangige Metriken nach Kategorie gruppiert (keine Diagrammdaten).","type":"object","additionalProperties":{"description":"Ein Objekt, bei dem jeder Schlüssel ein Metrikname und der Wert numerisch ist.\n","type":"object","additionalProperties":{"description":"Numerischer Wert für die Metrik.","type":"number"}}},"knee_movement_phases":{"description":"URLs von Visualisierungsbildern, die verschiedene Ansichten der Kniebewegungsphasen zeigen.\n","type":"object","properties":{"left":{"description":"URL für das Bild der linken Ansicht","type":"string"},"right":{"description":"URL für das Bild der rechten Ansicht","type":"string"},"front":{"description":"URL für das Bild der Frontansicht","type":"string"}}},"user_info":{"description":"Optionale Benutzerinformationen (z.B. Gewicht, E-Mail).","type":"object","additionalProperties":{"description":"Ein Schlüssel-Wert-Paar von Benutzermetadaten.","type":"string"}},"exercise":{"description":"Der Übungsname/-typ, z.B. 'Overhead Squat'.","type":"string"},"output_quality":{"description":"Optionales Objekt mit numerischen Bewertungen oder Qualitätsindizes.","type":"object","additionalProperties":{"description":"Ein numerischer Score oder Index zur Ausgabequalität.","type":"number"}},"summary":{"description":"Detailliertes Feedback zu verschiedenen Bewegungsaspekten.","type":"object","properties":{"hip_flexion":{"description":"Empfehlungen zur Verbesserung der Hüftbeugung.","type":"string"},"ankle_dorsiflexion":{"description":"Bewertung und Verbesserungen für die Sprunggelenksdorsalflexion.","type":"string"},"final_summary":{"description":"Zusammenfassung der Sitzung und Empfehlungen.","type":"string"},"hip_abduction":{"description":"Anleitung zur Verbesserung der Hüftabduktion.","type":"string"}}},"date":{"description":"Sitzungsdatum im 'TT/MM/JJJJ'-Format.","type":"string"}}}}}},"401":{"description":"Nicht autorisiert - Fehlender oder ungültiger Token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine Fehlermeldung, die anzeigt, dass keine Anmeldedaten bereitgestellt wurden oder diese ungültig sind.\n","type":"string"}}}}}},"403":{"description":"Verboten - Ungültiger Zahlungsplan oder unzureichende Berechtigungen zum Abrufen der Zusammenfassung.\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass der Benutzer nicht auf die Ressource zugreifen kann.","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Sitzung nicht gefunden oder Metriken fehlen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die Sitzung nicht existiert oder keine Daten enthält.\n","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Ein unerwarteter Fehler ist aufgetreten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine detaillierte Fehlermeldung, die den Fehler beschreibt.","type":"string"}}}}}}},"tags":["mobility-assessment"]}}}}
````

## Zusammenfassungsthreads für eine Sitzung generieren

> \### Zusammenfassungsthreads generieren\
> Dieser Endpunkt generiert Zusammenfassungsthreads für eine gegebene Sitzung basierend auf vordefinierten Zusammenfassungsblöcken und Metriken.\
> \*\*Beispielnutzung:\*\*\
> Senden Sie eine \`POST\`-Anfrage an \`/mobility-assessment/sessions/{session\_id}/summary/\`, wobei \`{session\_id}\` die eindeutige Kennung der Sitzung ist.\
> \*\*Parameter:\*\*\
> \- \`session\_id\` \*(string, erforderlich)\*: Die eindeutige Kennung der Sitzung, für die Zusammenfassungsthreads generiert werden sollen.\
> \*\*Antwortstruktur:\*\*\
> Bei einer erfolgreichen Anfrage gibt der Endpunkt ein JSON-Objekt zurück, das jede Metrik ihrer entsprechenden Thread-ID zuordnet.\
> \*\*Beispielantwort:\*\*\
> \`\`\`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"\
> } \`\`\`\
> \*\*Hinweise:\*\*\
> \- Stellen Sie sicher, dass die angegebene \`session\_id\` gültig ist und einer bestehenden Sitzung im System entspricht. - Der Benutzer muss die erforderlichen Berechtigungen haben, um Zusammenfassungsthreads zu generieren.<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":"Geben Sie Ihren Bearer-Token (Firebase Auth) im Format ein: Bearer <token>"},"ApiKeyAuth":{"type":"apiKey","name":"API-KEY","in":"header","description":"Geben Sie Ihren API-Schlüssel im Header ein: API-KEY: <api_key>"}}},"paths":{"/mobility-assessment/sessions/{session_id}/summary/":{"post":{"operationId":"mobility-assessment_sessions_summary_create","summary":"Zusammenfassungsthreads für eine Sitzung generieren","description":"### Zusammenfassungsthreads generieren\nDieser Endpunkt generiert Zusammenfassungsthreads für eine gegebene Sitzung basierend auf vordefinierten Zusammenfassungsblöcken und Metriken.\n**Beispielnutzung:**\nSenden Sie eine `POST`-Anfrage an `/mobility-assessment/sessions/{session_id}/summary/`, wobei `{session_id}` die eindeutige Kennung der Sitzung ist.\n**Parameter:**\n- `session_id` *(string, erforderlich)*: Die eindeutige Kennung der Sitzung, für die Zusammenfassungsthreads generiert werden sollen.\n**Antwortstruktur:**\nBei einer erfolgreichen Anfrage gibt der Endpunkt ein JSON-Objekt zurück, das jede Metrik ihrer entsprechenden Thread-ID zuordnet.\n**Beispielantwort:**\n```json {\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**Hinweise:**\n- Stellen Sie sicher, dass die angegebene `session_id` gültig ist und einer bestehenden Sitzung im System entspricht. - Der Benutzer muss die erforderlichen Berechtigungen haben, um Zusammenfassungsthreads zu generieren.\n","parameters":[{"schema":{"type":"string"},"name":"session_id","in":"path","description":"Eindeutige Kennung der Sitzung, für die Zusammenfassungsthreads generiert werden sollen.\n","required":true},{"schema":{"type":"string","enum":["metric","imperial"]},"name":"measurement_system","in":"query","description":"Messsystem: 'metric' oder 'imperial'","required":false}],"responses":{"201":{"description":"Zusammenfassungsthreads erfolgreich generiert.","content":{"application/json":{"schema":{"description":"Wörterbuch, das jede Metrik ihrer entsprechenden Thread-ID zuordnet.","required":["hip_flexion","hip_abduction","knee_flexion","knee_movement","ankle_dorsiflexion","final_summary"],"type":"object","properties":{"hip_flexion":{"description":"Eindeutige Kennung für den Hüftbeugungs-Zusammenfassungsthread.","type":"string"},"hip_abduction":{"description":"Eindeutige Kennung für den Hüftabduktions-Zusammenfassungsthread.","type":"string"},"knee_flexion":{"description":"Eindeutige Kennung für den Kniebeugungs-Zusammenfassungsthread.","type":"string"},"knee_movement":{"description":"Eindeutige Kennung für den Kniebewegungs-Zusammenfassungsthread.","type":"string"},"ankle_dorsiflexion":{"description":"Eindeutige Kennung für den Sprunggelenksdorsalflexions-Zusammenfassungsthread.","type":"string"},"final_summary":{"description":"Eindeutige Kennung für den abschließenden Zusammenfassungsthread.","type":"string"}}}}}},"401":{"description":"Nicht autorisiert - Fehlender oder ungültiger Token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine Fehlermeldung, die anzeigt, dass keine Anmeldedaten bereitgestellt wurden oder diese ungültig sind.\n","type":"string"}}}}}},"403":{"description":"Verboten - Ungültiger Zahlungsplan oder unzureichende Berechtigungen zum Erstellen von Empfehlungsthreads.\n","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass der Benutzer nicht auf die Ressource zugreifen kann.","type":"string"}}}}}},"404":{"description":"Nicht gefunden - Sitzung nicht gefunden oder Metriken fehlen.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Fehlermeldung, die anzeigt, dass die Sitzung nicht existiert oder keine Daten enthält.\n","type":"string"}}}}}},"500":{"description":"Interner Serverfehler - Ein unerwarteter Fehler ist aufgetreten.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Eine detaillierte Fehlermeldung, die den Fehler beschreibt.","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/de/api-documentation/developer-resources-and-api-reference/api-reference/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.
