smartbetsAPI

Soccer prediction package fitted with REST API

GPL-3.0 License

Downloads
377
Stars
7
Committers
1

"Punter's choice"

Worldwide soccer-matches predictor with Fast-API and a package for integrating the scripts in your own Python code.

Features

  • REST-API
  • Script integration (package)
  • Non-ML

Installation and usage

Installation

Python 3.9+ is required for this script to be fruitful to you.

  • Installing through pip is always the most preferred way:
pip  install smartbetsAPI

  • For those who like enjoying the latest releases from Github like me, rather than waiting for the next one:
pip install git+https://github.com/Simatwa/smartbetsAPI.git

To install it alongside REST-API dependencies simply run:

pip install "smartbetsapi[api]"

Usage

  1. Terminal

Running $ smartbetsAPI <token/password> will fire up the FastAPI server with the following default configurations.

  • For instance :
 $ smartbetsAPI mypass9876

[!TIP] Docs will be available at : http://localhost:8000/v1/docs Redoc will be available at : http://localhost:8000/v1/redoc

Here is an example of a simple program that makes prediction using the REST API.

[!Note] Reinstall with sudo privileges if smartbetsAPI command can't be found.

Example predicting using REST API

from smartbets_API import predictor
predict = predictor('http://localhost:8080','password')
bets=predict.get_predictions('Arsenal','Manchester')
print(bets)
#Output
#(True, {'choice': 55.56, 'g': 14.0, 'gg': 80.0, 'ov15': 80.0, 'ov25': 65.0, 'ov35': 55.0, 'pick': 'ov15', 'result': '1'})
  • For more information you can run smartbetsAPI -h
  1. Importing Package

Module predictor provides two ways of interacting with it at the programming level, based on the data-type in which the teams have been packed and parsed to it:

  • Using predictorL object which accepts teams (List data-type).

For example:

#!/usr/bin/env python3
from smartbets_API.predictor import predictor

teams = [
    "Napoli",  # Home team (index [0])
    "AC Milan",  # Away team (index [1])
]
# Instantiating predictor
predict = predictor()

# Using predictorL object to handle teams (List data-type)
predictions = predict.predictorL(teams)

# Display info
print(predictions)

#Output
#{'g': 8.0, 'gg': 65.0, 'ov15': 70.0, 'ov25': 40.0, 'ov35': 30.0, 'choice': 60.0, 'result': '2', 'pick': 'ov15'}

  • Using predictorD object which takes teams (Dictionary data-type):

For example:

#!/usr/bin/env python3
from smartbets_API.predictor import predictor

teams = {
    1: "Manchester City",  # 1 for home-team
    2: "Liverpool",  # 2 for away-team
}

# Instantiating predictor
predict = predictor()

# Using predictorD object to handle teams (Dictionary data-type)
predictions = predict.predictorD(teams)

# Display info
print(predictions)

#Output
#{'g': 8.0, 'gg': 65.0, 'ov15': 60.0, 'ov25': 45.0, 'ov35': 30.0, 'choice': 56.16, 'result': '1', 'pick': 'gg'}

  • The output initials are explained in the table below.

Note

  • Probabilities are in percentange (%)

Further info

The predictor class accepts multiple parameters that includes :

The two predictor's object (predictorD, predictorL) accepts two parameters i.e.

  • teams - Required
  • net - Source of team's data - Default True (Online)

Source of data

Team performances are sourced from Soccerway after retrieving the uri from Google.

Warning Copyright related issues are liable to the user of this script!

Disclaimer

This project aims to help punters and bookmarkers to make informed and well researched soccer-predictions. Nevertheless, it is important to specify that 100% accuracy does not exist and smartbetsAPI can't guarantee the accuracy of the predictions. It is therefore your responsibility to trust the information generated by smartbetsAPI after evaluating its reliability. As the creator, I CANNOT be held responsible for any loss of capital that may occur during the use of this program.

Contributing and Support

Contributing

Contributions are always welcome! Please take a look at the Contribution guidelines. Feel free to open an Issue or to Fork this repo.

ToDo

  • Upgrade to Machine learning
  • Improve algorithim's accuracy
  • General code improvements
  • Fix bugs

Support

Consider donating to this project if you find it useful:

API Health Status

No. API Status
1. On-render cron-job

Credits

Special Thanks

Package Rankings
Top 22.89% on Pypi.org