Construisez un bot de paris avec l'API Cloudbet


Cloudbet (revue) n'est pas seulement l'un des meilleurs sites de paris sportifs, il fournit également une excellente interface pour les paris programmatiques.

Trouver votre clé API et obtenir des fonds de test

Votre clé API Cloudbet est un jeton unique à votre compte qui est utilisé pour authentifier vos requêtes API. Vous pouvez récupérer votre clé API en accédant à Préférences > API sur le site Web de Cloudbet. Ne partagez jamais cette clé API avec qui que ce soit car elle pourrait être utilisée pour voler des fonds sur votre compte Cloudbet.

Lors du développement de votre application de paris, il peut être utile d'expérimenter avec des fonds de test afin que vous n'ayez pas besoin de dépenser de la vraie crypto. Pour obtenir des fonds de test. ce qui peut être fait en cliquant sur l'icône de votre profil dans le coin supérieur droit du site de Cloudbet et en sélectionnant " Chat en direct ".

Documentation de l'API Cloudbet

L'API Cloudbet est extrêmement bien documentée sur Sur cette page, vous trouverez les points de terminaison pris en charge par l'API. Cliquer sur l'un de ces points de terminaison révélera les paramètres qui doivent être fournis lors des demandes au point de terminaison et à quoi s'attendre dans la réponse.

Pour faire une demande à l'un de ces points de terminaison, vous devez le préfixer avec Par exemple, pour obtenir des appareils à l'aide du point de terminaison /v2/odds/fixtures, vous feriez une demande à

Installer Python

Le langage de programmation Python facilite l'interaction avec l'API Cloudbet. Pour utiliser Python, vous aurez besoin de  :

  • Python 3 installé sur votre machine. Si vous êtes sous Windows. Si vous êtes sur Linux ou macOS, vous l'avez probablement déjà installé, mais sinon,
  • La bibliothèque Python des requêtes. Cela peut être installé avec :
  • python3 -m pip install --demandes des utilisateurs

    Liste des événements

    /v2/odds/fixtures pour trouver les événements. La documentation de l'API Cloudbet révèle que les requêtes adressées à ce point de terminaison doivent fournir  :

    • sport: Une clé de sport qui peut être trouvée avec le point de terminaison /v2/odds/sports.
    • Date : la date des événements au format aaaa-mm-jj.
    • limite : cela limite le nombre d'événements renvoyés. Nous le définirons sur 50 pour que notre script s'exécute un peu plus rapidement, mais vous pouvez laisser ce paramètre pour obtenir tous les événements pour la date spécifiée

    Le code nécessaire pour effectuer la requête en Python est  :

    à partir de datetime importer datetime

    de pprint importer pprint

    uuid d'importation

    demandes d'importation

    # crée une session de requêtes avec l'en-tête d'authentification

    session = requêtes.Session()

    session.headers["X-API-Key"] = VOTRE_CLÉ_API

    # obtenir la date du jour au format aaaa-mm-jj

    date = datetime.utcnow().strftime("%Y-%m-%d")

    # effectuer la demande

    //sports-api./pub/v2/odds/fixtures"

    réponse = session.get(url,: "football", "date" : date, "limit" :

    # extraire et imprimer la réponse JSON

    json()

    Pour exécuter ce code  :

  • py
  • Dans un terminal, exécutez  :
  • Vous devriez voir quelque chose comme :

    [{'category'  :: 'brasil', 'name'  :,

    'événements' :[{'absent'  :: 'INT',

    'clé'  : 'c24fe-internacional-rs',

    'nom'  : 'SC Internacional RS',

    " nationalité "  : " BRA ",

    'researchId'  :,

    'heure limite'  : '2021-11-25T00 :30 :00Z',

    'home'  :: 'FLU',

    'clé' : 'c24f2-fluminense-rj',

    'nom'  : 'Fluminense FC RJ',

    " nationalité "  : " BRA ",

    'researchId'  :,

    " identifiant "  : 9900369,

    'clé'  : 'c24f2-fluminense-rj-v-c24fe-internacional-rs',

    'nom'  : 'Fluminense FC RJ V SC Internacional RS',

    'statut'  :,

    : 'CAP',

    'clé' : 'c24d2-atletico-paranaense',

    'nom'  : 'CA Paranaense PR',

    " nationalité "  : " BRA ",

    'researchId'  :,

    Pour ce faire,:

    événements = []

    pour la compétition dans response_data["competitions"] :

    nom_compétition = compétition["category"]["name"] + " - " + compétition["name"]

    pour événement en compétition["events"] :

    événements.

    "id" : événement["id"],

    "nom" : événement["name"],

    "concurrence" :,

    pprint(événements)

    Maintenant.:

    py[{'compétition' : 'Brésil - Brasileiro Serie A',

    " identifiant "  : 9900369,

    'nom'  :,

    'Brésil - Brasileiro Serie A',

    " identifiant "  : 9794691,

    'nom'  :,

    'États-Unis - Major League Soccer',

    " identifiant "  : 10061529,

    'nom'  :,

    'Mexique - Primera Division, Apertura',

    " identifiant "  : 10074678,

    'nom'  :,

    Récupérer les cotes

    L'étape suivante consiste à obtenir les cotes pour les événements./v2/odds/events/. La documentation révèle que le seul paramètre requis est l'identifiant de l'événement qui se trouve dans l'URL.:

    sélections = []

    pour l'événement dans les événements :

    //sports-api./pub/v2/odds/events/{event['id']}"

    réponse = session.get(url,: "soccer.

    json()

    get("marchés",

    get("football.

    get("sous-marchés",

    get("période=ft",

    get("sélections", [])

    selections.

    événement["id"],

    "événement" : événement["name"],

    "concours" : événement["competition"],

    "home" : réponse_données["home"]["name"],

    "loin" : response_data["away"]["name"],

    "résultat" : event_selection["outcome"],

    "prix" : event_selection["price"],

    "statut" : event_selection["status"],

    pprint(sélections)

    py[{'compétition' : 'Brésil - Brasileiro Serie A',

    " événement "  : " Fluminense FC RJ V SC Internacional RS ",

    9900369,

    'domicile'  : 'Fluminense FC RJ',

    'à l'extérieur'  : 'SC Internacional RS',

    " résultat "  : " à la maison ",

    " prix "  : 1.483,

    'statut'  :,

    'Brésil - Brasileiro Serie A',

    " événement "  : " Fluminense FC RJ V SC Internacional RS ",

    9900369,

    'domicile'  : 'Fluminense FC RJ',

    'à l'extérieur'  : 'SC Internacional RS',

    " résultat "  : " tirer au sort ",

    'prix' : 3,85,

    'statut'  :,

    'Brésil - Brasileiro Serie A',

    " événement "  : " Fluminense FC RJ V SC Internacional RS ",

    9900369,

    'domicile'  : 'Fluminense FC RJ',

    'à l'extérieur'  : 'SC Internacional RS',

    " résultat "  : " à l'extérieur ",

    " prix "  : 8,17,

    'statut'  :,

    Placer des paris

    Notre stratégie de pari consiste à parier sur n'importe quelle équipe avec des cotes supérieures à 10. Le prochain bloc de code filtrera les sélections avec des cotes inférieures, ainsi que les sélections pour le résultat du tirage et les sélections sur lesquelles il est impossible de parier.

    long_odds_selections =[

    s pour s dans les sélections

    si s["outcome"] ! = "dessiner" et s["price"] > 10 et s["status"] == "SELECTION_ENABLED"

    ]pprint(long_odds_selections)

    py[{'compétition'  : "International - Éliminatoires du Championnat du Monde Féminin de la FIFA (UEFA)",

    'événement'  : 'Bosnie-Herzégovine V Danemark',

    10011950,

    " accueil "  : " Bosnie-Herzégovine ",

    'à l'extérieur'  : 'Danemark',

    " résultat "  : " à la maison ",

    " prix "  : 24,96,

    'statut'  :,

    "International - Éliminatoires du Championnat du Monde Féminin de la FIFA (UEFA)",

    'événement'  : 'Macédoine du Nord V Irlande du Nord',

     9552743,

    'home' : 'Macédoine du Nord',

    " à l'extérieur "  : " Irlande du Nord ",

    " résultat "  : " à la maison ",

    " prix "  : 16,77,

    'statut'  :,

    'Uruguay - Division Segunda',

    " événement "  : " Central Espanol FC V Rampla Juniors ",

    10069877,

    'domicile'  : 'Central Espanol FC',

    'à l'extérieur'  : 'Rampla Juniors',

    " résultat "  : " à l'extérieur ",

    " prix "  : 72 942,

    'statut'  :,

    Pour placer les paris,/v3/bets/place qui nécessite les paramètres suivants  :

    • ID de l'événement:
    • URL du marché. Dans notre cas, ce sera soccer./home ou soccer./away
    • le prix. S'il est supérieur au prix actuel de la sélection, le pari sera rejeté
    • devise :/v1/account/currencies
    • pieu :
    • Pièce d'identité : Un identifiant généré de manière aléatoire qui peut être utilisé pour garantir qu'une application ne place pas par erreur le même pari plusieurs fois. Il peut être généré avec le module uuid

    Notez que tous les paramètres doivent être fournis sous forme de chaînes. Notre code pour placer les paris ressemble à :

    "eventId" : str(sélection["event_id"]),

    "marketUrl" : "soccer./" + sélection["outcome"],

    "devise" :,

    "prix" : str(sélection["price"]),

    "mise" : "0,5",

    "referenceId" : str(uuid.uuid4()),

    //sports-api./pub/v3/bets/place"

    post(url.json()

    imprimer(

    format(

    **sélection,

    équipe=sélection[sélection[selection["outcome"]],

    bet_status=response_data["status"],

    96 en International - Qualifications CM Féminines de la FIFA (UEFA) - Bosnie-Herzégovine V Danemark  : ACCEPTÉ

    77 in International - Qualifications CM Féminin de la FIFA (UEFA) - Macédoine du Nord V Irlande du Nord : ACCEPTÉ

    942 en Uruguay - Segunda Division - Central Espanol FC V Rampla Juniors : ACCEPTÉ

    Vérification des résultats des paris

    py avec le code suivant  :

    demandes d'importation

    session = requêtes.Session()

    session.headers["X-API-Key"] = VOTRE_CLÉ_API

    //sports-api./pub/v3/bets/history"

    get(url).json()

    ::::

    pour parier dans response_data["bets"] :

    imprimer(

    ::::

    ÉVÉNEMENTIEL MARCHÉ ENJEU PRIX STATUT BÉNÉFICE

    Central Espanol FC V Rampla Juniors soccer./away 0.5 72.942 ACCEPTED 0

    Macédoine du Nord V Irlande du Nord soccer./home 0.5 16.77 ACCEPTED 0

    Bosnie-Herzégovine V Danemark soccer./home 0.5 24.96 ACCEPTED 0

    Construire votre propre bot

    Le code complet de l'exemple ci-dessus peut être téléchargé ici. Cet exemple utilise une stratégie de pari très naïve qui est peu susceptible d'être rentable, mais il démontre tous les appels d'API nécessaires pour créer un bot de pari plus sophistiqué avec une stratégie plus intelligente.

    Étant donné que ce point de terminaison révèle les résultats des paris précédents, il pourrait également être utilisé pour créer un bot de paris qui apprend et fait évoluer sa stratégie au fil du temps. Avec un peu de créativité, vous pourrez peut-être trouver une formule gagnante pour battre le marché. !

    Je suis un parieur sportif avec un profit de 4%.

    Je vis sur crypto depuis 2013.

    Plus de BitEdge