darkslight2/betsapi-sdk

v2.3.0 2024-11-04 18:33 UTC

This package is auto-updated.

Last update: 2025-06-04 19:45:49 UTC


README

1. Install package

composer require darkslight2/betsapi-sdk

2. Add to .env

BETSAPI_TOKEN=
BETSAPI_URL=https://api.b365api.com

Enums

use DarksLight2\BetsApiSDK\Enums\SportType;
use DarksLight2\BetsApiSDK\Enums\CountryCode;
use DarksLight2\BetsApiSDK\Enums\TimeStatus;

Using BET365 API

Getting in-play filter events

Available fot soccer, volleyball, basketball, baseball

use DarksLight2\BetsApiSDK\Bet365API\RequestMaker;
use DarksLight2\BetsApiSDK\Bet365API\DTO\EventDTO;
use DarksLight2\BetsApiSDK\Bet365API\Enums\SportType;
use DarksLight2\BetsApiSDK\Bet365API\Hydrate\EventHydrate;

EventHydrate::hydrate(RequestMaker::inPlayFilter(SportType::Soccer))
    ->each(function (EventDTO $event) {
        // do something...
    })

or with Generator

Available filtering data by limits

use DarksLight2\BetsApiSDK\Bet365API\GeneratorRequestMaker;
use DarksLight2\BetsApiSDK\Bet365API\Enums\TimeStatus;
use DarksLight2\BetsApiSDK\Bet365API\Enums\SportType;

$generator = GeneratorRequestMaker::upcoming(SportType::Soccer, day: now(), data_limit: [
    'time_status' => [
        TimeStatus::InPlay->value => 10,
        TimeStatus::NotStarted->value => 10,
    ]
];

foreach ($generator) as $events) {
    if(empty($events)) continue;
    dump(EventHydrate::hydrate($events));
}

Getting result

Available fot soccer, volleyball, basketball, baseball.

Using EventHydrate from EverythingAPI because it has the same fields.

use DarksLight2\BetsApiSDK\Bet365API\RequestMaker;
use DarksLight2\BetsApiSDK\EverythingAPI\Hydrate\EventHydrate;
use DarksLight2\BetsApiSDK\EverythingAPI\DTO\EventDTO;

EventHydrate::hydrate(RequestMaker::result(<event_id>))
    ->each(function (EventDTO $event) {
        // do something...
    })

Using EVERYTHING API

Getting events

use DarksLight2\BetsApiSDK\EverythingAPI\RequestMaker;
use DarksLight2\BetsApiSDK\EverythingAPI\DTO\EventDTO;
use DarksLight2\BetsApiSDK\EverythingAPI\Enums\SportType;
use DarksLight2\BetsApiSDK\EverythingAPI\Hydrate\EventHydrate;

$upcoming = EventHydrate::hydrate(RequestMaker::upcoming(SportType::Soccer, day: now()))
    ->each(function (EventDTO $event) {
        // do something...
    });

$in_play = EventHydrate::hydrate(RequestMaker::inPlay(SportType::Soccer))
    ->each(function (EventDTO $event) {
        // do something...
    });

Getting leagues

use DarksLight2\BetsApiSDK\EverythingAPI\RequestMaker;
use DarksLight2\BetsApiSDK\EverythingAPI\Enums\SportType;
use DarksLight2\BetsApiSDK\EverythingAPI\Hydrate\EventHydrate;

foreach (CountryCode::cases() as $country_code) {
    LeagueHydrate::hydrate(RequestMaker::leagues(SportType::Soccer, $country_code))
        ->each(function (LeagueDTO $league) {
            // do something...
        });
}

Getting odds

use DarksLight2\BetsApiSDK\EverythingAPI\Collections\OddCollection;
use DarksLight2\BetsApiSDK\EverythingAPI\RequestMaker;
use DarksLight2\BetsApiSDK\EverythingAPI\Hydrate\OddHydrate;

OddHydrate::hydrate(RequestMaker::odds(<event_id>, 'bet365'))
    ->each(function (OddCollection $collection) {
        // do something...
    });

Getting summary odds

use DarksLight2\BetsApiSDK\EverythingAPI\RequestMaker;
use DarksLight2\BetsApiSDK\EverythingAPI\Hydrate\OddHydrate;
use DarksLight2\BetsApiSDK\EverythingAPI\Hydrate\OddSummaryHydrate;

OddSummaryHydrate::hydrate(RequestMaker::oddsSummary(<event_id>, limit:100))
    ->each(function (Collection $collection) {
        // do something...
    });