Video requirements
Before uploading, make sure your video meets these constraints:Orientation
Required orientation depends on the analysis type and running condition (see thetreadmill
parameter below). Submitting a video with the wrong orientation will produce poor results or
cause the analysis to fail.
Analysis types
Choose the analysis type based on the camera position:- Side view
- Back view
Camera is positioned to the side of the runner. Set
analysis_type=side_view.Produces:- Overall biomechanical score (0 — 1)
- Running metrics: speed, step length, cadence, ground contact time, time of flight, duty factor
- Overstride analysis with angle and score
- Foot landing classification per step (rearfoot, midfoot, forefoot)
- Joint angles: ankle, knee, hip, shoulder, elbow
- Running style classification with confidence percentage
Parameters
Lifecycle
Status progression
Polling strategy
Poll the results endpoint every 3 — 5 seconds. Most analyses complete within 10 — 30 seconds depending on video length and server load.Webhooks (optional)
You can register an HTTPS endpoint and enable notifications per analysis to receive progress and completion events without polling. See API keys and webhooksResult levels
Once the status issuccess, you can access three levels of data:
Full results (GET /analysis/{id}/results)
Full results (GET /analysis/{id}/results)
The results endpoint returns everything in a single call: status, signed URLs
(thumbnail and annotated video), and the
biomechanical_analysis object containing
scores, metrics, and classifications. Each segment’s texts object includes
recap, consequences, and correction for both side view and back view
(side view may also include coach_tips).Each biomechanical segment includes score_number, measured_value, and
score ranges such as range_good, range_okay, and sometimes range_bad.
measured_value and all range values are expressed in degrees. Range
boundaries can overlap: for example, with range_good: [0, 102] and
range_okay: [102, 111], values up to 102 are good and values strictly
greater than 102 are okay.For side view, total_score is a weighted calculation, not a simple average
of the segment scores.Use this when you need a complete snapshot of the analysis.Calculated data (GET /analysis/{id}/results/calculated_data)
Calculated data (GET /analysis/{id}/results/calculated_data)
Structured numerical metrics without media URLs. Ideal when you need to process
or display specific values.Side view includes:
metrics, overstride, foot_landing, joint_angles,
running_styles, and total_score.Back view includes: gait_cycle with stance means per leg (pronation,
knee adduction, pelvic drop) and step-by-step data.Raw data (GET /analysis/{id}/results/raw_data)
Raw data (GET /analysis/{id}/results/raw_data)
Frame-by-frame position data for every anatomical landmark detected. Includes
video_input_information (resolution, FPS, duration) and a frames object
keyed by frame number.Use this for custom visualizations, overlays, or your own biomechanical models.