Skip to content

Java client integration example (API v3)

Ihor Komar edited this page Jul 1, 2022 · 2 revisions

Oddsmarket maintains Java client library for using in Java application. The library source code and JAR file are published in this repository.

Additionally, in this repository you will find a reference implementation of Oddsmarket websocket client - a Java command-line application called FeedReader.

Steps for integrating Oddsmarket client library into your Java application

1. Add oddsmarket maven repository

Maven pom.xml example

<repositories>
  ...
  <repository>
    <id>oddsmarket_client</id>
    <url>https://public:&#103;hp_U8EDZgjmRsd2BIWznz3UQLcSDW14gV4LGDRF@maven.pkg.github.com/AspiraLimited/oddsmarket_client</url>
    <snapshots>
      <enabled>true</enabled>
      <updatePolicy>always</updatePolicy>
    </snapshots>
  </repository>
</repositories>

Gradle example

repositories {
    ...
    maven("https://maven.pkg.github.com/AspiraLimited/oddsmarket_client") {
        credentials {
            username = "public"
            password = "\u0067hp_U8EDZgjmRsd2BIWznz3UQLcSDW14gV4LGDRF"
        }
    }
}

configurations.all {
    // check for updates every build
    resolutionStrategy.cacheChangingModulesFor 60, 'seconds'
}

When using Gradle, please mark dependencies with "-SNAPSHOT" version suffix as changing: true in your dependencies list.

2. Add oddsmarket library to your dependencies

See the latest <dependency> snippet on the oddsmarket client library package page.

3. Create client instance and establish websocket connection

OddsmarketClient client = OddsmarketClient.connect("wss://api-pr.oddsmarket.org/v3/odds_ws", "YOUR_API_KEY");

Use wss://api-pr.oddsmarket.org/v3/odds_ws for prematch events and wss://api-lv.oddsmarket.org/v3/odds_ws for live events.

4. Construct message handler

OddsmarketClient.Handler handler = new OddsmarketClient.Handler() {
    @Override
    public void info(String message) {
        // ...
    }

    @Override
    public void bookmakerEvent(BookmakerEvent bookmakerEvent) {
        // ...
    }

    @Override
    public void odds(Map<String, Odd> oddByOddId) {
        // ...
    }

    @Override
    public void removeBookmakerEvents(Collection<Long> bookmakerEventIds) {
        // ...
    }
};
client.handler(handler);
Handler method Description
info Method is called when FIELDS, SUBSCRIBED or unknown command are received from server. May be used for debugging and logging.
bookmakerEvent Method is called when BookmakerEvent message arrives from server. In this method you should implement updating of your internal bookmaker events state.
odds Method is called when Odds message arrives from server. In this method you should implement updating of your internal outcomes state.
removeBookmakerEvents Method is called when bookmaker event removal command removed arrives from server.

5. Subscribe on updates

OddsmarketClient.Subscribe subscribe = new OddsmarketClient.Subscribe()
.bookmakerIds(2)
.sportIds(2);

client.subscribe(subscribe);

6. Use dictionaries client if needed

Usage example:

        OddsmarketRestHttpClient oddsmarketRestHttpClient = new OddsmarketRestHttpClient(
            "https://api-mst.oddsmarket.org",
            "https://api-lv.oddsmarket.org",
            "https://api-pr.oddsmarket.org",
            5000L
        );

        List<MarketAndBetTypeDto> marketAndBetTypeDtos = oddsmarketRestHttpClient.getMarketAndBetTypes().get();

        List<BetTypeDto> betTypeDtos = oddsmarketRestHttpClient.getBetTypes().get();

        List<SportDto> sportDtos = oddsmarketRestHttpClient.getSports().get();

        List<BookmakerDto> bookmakerDtos = oddsmarketRestHttpClient.getBookmakers().get();

Please read how to get a list of bookmakers from here.

Please read how to get a list of sports from here.

Clone this wiki locally