Skip to main content
GET
Get analysis results

Authorizations

Authorization
string
header
required

Recommended. Pass your API key as a Bearer token in the Authorization header: Authorization: Bearer YOUR_API_KEY.

Path Parameters

analysis_id
string
required

Analysis ID returned by the start endpoint.

Query Parameters

language
string

Language of the biomechanical texts (en, fr, de, zh, ko, pt, es, it, ja). When omitted, the language the analysis was started with is used, falling back to English.

Response

Analysis completed or pending.

video_id
string
Example:

"3dde3402-94d7-462e-a784-9306207108dd"

status
string
Example:

"success"

percentage
integer
Example:

100

video_expired
boolean

Present and true when the video retention period configured for your account has passed for this analysis. thumbnail and output_video are then omitted.

Example:

true

thumbnail
string

Signed URL to the analysis thumbnail image (expires after 1 hour).

Example:

"https://storage.googleapis.com/ochy-7871a.appspot.com/partners/.../output/<analysis_id>_thumbnail.jpg?<signed-url-parameters>"

output_video
string

Signed URL to the annotated output video (expires after 1 hour).

Example:

"https://storage.googleapis.com/ochy-7871a.appspot.com/partners/.../output/encoded_analyzed_<analysis_id>.mp4?<signed-url-parameters>"

biomechanical_analysis
object

Full biomechanical analysis results. Shape varies by analysis type.

Side view includes: analysis_content (arm, back_cycle, foot, forward_cycle, head, trunk -- each with score_number, measured_value, range_good, range_okay, and texts with position, search_key, title, recap, exercice, plus consequences, correction, and coach_tips inlined next to recap), running_styles (array of detected styles; objects may include animal, animal_explanation, title, summary, explanation, percentage; title is the unique identifier and is always one of Hop, Bounce, Push, Stick, Sit; asset URLs are omitted), and total_score.

Back view includes: analysis_content (knee_adduction, pelvic_drop, pronation -- each with left/right containing range_bad, range_good, range_okay, score_number, measured_value, and texts with explanation, position, recap, search_key, side, title where applicable, plus consequences and correction inlined next to recap), and total_score. For back view, the explanation field is currently not available for pelvic_drop.

measured_value, range_good, range_okay, and range_bad are always expressed in degrees. Range boundaries may overlap because scoring uses implicit inclusion/exclusion rules. For example, with range_good: [0, 102] and range_okay: [102, 111], values up to 102 are considered good, and values strictly greater than 102 are considered okay.

For both views, consequences and correction come from segmented_explanation flattened into texts; the nested segmented_explanation key is never returned. Those two fields may be an empty string, a string, or an array of strings depending on the metric and result.

For side view, total_score is not a simple average of the individual score_number values. It is based on a weighted calculation.