/jbetfairng

Java Betfair APING Library

Primary LanguageJavaMIT LicenseMIT

Betfair API-NG Java Client API

A feature complete Java Betfair API-NG client that builds on the Betfair sample code. It's based on the C# betfairng library, however lacks the Reactive Extensions (rx) concurrency layer.

How to use it

To login to Betfair using this library, you'll need both a) a self signed certificate (follow the process described here), and b) an application key directions here.

BetfairClient client = new BetfairClient(Exchange.AUS, "ASDF1234qwerty");
client.login("client-2048.p12", "certpass", "username", "password");

The "BetfairClient" class is where the magic happens. Be sure to import the Helpers class:

List<MarketCatalogue> marketCatalogue = client.listMarketCatalogue(
    Helpers.horseRaceFilter("AU"),
    Helpers.horseRaceProjection(),
    MarketSort.FIRST_TO_START,
    15).getResponse();

for (MarketCatalogue c : marketCatalogue) { 
    // ... print the available markets
}

List<String> marketIds = new ArrayList<String>();
marketIds.add(marketCatalogue.get(0).getMarketId());    
List<MarketBook> marketBooks = client.listMarketBook(
    marketIds, 
    Helpers.horseRacePriceProjection(),
    null,
    null).getResponse();

for (MarketBook book : marketBooks) {
    // ... print the market book
}

Or for soccer

 List<MarketCatalogue> marketCatalogueList = client.listMarketCatalogue(
                Helpers.soccerMatchFilter(null),
                Helpers.soccerMatchProjection(),
                MarketSort.FIRST_TO_START, 20).getResponse();

        for (MarketCatalogue marketCatalogue : marketCatalogueList) {
            printMarketCatalogue(marketCatalogue);
        }
        
        
 private void printMarketCatalogue(MarketCatalogue mk) {
        System.out.println("Market Name: " + mk.getMarketName() + "; Id: " + mk.getMarketId()
                + ";Competition: " + mk.getCompetition() + "; Time: " + mk.getDescription().getMarketTime() + "\n");

        List<RunnerCatalog> runners = mk.getRunners();
        if (runners != null) {
            for (RunnerCatalog rCat : runners) {
                System.out.println("Runner Name: " + rCat.getRunnerName() + "; Selection Id: " + rCat.getSelectionId() + "\n");
            }
        }
    }