curl --request GET \
--url https://api.sportquanta.com/v1/{league}/standings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sportquanta.com/v1/{league}/standings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sportquanta.com/v1/{league}/standings', 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.sportquanta.com/v1/{league}/standings",
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.sportquanta.com/v1/{league}/standings"
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.sportquanta.com/v1/{league}/standings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sportquanta.com/v1/{league}/standings")
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{
"data": {
"season": 123,
"teams": [
{
"team_id": "<string>",
"conference_rank": 123,
"division_rank": 123,
"playoff_seed": 123,
"wins": 123,
"losses": 123,
"ot_losses": 123,
"points": 123,
"points_percentage": 123,
"goals_for": 123,
"goals_against": 123,
"abbreviation": "<string>",
"name": "<string>",
"conference": "<string>",
"division": "<string>",
"conference_localized": "<string>",
"division_localized": "<string>"
}
]
},
"_meta": {
"request_id": "<string>",
"served_from": "live",
"cache_ttl_seconds": 123,
"provenance": {},
"availability": {}
}
}Standings
Universal across baseball (MLB, KBO, NPB), basketball (NBA, KBL), soccer, football (NFL), and hockey (NHL). Baseball / basketball / soccer return an array of sport-specific rows sharing the base standings columns (team, wins, losses, rank): baseball rows add win percentage, games back, and streak; basketball rows add conference/division context; soccer rows add points, goal difference, and group placement.
Football and hockey return a { season, teams } board
projected from the standings columns on the canonical team
docs: NFL rows carry conference/division ranks, playoff seed,
wins/losses/ties, win pct, and points for/against; NHL rows
carry conference/division ranks, playoff seed, wins/losses/OT
losses, standings points, points percentage, and goals
for/against. season is the latest max_year across teams.
competition is required for soccer and optional for baseball
and basketball, where the league id is the competition id.
group applies to cup-stage soccer competitions (e.g.
“Group A”). conference and division filter basketball
standings. The filters are accepted and ignored for football
and hockey, where the league is the competition and rows
already carry conference/division context. Until the standings
ingestion has run for a league, the endpoint returns an empty
array (or an empty teams board) rather than 404.
Requires the stats entitlement (a paid plan). See Responses & Errors for the success envelope and availability rules.
curl --request GET \
--url https://api.sportquanta.com/v1/{league}/standings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sportquanta.com/v1/{league}/standings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sportquanta.com/v1/{league}/standings', 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.sportquanta.com/v1/{league}/standings",
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.sportquanta.com/v1/{league}/standings"
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.sportquanta.com/v1/{league}/standings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sportquanta.com/v1/{league}/standings")
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{
"data": {
"season": 123,
"teams": [
{
"team_id": "<string>",
"conference_rank": 123,
"division_rank": 123,
"playoff_seed": 123,
"wins": 123,
"losses": 123,
"ot_losses": 123,
"points": 123,
"points_percentage": 123,
"goals_for": 123,
"goals_against": 123,
"abbreviation": "<string>",
"name": "<string>",
"conference": "<string>",
"division": "<string>",
"conference_localized": "<string>",
"division_localized": "<string>"
}
]
},
"_meta": {
"request_id": "<string>",
"served_from": "live",
"cache_ttl_seconds": 123,
"provenance": {},
"availability": {}
}
}Authorizations
Send a workspace API token in the Authorization: Bearer <token> header.
Path Parameters
League for this reference section: nhl.
nhl Query Parameters
Opt in to per-field provenance on supported single game, match, team, player, and venue reads. Lists and composites accept the flag but generally omit provenance. It is returned under _meta.provenance only when source metadata exists.
Display language for supported standings labels (en, ko, ja). Raw values remain available.
Alias for competition on soccer standings.
Alias for group.
Alias for division.
Baseball league-group alias used when group is absent.
Response
Standings rows ordered by rank.
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
live, cache Response cache TTL; independent of source freshness. Omitted when zero.
Endpoint-specific availability context, including soccer roster coverage.