Video requirements
Before uploading, make sure your video meets these constraints:| Constraint | Limit |
|---|---|
| File size | 30 MB maximum |
| Duration | 10 seconds maximum |
| Format | MP4, MOV, AVI |
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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
video | file | Yes | — | Video file to analyze |
analysis_type | string | Yes | side_view | side_view or back_view |
height | number | No | 170 | Runner height in centimeters |
weight | number | No | 70 | Runner weight in kilograms |
pace | string | Conditional | — | Running pace MM:SS. Required when treadmill=true. Auto-calculated for overground running. |
language | string | No | en | Result language: en, fr, de, zh, ko, pt, es, it, ja |
treadmill | boolean | No | false | Whether the runner is on a treadmill |
full_body | boolean | No | true | Full body analysis (back view only). Set false for pronation only. |
Lifecycle
Status progression
| Status | HTTP code | Meaning |
|---|---|---|
pending | 200 | Analysis is queued, waiting for a processing slot. |
analyzing | 202 | Processing is underway. The percentage field shows progress. |
success | 200 | Analysis is complete. Full results are available. |
failed | 400 | Analysis could not be completed. No results available. |
Polling strategy
Poll the results endpoint every 3 — 5 seconds. Most analyses complete within 10 — 30 seconds depending on video length and server load.Result 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.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,
hip adduction, 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.Error handling
Common errors during the analysis workflow:| Error | Code | Status | When |
|---|---|---|---|
| File too large | file_too_large | 413 | Video exceeds 30 MB |
| Video too long | — | 400 | Video exceeds 10 seconds |
| Invalid file type | invalid_file_type | 400 | Unsupported extension |
| Not completed | — | 400 | Requesting calculated/raw data before success |
| Insufficient credits | insufficient_credits | 402 | No credits remaining |
| Not found | — | 404 | Invalid analysis_id |