Get Capture in Organization
curl --request GET \
--url https://api.uplift.ai/v1/captures/{captureId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.uplift.ai/v1/captures/{captureId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.uplift.ai/v1/captures/{captureId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.uplift.ai/v1/captures/{captureId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.uplift.ai/v1/captures/{captureId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.uplift.ai/v1/captures/{captureId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uplift.ai/v1/captures/{captureId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"session_id": "<string>",
"athlete_id": "<string>",
"activity": "<string>",
"movement": "<string>",
"status": "awaiting_upload",
"error": "<string>",
"capture_time": "2023-11-07T05:31:56Z",
"fps_detected": 123
}{
"error": "BadRequest",
"message": "The value of \"captureId\" in the request parameters is invalid. Please review the request and try again."
}{
"error": "Unauthorized",
"message": "Bearer token is missing or invalid."
}{
"error": "Forbidden",
"message": "You do not have permission to access this resource."
}{
"error": "NotFound",
"message": "Capture not found."
}{
"error": "TooManyRequests",
"message": "The rate limit has been exceeded. Please wait and try again later."
}{
"error": "InternalServerError",
"message": "An unexpected error occurred on the server. Please try again later."
}Captures
Get Capture
Returns one capture by id for the organization.
GET
/
captures
/
{captureId}
Get Capture in Organization
curl --request GET \
--url https://api.uplift.ai/v1/captures/{captureId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.uplift.ai/v1/captures/{captureId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.uplift.ai/v1/captures/{captureId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.uplift.ai/v1/captures/{captureId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.uplift.ai/v1/captures/{captureId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.uplift.ai/v1/captures/{captureId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uplift.ai/v1/captures/{captureId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"session_id": "<string>",
"athlete_id": "<string>",
"activity": "<string>",
"movement": "<string>",
"status": "awaiting_upload",
"error": "<string>",
"capture_time": "2023-11-07T05:31:56Z",
"fps_detected": 123
}{
"error": "BadRequest",
"message": "The value of \"captureId\" in the request parameters is invalid. Please review the request and try again."
}{
"error": "Unauthorized",
"message": "Bearer token is missing or invalid."
}{
"error": "Forbidden",
"message": "You do not have permission to access this resource."
}{
"error": "NotFound",
"message": "Capture not found."
}{
"error": "TooManyRequests",
"message": "The rate limit has been exceeded. Please wait and try again later."
}{
"error": "InternalServerError",
"message": "An unexpected error occurred on the server. Please try again later."
}Path parameter
captureId is the capture identifier. The capture must belong to your organization and must not be deleted.
Movement dimensions
The response may include additional top-level dimension fields based onactivity and movement.
| Activity | Movement | Dimensions |
|---|---|---|
agility | cutting | direction |
baseball | hitting | bat_length, handedness |
baseball | pitching | handedness |
basketball | free_throw | handedness |
basketball | jump_shot | handedness |
basketball | layup | handedness |
golf | swing | handedness |
jump | broad | arm_position |
jump | countermovement | arm_position |
jump | drop_vertical | arm_position |
jump | single_leg | arm_position, footedness |
jump | single_leg_broad | arm_position, footedness |
jump | squat | arm_position |
lunge | forward | footedness |
lunge | side | footedness |
range_of_motion | ankle_flexion | body_position, footedness |
range_of_motion | cervical_rotation | direction |
range_of_motion | sfma_shoulder_extension | handedness |
range_of_motion | sfma_shoulder_flexion | handedness |
range_of_motion | shoulder_9090 | handedness |
range_of_motion | shoulder_flexion | handedness |
range_of_motion | t_spine_rotation | handedness |
softball | hitting | bat_length, handedness |
softball | pitching | handedness |
squat | single_leg | footedness |
stability | plank | plank_orientation, plank_position |
stability | rotary | handedness |
stability | single_leg_stance | eyes, footedness |
stability | y_balance_lower_quarter | footedness, y_balance_lower_quarter_direction |
stability | y_balance_upper_quarter | handedness, y_balance_upper_quarter_direction |
tennis | backhand | handedness |
tennis | forehand | handedness |
tennis | overhand_serve | handedness, overhand_serve_type |
tennis | underhand_serve | handedness |
track_and_field | discus | handedness |
track_and_field | shot_put | handedness |
Capture fields.
Example response
Forbaseball + hitting:
{
"session_id": "…",
"activity": "baseball",
"movement": "hitting",
"handedness": "…",
"bat_length": "…",
"status": "completed"
}
jump + countermovement:
{
"session_id": "…",
"activity": "jump",
"movement": "countermovement",
"arm_position": "…",
"status": "completed"
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Capture identifier; trimmed string 1–255 characters.
Required string length:
1 - 255Response
Single Capture object. Beyond the fixed schema fields, additional top-level movement dimension properties may appear based on the capture's activity and movement. See Movement dimensions for the field catalog.
Capture identifier.
Athlete id when the capture is linked to an athlete.
Activity label. Casing matches the stored value.
Movement label. Casing matches the stored value.
Capture processing status.
Available options:
awaiting_upload, processing, completed, error Error summary when applicable.
ISO 8601 capture time when available.
Detected frame rate when available.