Get calculated data
curl --request GET \
--url https://partner-api.ochy-prod.com/analysis/{analysis_id}/results/calculated_data \
--header 'Authorization: Bearer <token>'import requests
url = "https://partner-api.ochy-prod.com/analysis/{analysis_id}/results/calculated_data"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://partner-api.ochy-prod.com/analysis/{analysis_id}/results/calculated_data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"foot_landing": {
"foot_strike": {
"arm_mean_angle": 109,
"back_leg_mean_angle": 66.413,
"front_leg_mean_angle": 139,
"head_mean_angle": -5,
"trunk_mean_angle": 2
},
"mean_foot_strike_pattern": "midfoot",
"steps": [
{
"foot_under_center_of_mass": true,
"footstrike_pattern": "forefoot",
"frame_timestamp": 175,
"landing_end_frame_id": 3,
"landing_leg": "left",
"landing_start_frame_id": 2
},
{
"foot_under_center_of_mass": false,
"footstrike_pattern": "forefoot",
"frame_timestamp": 475,
"landing_end_frame_id": 6,
"landing_leg": "left",
"landing_start_frame_id": 5
},
{
"foot_under_center_of_mass": false,
"footstrike_pattern": "midfoot",
"frame_timestamp": 2510,
"landing_end_frame_id": 50,
"landing_leg": "right",
"landing_start_frame_id": 49
}
]
},
"frames": {
"1": {
"angles": {
"head": -20,
"left_ankle": 152,
"left_elbow": 150,
"left_knee": 153,
"right_ankle": 145,
"right_elbow": 87,
"right_knee": 139,
"trunk": 6
},
"center_of_mass": {
"x": 346.354,
"y": 60.109,
"z": 0
}
}
},
"metrics": {
"duty_factor_percent": 0.196,
"ground_contact_time_second": 0.122,
"pace_min_per_km": 4.25,
"speed_meter_per_second": 3.774,
"step_frequency_steps_per_min": 238,
"step_length_meter": 0.948,
"time_of_flight_second": 0.498
},
"overstride": {
"mean_angle": 4.07,
"score": "score_good"
}
}Analysis
Get calculated data
Retrieve the calculated biomechanical metrics for a completed analysis.
Only available when the analysis status is success.
Side view analysis returns:
- Running metrics (speed, step length, pace, step frequency, ground contact time, time of flight, duty factor)
- Overstride analysis (mean angle and score)
- Foot landing patterns per step (footstrike pattern, landing leg, frame timestamps)
- Per-frame joint angles (ankle, knee, elbow, head, trunk) and center of mass
- Foot strike summary angles (arm, head, trunk, front/back leg mean angles)
Back view analysis returns:
- Gait cycle stance phase means per side (pronation, knee adduction, pelvic drop)
- Step-by-step landing data (frame timestamps, landing leg, start/end frame IDs)
GET
/
analysis
/
{analysis_id}
/
results
/
calculated_data
Get calculated data
curl --request GET \
--url https://partner-api.ochy-prod.com/analysis/{analysis_id}/results/calculated_data \
--header 'Authorization: Bearer <token>'import requests
url = "https://partner-api.ochy-prod.com/analysis/{analysis_id}/results/calculated_data"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://partner-api.ochy-prod.com/analysis/{analysis_id}/results/calculated_data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"foot_landing": {
"foot_strike": {
"arm_mean_angle": 109,
"back_leg_mean_angle": 66.413,
"front_leg_mean_angle": 139,
"head_mean_angle": -5,
"trunk_mean_angle": 2
},
"mean_foot_strike_pattern": "midfoot",
"steps": [
{
"foot_under_center_of_mass": true,
"footstrike_pattern": "forefoot",
"frame_timestamp": 175,
"landing_end_frame_id": 3,
"landing_leg": "left",
"landing_start_frame_id": 2
},
{
"foot_under_center_of_mass": false,
"footstrike_pattern": "forefoot",
"frame_timestamp": 475,
"landing_end_frame_id": 6,
"landing_leg": "left",
"landing_start_frame_id": 5
},
{
"foot_under_center_of_mass": false,
"footstrike_pattern": "midfoot",
"frame_timestamp": 2510,
"landing_end_frame_id": 50,
"landing_leg": "right",
"landing_start_frame_id": 49
}
]
},
"frames": {
"1": {
"angles": {
"head": -20,
"left_ankle": 152,
"left_elbow": 150,
"left_knee": 153,
"right_ankle": 145,
"right_elbow": 87,
"right_knee": 139,
"trunk": 6
},
"center_of_mass": {
"x": 346.354,
"y": 60.109,
"z": 0
}
}
},
"metrics": {
"duty_factor_percent": 0.196,
"ground_contact_time_second": 0.122,
"pace_min_per_km": 4.25,
"speed_meter_per_second": 3.774,
"step_frequency_steps_per_min": 238,
"step_length_meter": 0.948,
"time_of_flight_second": 0.498
},
"overstride": {
"mean_angle": 4.07,
"score": "score_good"
}
}Authorizations
bearerAuthapiKeyHeaderapiKeyQuery
Recommended. Pass your API key as a Bearer token in the Authorization header: Authorization: Bearer YOUR_API_KEY.
Path Parameters
Analysis ID returned by the start endpoint.
Response
Calculated data for the analysis.
Shape varies by analysis type. See description for details.