UNPKG

@sports-sdk/odds-blaze

Version:

A package for interacting with the OddsBlaze API

324 lines (319 loc) 9.94 kB
import { League } from '@sports-sdk/core'; declare enum OddsBlazeLeague { Bundesliga = "germany_bundesliga", CS2 = "cs2", EPL = "england_premier_league", LOL = "league_of_legends", MLB = "mlb", MLS = "united_states_major_league_soccer", NBA = "nba", NCAAF = "ncaaf", NCAAM = "ncaab", NFL = "nfl", NHL = "nhl", UFC = "ufc", Valorant = "valorant", WNBA = "wnba" } declare enum OddsBlazeSGPSportsbooks { BALLY_BET = "bally_bet", BALLY_BET_COLORADO = "bally_bet_colorado", BETONLINE_PROP_BUILDER = "betonline_prop_builder", BETRIVERS = "betrivers", BETRIVERS_COLORADO = "betrivers_colorado", BETRIVERS_ONTARIO = "betrivers_ontario", BETSAFE_ONTARIO = "betsafe_ontario", BODOG = "bodog", BODOG_PROP_BUILDER = "bodog_prop_builder", BOVADA = "bovada", BOVADA_PROP_BUILDER = "bovada_prop_builder", CASUMO_ONTARIO = "casumo_ontario", DRAFTKINGS = "draftkings", DRAFTKINGS_ONTARIO = "draftkings_ontario", ESPN_BET = "espn_bet", FANDUEL = "fanduel", FANDUEL_ONTARIO = "fanduel_ontario", HARD_ROCK_BET = "hard_rock_bet", HARD_ROCK_BET_NEW_JERSEY = "hard_rock_bet_new_jersey", LADBROKES_AUSTRALIA = "ladbrokes_australia", NORTHSTAR_BETS_ONTARIO = "northstar_bets_ontario", PRIZEPICKS = "prizepicks", PRIZEPICKS_DEMONS = "prizepicks_demons", PRIZEPICKS_GOBLINS = "prizepicks_goblins", THESCORE_BET = "thescore_bet", THESCORE_BET_ONTARIO = "thescore_bet_ontario", UNIBET_UNITED_KINGDOM = "unibet_united_kingdom" } declare enum OddsBlazeSportsbooks { BET365 = "bet365", BETFAIR_UNITED_KINGDOM = "betfair_united_kingdom", BETFRED_UNITED_KINGDOM = "betfred_united_kingdom", BETMGM = "betmgm", BETMGM_COLORADO = "betmgm_colorado", BETMGM_ONTARIO = "betmgm_ontario", BETONLINE = "betonline", BETPARX_NEW_JERSEY = "betparx_new_jersey", BOOMBET_AUSTRALIA = "boombet_australia", CAESARS_COLORADO = "caesars_colorado", CAESARS_ONTARIO = "caesars_ontario", CIRCA_SPORTS_NEVADA = "circa_sports_nevada", DRAFTKINGS_PICK6 = "draftkings_pick6", FANATICS = "fanatics", FLIFF = "fliff", HOTSTREAK = "hotstreak", LADBROKES_UNITED_KINGDOM = "ladbrokes_united_kingdom", PADDY_POWER_UNITED_KINGDOM = "paddy_power_united_kingdom", PARLAYPLAY = "parlayplay", PINNACLE = "pinnacle", POINTSBET = "pointsbet", POINTSBET_ONTARIO = "pointsbet_ontario", PRIME_SPORTS_NEW_JERSEY = "prime_sports_new_jersey", PROPHETX = "prophetx", PS3838 = "ps3838", SKY_BET_UNITED_KINGDOM = "sky_bet_united_kingdom", SLEEPER = "sleeper", SPORT_888_ONTARIO = "888sport_ontario", STAKE = "stake", TAB_AUSTRALIA = "tab_australia", UNDERDOG_FANTASY = "underdog_fantasy" } type OddsBlazeSubDomains = "api" | "data" | "sgp"; interface OddsProps { league: OddsBlazeLeague; live?: boolean; main?: boolean; sportsbook: OddsBlazeSportsbooks | OddsBlazeSGPSportsbooks; } interface BetSettlementProps { gradeIds: Array<string>; } interface SameGameParlayProps { price: "decimal" | "american"; sgpIds: Array<string>; sportsbook: OddsBlazeSGPSportsbooks; } interface MarketsProps { league: OddsBlazeLeague; } interface TeamsProps { abbreviation?: string; city?: string; conference?: string; division?: string; id?: string; league?: OddsBlazeLeague; name?: string; team?: string; } interface PlayersProps { league: OddsBlazeLeague; playerIds?: Array<string>; playerPositions?: Array<string>; } interface OddsStatusProps extends MarketsProps { } interface OddsResponse { games: Array<{ id: string; league: string; live: boolean; sport: string; sportsbooks: Array<{ id: string; name: string; odds: Array<{ grade: string; group: string; id: string; link: string; main: boolean; market: string; name: string; players: Array<{ id: string; name: string; position: string; team: { abbreviation: string; id: string; name: string; }; }>; points: number; price: string; sgp: string; updated: string; }>; }>; start: string; status: string; teams: { away: { abbreviation: string; id: string; name: string; }; home: { abbreviation: string; id: string; name: string; }; }; tournament: string; }>; } interface BetSettlementResponse { odds: Array<{ game: { id: string; live: boolean; status: string; teams: { away: { abbreviation: string; id: string; name: string; score: number; }; home: { abbreviation: string; id: string; name: string; score: number; }; }; }; grade: string; market: string; name: string; players: Array<{ name: string; position: string; score: number; }>; result: string; }>; } interface SameGameParlayResponse { price: string | null; } interface SportsbooksResponse { sportsbooks: Array<{ clone?: { country?: string; id: string; name: string; state?: string; }; country?: string; fantasy: boolean; id: string; name: string; sgp: boolean; state?: string; }>; } interface MarketsResponse { leagues: Array<{ id: string; markets: Array<{ grade: boolean; id: string; name: string; period: string; player: boolean; }>; name: string; sport: string; updated: string; }>; } interface TeamsResponse { leagues: Array<{ id: string; name: string; sport: string; teams: Array<{ abbreviation: string; city: string; conference: string; division: string; id: string; name: string; team: string; }>; updated: string; }>; } interface PlayersResponse { leagues: Array<{ id: string; name: string; sport: string; teams: Array<{ abbreviation: string; id: string; name: string; players: Array<{ first: string; id: string; last: string; name: string; number: string; position: string; }>; }>; updated: string; }>; } interface OddsStatusResponse { leagues: Array<{ id: string; name: string; sport: string; sportsbooks: Array<{ id: string; link: string; name: string; odds: boolean; }>; updated: string; }>; } /** * OddsBlaze has multiple subdomains that is uses (data, api, sgp), so it is easier to not extend from the base client */ declare class OddsBlazeClient { private readonly apiVersion; protected readonly apiKey: string; private readonly axiosInstances; /** * Create an OddsBlaze API client * @param apiKey - The API key for authenticating API requests. If not provided, it will look for `ODDS_BLAZE_KEY` in the environment variables. * @param apiVersion - The version of the OddsBlaze API endpoint to use * @throws Will throw an error if the API key is not provided or found in the environment variables. */ constructor(apiKey?: string, apiVersion?: string); private getAxiosInstance; static coreLeagueToOddsBlazeLeague(league: League): OddsBlazeLeague; /** * Sends a GET request to the specified URL path. * @param subDomain - The OddsBlaze subdomain to call * @param path - The path to append to base URL to send the request to. * @param body - The body to send with the post request * @param method - The HTTP method to use * @param additionalParams - Additional query parameters for the request. * @returns The response data from the API * @throws Will throw an error if the request fails. */ private request; getOdds(props: OddsProps): Promise<OddsResponse>; settleBets(props: BetSettlementProps): Promise<BetSettlementResponse>; priceSameGameParlay(props: SameGameParlayProps): Promise<SameGameParlayResponse>; getSportsbooks(): Promise<SportsbooksResponse>; getMarkets(props: MarketsProps): Promise<MarketsResponse>; getTeams(props: TeamsProps): Promise<TeamsResponse>; getPlayers(props: PlayersProps): Promise<PlayersResponse>; getOddsStatus(props: OddsStatusProps): Promise<OddsStatusResponse>; } export { type BetSettlementProps, type BetSettlementResponse, type MarketsProps, type MarketsResponse, OddsBlazeClient, OddsBlazeLeague, OddsBlazeSGPSportsbooks, OddsBlazeSportsbooks, type OddsBlazeSubDomains, type OddsProps, type OddsResponse, type OddsStatusProps, type OddsStatusResponse, type PlayersProps, type PlayersResponse, type SameGameParlayProps, type SameGameParlayResponse, type SportsbooksResponse, type TeamsProps, type TeamsResponse };