Skip to main content

A lightweight OddsJam API wrapper

Project description

oddsjam-api: A lightweight OddsJam API wrapper

V2 Update

V2 support is now available for the new endpoints/models listed at the OddsJam Developer Page. The client exposed by this package is backwards compatible, and runs in v1 by default. Versions can be switched as follows:

    from OddsJamClient import OddsJamClient;
    Client = OddsJamClient(YOUR_API_KEY);
    v1Results = Client.GetLeagues(); #Default v1 endpoints

    Client.UseV2();
    v2Results = Client.GetLeagues(); #v2 endpoints

This update comes with the following changes:

  • Type hinting for function calls is no longer available. Function calls will appear with (*args: Any, **kwargs:Any) -> Any. Please refer to the developer documentation for valid arguments.
  • The V2 client does not contain a GetMarkets() function.
  • The V2 client requires at least one argument for the GetOdds() function. This is due to the amount of data returned from the new V2 endpoint. Attempting a call to GetOdds() without a parameter will result in an InvalidGetOddsV2Error, and the endpoint will not be hit.

What is oddsjam-api?

oddsjam-api is a fast, lightweight wrapper for the OddsJam API. It strives to be as intuitive to use as possible, providing strongly typed requests and responses to ensure predictability and consistency.

How do I use it?

Start by installing the oddsjam-api package (currently only on TestPyPI):

    pip install oddsjam-api

Create an instance of the OddsJamClient:

    from OddsJamClient import OddsJamClient;
    Client = OddsJamClient(YOUR_API_KEY);

Then simply call whichever function you'd like to:

    from OddsJamClient import OddsJamClient;
    Client = OddsJamClient(YOUR_API_KEY);
    GamesResponse = Client.GetGames();

Parameters are not required for any function call, but can be provided as desired:

    from OddsJamClient import OddsJamClient;
    Client = OddsJamClient(YOUR_API_KEY);
    GamesResponse = Client.GetGames(league='ncaa', sport='football');

Parameters will raise specific errors:

    GamesResponse = Client.GetGames(sport='curling'); 
    #Raises SportError, with a list of valid values

    OddsResponse = Client.GetOdds(sportsbook='212 Bet');
    #Raises SportsBookError, with a list of valid values

Note: Sport and SportsBook parameters are case insensitive

Accessing the object of a response requires accessing the response's object:

    from OddsJamClient import OddsJamClient;
    Client = OddsJamClient(YOUR_API_KEY);
    GamesResponse = Client.GetGames();
    Games = GamesResponse.Games;

List comprehension can also be used to access objects:

    AwayTeams = [g.away_team for g in GamesResponse.Games];

Nested objects can be accessed similarly:

    OddsResponse = Client.GetOdds();
    print(OddsResponse.Odds[0].game.sport)

The raw response from the API is also accessible via the RawResponse property of any Response object:

    Raw = GamesResponse.RawResponse;
    Jobj = json.loads(raw);

Built-in functions

Convert entire Odds collection to decimal, then back to American:

    OddsResponse = Client.GetOdds();
    OddsResponse.AsDecimal();
    OddsResponse.AsAmerican();

Convert individual Odds object to decimal, then back to American:

    OddsResponse = Client.GetOdds();
    FirstOdd = OddsResponse.Odds[0];
    FirstOdd.AsDecimal();
    FirstOdd.AsAmerican();

Example usage

Flatten and output data using pandas:

    import pandas as pd;
    from OddsJamClient import OddsJamClient;

    Client = OddsJamClient(YOUR_API_KEY);
    Odds = Client.GetOdds().Odds;
    df = pd.DataFrame(Odds);

    #Lambda over rows to extract just the ID from the 'game' object in each row
    df['game'] = df.apply(lambda row: row['game']['id'], axis=1)
    
    #Get odds for Moneyline markets only
    df = df.loc[df['market_name'] == 'Moneyline']

PyPi

ORIGINAL CREDIT GOES TO https://github.com/cooperbrandon1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oddsjam-api-0.2.9.tar.gz (13.3 kB view hashes)

Uploaded Source

Built Distribution

oddsjam_api-0.2.9-py3-none-any.whl (29.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page