List Player Stats
curl --request GET \
--url https://api.uplift.ai/v1/player-stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.uplift.ai/v1/player-stats"
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/player-stats', 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/player-stats",
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/player-stats"
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/player-stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uplift.ai/v1/player-stats")
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{
"rows": [
{
"athlete_id": "3c9e1f2a-8b7d-4c6e-9a5f-1d2e3b4c5a6f",
"player_id": "p07",
"game_id": "6b1e0c2a-7d8f-4a51-9b0e-2f3c1d4e5a6b",
"date": "2026-10-18",
"games": 1,
"minutes_tracked": 88.4,
"total_distance_m": 10875,
"high_speed_running_m": 846,
"sprint_count": 19,
"passes": 52,
"pass_completion": 0.87,
"bypassed_opponents": 61,
"shots": 2,
"duels": 11
}
],
"total_count": 14,
"offset": 0,
"limit": 1000
}{
"error": "BadRequest",
"message": "The request parameters are 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": "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."
}Match Data
List Player Stats
Returns physical and event totals per player across games, grouped by game or season. Use it for questions that span games, such as an athlete’s load over a season. At least one of athlete_id, player_id, team, game_id or a date window is required.
GET
/
player-stats
List Player Stats
curl --request GET \
--url https://api.uplift.ai/v1/player-stats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.uplift.ai/v1/player-stats"
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/player-stats', 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/player-stats",
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/player-stats"
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/player-stats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uplift.ai/v1/player-stats")
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{
"rows": [
{
"athlete_id": "3c9e1f2a-8b7d-4c6e-9a5f-1d2e3b4c5a6f",
"player_id": "p07",
"game_id": "6b1e0c2a-7d8f-4a51-9b0e-2f3c1d4e5a6b",
"date": "2026-10-18",
"games": 1,
"minutes_tracked": 88.4,
"total_distance_m": 10875,
"high_speed_running_m": 846,
"sprint_count": 19,
"passes": 52,
"pass_completion": 0.87,
"bypassed_opponents": 61,
"shots": 2,
"duels": 11
}
],
"total_count": 14,
"offset": 0,
"limit": 1000
}{
"error": "BadRequest",
"message": "The request parameters are 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": "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."
}The Game Data API is in preview. Endpoints, fields and limits may change before release, and it is not yet available to call.