@balldontlie/sdk
Version:
Official TypeScript/JavaScript SDK for the balldontlie API
815 lines (814 loc) • 23.3 kB
TypeScript
export declare class APIError extends Error {
statusCode: number;
response?: any | undefined;
constructor(message: string, statusCode: number, response?: any | undefined);
}
export declare class AuthenticationError extends APIError {
}
export declare class ValidationError extends APIError {
}
export declare class NotFoundError extends APIError {
}
export declare class RateLimitError extends APIError {
}
export declare class ServerError extends APIError {
}
export interface Pagination {
next_cursor: number;
per_page: number;
}
export interface ApiResponse<T> {
data: T;
meta?: Pagination;
}
export interface NBATeam {
id: number;
conference: "East" | "West";
division: "Atlantic" | "Central" | "Southeast" | "Northwest" | "Pacific" | "Southwest";
city: string;
name: string;
full_name: string;
abbreviation: string;
}
export interface NBAPlayer {
id: number;
first_name: string;
last_name: string;
position: string | null;
height: string | null;
weight: string | null;
jersey_number: string | null;
college: string | null;
country: string | null;
draft_year: number | null;
draft_round: number | null;
draft_number: number | null;
team?: NBATeam;
team_id?: number;
}
export interface NBAGame {
id: number;
date: string;
season: number;
status: string;
period: number;
time: string;
postseason: boolean;
home_team_score: number;
visitor_team_score: number;
home_team?: NBATeam;
home_team_id?: NBATeam;
visitor_team?: NBATeam;
visitor_team_id?: number;
}
export interface NBAStats {
id: number;
min: string;
fgm: number | null;
fga: number | null;
fg_pct: number | null;
fg3m: number | null;
fg3a: number | null;
fg3_pct: number | null;
ftm: number | null;
fta: number | null;
ft_pct: number | null;
oreb: number | null;
dreb: number | null;
reb: number | null;
ast: number | null;
stl: number | null;
blk: number | null;
turnover: number | null;
pf: number | null;
pts: number | null;
player: NBAPlayer;
team?: NBATeam;
game?: NBAGame;
}
export interface NBASeasonAverages {
games_played: number;
pts: number | null;
ast: number | null;
reb: number | null;
stl: number | null;
blk: number | null;
turnover: number | null;
min: string | null;
fgm: number | null;
fga: number | null;
fg_pct: number | null;
fg3m: number | null;
fg3a: number | null;
fg3_pct: number | null;
ftm: number | null;
fta: number | null;
ft_pct: number | null;
oreb: number | null;
dreb: number | null;
player_id: number;
season: number;
}
export interface NBAStandings {
team: NBATeam;
conference_record: string;
conference_rank: number;
division_record: string;
division_rank: number;
wins: number;
losses: number;
home_record: string;
road_record: string;
season: number;
}
export interface NBABoxScoreTeam extends NBATeam {
players: NBAStats[];
}
export interface NBABoxScore {
date: string;
season: number;
status: string;
period: number;
time: string;
postseason: boolean;
home_team_score: number;
visitor_team_score: number;
home_team: NBABoxScoreTeam;
visitor_team: NBABoxScoreTeam;
}
export interface NBAPlayerInjury {
player: NBAPlayer;
return_date: string | null;
description: string | null;
status: string;
}
export interface NBALeader {
player: NBAPlayer;
value: number;
stat_type: "reb" | "dreb" | "tov" | "ast" | "oreb" | "min" | "pts" | "stl" | "blk";
rank: number;
season: number;
games_played: number;
}
export interface NBAOdds {
type: "2way" | "spread" | "over/under";
vendor: string;
live: boolean;
game_id: number;
odds_decimal_home: string;
odds_decimal_visitor: string;
odds_american_home: string;
odds_american_visitor: string;
away_spread?: string;
over_under?: string;
}
export interface NBAAdvancedStats {
id: number;
pie: number | null;
pace: number | null;
assist_percentage: number | null;
assist_ratio: number | null;
assist_to_turnover: number | null;
defensive_rating: number | null;
defensive_rebound_percentage: number | null;
effective_field_goal_percentage: number | null;
net_rating: number | null;
offensive_rating: number | null;
offensive_rebound_percentage: number | null;
rebound_percentage: number | null;
true_shooting_percentage: number | null;
turnover_ratio: number | null;
usage_percentage: number | null;
player: NBAPlayer;
team: NBATeam;
game: NBAGame;
}
export interface NFLTeam {
id: number;
conference: "AFC" | "NFC";
division: "NORTH" | "SOUTH" | "EAST" | "WEST";
location: string;
name: string;
full_name: string;
abbreviation: string;
}
export interface NFLPlayer {
id: number;
first_name: string;
last_name: string;
position: string;
position_abbreviation: string;
height: string;
weight: string;
jersey_number: string;
college: string;
experience: string;
age: number;
team?: NFLTeam;
team_id?: number;
}
export interface NFLGame {
id: number;
visitor_team: NFLTeam;
home_team: NFLTeam;
summary?: string;
venue?: string;
week: number;
date: string;
season: number;
postseason: boolean;
status: string;
home_team_score: number | null;
home_team_q1: number | null;
home_team_q2: number | null;
home_team_q3: number | null;
home_team_q4: number | null;
home_team_ot: number | null;
visitor_team_score: number | null;
visitor_team_q1: number | null;
visitor_team_q2: number | null;
visitor_team_q3: number | null;
visitor_team_q4: number | null;
visitor_team_ot: number | null;
}
export interface NFLStats {
player: NFLPlayer;
team: NFLTeam;
game: NFLGame;
passing_completions: number | null;
passing_attempts: number | null;
passing_yards: number | null;
yards_per_pass_attempt: number | null;
passing_touchdowns: number | null;
passing_interceptions: number | null;
sacks: number | null;
sacks_loss: number | null;
qbr: number | null;
qb_rating: number | null;
rushing_attempts: number | null;
rushing_yards: number | null;
yards_per_rush_attempt: number | null;
rushing_touchdowns: number | null;
long_rushing: number | null;
receptions: number | null;
receiving_yards: number | null;
yards_per_reception: number | null;
receiving_touchdowns: number | null;
long_reception: number | null;
receiving_targets: number | null;
fumbles: number | null;
fumbles_lost: number | null;
fumbles_recovered: number | null;
total_tackles: number | null;
defensive_sacks: number | null;
solo_tackles: number | null;
tackles_for_loss: number | null;
passes_defended: number | null;
qb_hits: number | null;
fumbles_touchdowns: number | null;
defensive_interceptions: number | null;
interception_yards: number | null;
interception_touchdowns: number | null;
kick_returns: number | null;
kick_return_yards: number | null;
yards_per_kick_return: number | null;
long_kick_return: number | null;
kick_return_touchdowns: number | null;
punt_returns: number | null;
punt_return_yards: number | null;
yards_per_punt_return: number | null;
long_punt_return: number | null;
punt_return_touchdowns: number | null;
field_goal_attempts: number | null;
field_goals_made: number | null;
field_goal_pct: number | null;
long_field_goal_made: number | null;
extra_points_made: number | null;
total_points: number | null;
punts: number | null;
punt_yards: number | null;
gross_avg_punt_yards: number | null;
touchbacks: number | null;
punts_inside_20: number | null;
long_punt: number | null;
}
export interface NFLStandings {
team: NFLTeam;
win_streak: number | null;
points_for: number | null;
points_against: number | null;
playoff_seed: number | null;
point_differential: number | null;
overall_record: string | null;
conference_record: string | null;
division_record: string | null;
wins: number | null;
losses: number | null;
ties: number | null;
home_record: string;
road_record: string;
season: number;
}
export interface NFLPlayerInjury {
player: NFLPlayer;
status: string;
comment: string;
date: string;
}
export interface NFLSeasonStats {
player: NFLPlayer;
games_played: number;
season: number;
postseason: boolean;
passing_completions: number | null;
passing_attempts: number | null;
passing_yards: number | null;
yards_per_pass_attempt: number | null;
passing_touchdowns: number | null;
passing_interceptions: number | null;
passing_yards_per_game: number | null;
passing_completion_pct: number | null;
qbr: number | null;
rushing_attempts: number | null;
rushing_yards: number | null;
rushing_yards_per_game: number | null;
yards_per_rush_attempt: number | null;
rushing_touchdowns: number | null;
rushing_fumbles: number | null;
rushing_fumbles_lost: number | null;
rushing_first_downs: number | null;
receptions: number | null;
receiving_yards: number | null;
yards_per_reception: number | null;
receiving_touchdowns: number | null;
receiving_fumbles: number | null;
receiving_fumbles_lost: number | null;
receiving_first_downs: number | null;
receiving_targets: number | null;
receiving_yards_per_game: number | null;
fumbles_forced: number | null;
fumbles_recovered: number | null;
total_tackles: number | null;
defensive_sacks: number | null;
defensive_sack_yards: number | null;
solo_tackles: number | null;
assist_tackles: number | null;
fumbles_touchdowns: number | null;
defensive_interceptions: number | null;
interception_touchdowns: number | null;
kick_returns: number | null;
kick_return_yards: number | null;
yards_per_kick_return: number | null;
kick_return_touchdowns: number | null;
punt_returner_returns: number | null;
punt_returner_return_yards: number | null;
yards_per_punt_return: number | null;
punt_return_touchdowns: number | null;
field_goal_attempts: number | null;
field_goals_made: number | null;
field_goal_pct: number | null;
punts: number | null;
punt_yards: number | null;
field_goals_made_1_19: number | null;
field_goals_made_20_29: number | null;
field_goals_made_30_39: number | null;
field_goals_made_40_49: number | null;
field_goals_made_50: number | null;
field_goals_attempts_1_19: number | null;
field_goals_attempts_20_29: number | null;
field_goals_attempts_30_39: number | null;
field_goals_attempts_40_49: number | null;
field_goals_attempts_50: number | null;
}
export interface NFLAdvancedRushingStats {
player: NFLPlayer;
season: number;
week: number;
avg_time_to_los: number;
expected_rush_yards: number;
rush_attempts: number;
rush_pct_over_expected: number;
rush_touchdowns: number;
rush_yards: number;
rush_yards_over_expected: number;
rush_yards_over_expected_per_att: number;
efficiency: number;
percent_attempts_gte_eight_defenders: number;
avg_rush_yards: number;
}
export interface NFLAdvancedPassingStats {
player: NFLPlayer;
season: number;
week: number;
aggressiveness: number;
attempts: number;
avg_air_distance: number;
avg_air_yards_differential: number;
avg_air_yards_to_sticks: number;
avg_completed_air_yards: number;
avg_intended_air_yards: number;
avg_time_to_throw: number;
completion_percentage: number;
completion_percentage_above_expectation: number;
completions: number;
expected_completion_percentage: number;
games_played: number;
interceptions: number;
max_air_distance: number;
max_completed_air_distance: number;
pass_touchdowns: number;
pass_yards: number;
passer_rating: number;
}
export interface NFLAdvancedReceivingStats {
player: NFLPlayer;
season: number;
week: number;
avg_cushion: number;
avg_expected_yac: number;
avg_intended_air_yards: number;
avg_separation: number;
avg_yac: number;
avg_yac_above_expectation: number;
catch_percentage: number;
percent_share_of_intended_air_yards: number;
rec_touchdowns: number;
receptions: number;
targets: number;
yards: number;
}
export interface MLBTeam {
id: number;
slug: string;
abbreviation: string;
display_name: string;
short_display_name: string;
name: string;
location: string;
league: "American" | "National";
division: "East" | "Central" | "West";
}
export interface MLBPlayer {
id: number;
first_name: string;
last_name: string;
full_name: string;
debut_year: number | null;
jersey: string | null;
college: string | null;
position: string;
active: boolean;
birth_place: string | null;
dob: string | null;
age: number | null;
height: string | null;
weight: string | null;
draft: string | null;
bats_throws: string | null;
team: MLBTeam;
}
export interface MLBGame {
id: number;
home_team_name: string;
away_team_name: string;
home_team: MLBTeam;
away_team: MLBTeam;
season: number;
postseason: boolean;
date: string;
home_team_data: {
hits: number;
runs: number;
errors: number;
inning_scores: number[];
};
away_team_data: {
hits: number;
runs: number;
errors: number;
inning_scores: number[];
};
venue: string | null;
attendance: number | null;
status: string;
scoring_summary: Array<{
play: string;
inning: string;
period: string;
away_score: number;
home_score: number;
}>;
}
export interface MLBStats {
player: MLBPlayer;
game: MLBGame;
team_name: string;
at_bats: number | null;
runs: number | null;
hits: number | null;
rbi: number | null;
hr: number | null;
bb: number | null;
k: number | null;
avg: number | null;
obp: number | null;
slg: number | null;
ip: number | null;
p_hits: number | null;
p_runs: number | null;
er: number | null;
p_bb: number | null;
p_k: number | null;
p_hr: number | null;
pitch_count: number | null;
strikes: number | null;
era: number | null;
}
export interface MLBStandings {
team: MLBTeam;
league_name: string;
league_short_name: string;
division_name: string;
division_short_name: string;
ot_losses: number | null;
ot_wins: number | null;
avg_points_against: number | null;
avg_points_for: number | null;
clincher: number | null;
differential: number | null;
division_win_percent: number | null;
games_behind: number | null;
games_played: number | null;
league_win_percent: number | null;
losses: number | null;
playoff_seed: number | null;
point_differential: number | null;
game_back_points: number | null;
points_against: number | null;
points_for: number | null;
streak: number | null;
ties: number | null;
win_percent: number | null;
wins: number | null;
division_games_behind: number | null;
division_percent: number | null;
division_tied: number | null;
home_losses: number | null;
home_ties: number | null;
home_wins: number | null;
magic_number_division: number | null;
magic_number_wildcard: number | null;
playoff_percent: number | null;
road_losses: number | null;
road_ties: number | null;
road_wins: number | null;
wildcard_percent: number | null;
total: string | null;
home: string | null;
road: string | null;
intra_division: string | null;
intra_league: string | null;
last_ten_games: string | null;
}
export interface MLBSeasonStats {
player: MLBPlayer;
team_name: string;
season: number;
postseason: boolean;
batting_gp: number | null;
batting_ab: number | null;
batting_r: number | null;
batting_h: number | null;
batting_avg: number | null;
batting_2b: number | null;
batting_3b: number | null;
batting_hr: number | null;
batting_rbi: number | null;
batting_bb: number | null;
batting_so: number | null;
batting_sb: number | null;
batting_obp: number | null;
batting_slg: number | null;
batting_ops: number | null;
batting_war: number | null;
pitching_gp: number | null;
pitching_gs: number | null;
pitching_w: number | null;
pitching_l: number | null;
pitching_era: number | null;
pitching_sv: number | null;
pitching_ip: number | null;
pitching_h: number | null;
pitching_er: number | null;
pitching_hr: number | null;
pitching_bb: number | null;
pitching_k: number | null;
pitching_war: number | null;
fielding_gp: number | null;
fielding_gs: number | null;
fielding_fip: number | null;
fielding_tc: number | null;
fielding_po: number | null;
fielding_a: number | null;
fielding_fp: number | null;
fielding_e: number | null;
fielding_dp: number | null;
fielding_rf: number | null;
fielding_dwar: number | null;
fielding_pb: number | null;
fielding_cs: number | null;
fielding_cs_percent: number | null;
fielding_sba: number | null;
}
export interface MLBTeamSeasonStats {
team: MLBTeam;
team_name: string;
postseason: boolean;
season: number;
gp: number | null;
batting_ab: number | null;
batting_r: number | null;
batting_h: number | null;
batting_2b: number | null;
batting_3b: number | null;
batting_hr: number | null;
batting_rbi: number | null;
batting_tb: number | null;
batting_bb: number | null;
batting_so: number | null;
batting_sb: number | null;
batting_avg: number | null;
batting_obp: number | null;
batting_slg: number | null;
batting_ops: number | null;
pitching_w: number | null;
pitching_l: number | null;
pitching_era: number | null;
pitching_sv: number | null;
pitching_cg: number | null;
pitching_sho: number | null;
pitching_qs: number | null;
pitching_ip: number | null;
pitching_h: number | null;
pitching_er: number | null;
pitching_hr: number | null;
pitching_bb: number | null;
pitching_k: number | null;
pitching_oba: number | null;
pitching_whip: number | null;
fielding_e: number | null;
fielding_fp: number | null;
fielding_tc: number | null;
fielding_po: number | null;
fielding_a: number | null;
}
export interface MLBPlayerInjury {
player: MLBPlayer;
date: string;
return_date: string | null;
type: string;
detail: string;
side: string;
status: string;
long_comment: string | null;
short_comment: string | null;
}
export interface ClientConfig {
apiKey: string;
baseUrl?: string;
}
export interface EPLTeam {
id: number;
name: string;
short_name: string;
abbr: string;
city: string;
stadium: string;
}
export interface EPLPlayer {
id: number;
position: string | null;
national_team: string | null;
height: number | null;
weight: number | null;
birth_date: string | null;
age: string | null;
name?: string;
first_name: string | null;
last_name: string | null;
team_ids?: number[] | null;
}
export interface EPLTeamSeasonStat {
value: number;
name: string;
rank: number;
season: number;
}
export interface EPLPlayerSeasonStat {
value: number;
name: string;
rank: number;
season: number;
}
export interface EPLGame {
id: number;
week: number;
kickoff: string | null;
provisional_kickoff: string | null;
home_team_id: number;
away_team_id: number;
home_score: number | null;
away_score: number | null;
status: string | null;
season: number;
ground: string | null;
clock: number | null;
clock_display: string | null;
extra_time: boolean | null;
}
export interface EPLGameLineup {
team_id: number;
player: EPLPlayer;
substitute: boolean;
captain: boolean;
position: string | null;
shirt_number: number | null;
sub_clock: number | null;
sub_clock_display: string | null;
}
export interface EPLGameGoal {
game_id: number;
scorer: EPLPlayer;
assister: EPLPlayer | null;
clock: number;
clock_display: string | null;
phase: string | null;
type: string | null;
}
export interface EPLGameTeamStats {
game_id: number;
teams: Array<{
team_id: number;
stats: Array<{
name: string;
value: number;
}>;
}>;
}
export interface EPLGamePlayerStats {
game_id: number;
players: Array<{
team_id: number;
player_id: number;
stats: Array<{
name: string;
value: number;
}>;
}>;
}
export interface EPLStanding {
team: EPLTeam;
season: number;
position: number;
form: string;
home_played: number;
home_drawn: number;
home_won: number;
home_lost: number;
home_goals_against: number;
home_goals_difference: number;
home_goals_for: number;
home_points: number;
away_played: number;
away_drawn: number;
away_won: number;
away_lost: number;
away_goals_against: number;
away_goals_difference: number;
away_goals_for: number;
away_points: number;
overall_played: number;
overall_drawn: number;
overall_won: number;
overall_lost: number;
overall_goals_against: number;
overall_goals_difference: number;
overall_goals_for: number;
overall_points: number;
}
export interface EPLPlayerStatLeaders {
player: EPLPlayer;
season: number;
rank: number;
value: number;
name: EPLPlayerStatType;
}
export interface EPLTeamStatLeaders {
team: EPLTeam;
season: number;
rank: number;
value: number;
name: EPLTeamStatType;
}
export type EPLPlayerStatType = "goals" | "goal_assist" | "clean_sheet" | "appearances" | "mins_played" | "yellow_card" | "red_card" | "total_pass" | "touches" | "total_scoring_att" | "hit_woodwork" | "big_chance_missed" | "total_offside" | "total_tackle" | "fouls" | "dispossessed" | "own_goals" | "total_clearance" | "clearance_off_line" | "saves" | "penalty_save" | "total_high_claim" | "punches";
export type EPLTeamStatType = "wins" | "losses" | "touches" | "own_goals" | "total_yel_card" | "total_red_card" | "goals" | "total_pass" | "total_scoring_att" | "total_offside" | "hit_woodwork" | "big_chance_missed" | "total_tackle" | "total_clearance" | "clearance_off_line" | "dispossessed" | "clean_sheet" | "saves" | "penalty_save" | "total_high_claim" | "punches";