SportApi
Documentation API

API de ligne sportive Documentation

Tout ce dont vous avez besoin pour intégrer la ligne sportive : authentification, méthodes, paramètres, exemples de code prêts à l'emploi et réponses JSON.

GET /v1/start json
{
  "ok": true,
  "package": "STANDARD",
  "limits": { "requests": 1000000, "rps": 40 },
  "sports": 214,
  "languages": ["en", "ru", "ua", "es"]
}

Par où commencer ?

Bienvenue dans notre système API ! En suivant ces étapes simples, vous démarrerez rapidement avec notre API et intégrerez les données sportives dans votre système.

  1. Obtenez votre clé API pour intégrer les données
    Contactez le support technique pour obtenir une clé API unique et l'adresse du domaine pour vos requêtes. Cette clé est nécessaire pour autoriser toutes les requêtes vers notre API.

  2. Familiarisez-vous avec la documentation
    Une fois la clé reçue, vous pouvez consulter la documentation API et explorer les méthodes disponibles, les exemples de requêtes et de réponses. Cela vous aidera à comprendre comment intégrer les données sportives dans votre système.

  3. Effectuez votre première requête
    À l'aide de votre clé API, effectuez votre première requête. La section de documentation contient des exemples de requêtes et de réponses pour différents types de données sportives.

  4. Commencez l'intégration
    Après avoir réussi la requête de test, vous pouvez commencer à intégrer les données dans votre projet. Notre API offre des outils flexibles pour travailler avec différents types de sports et d'événements.

  5. Obtenez du support
    Si vous avez des questions, vous pouvez toujours contacter notre support technique ou consulter la section FAQ pour résoudre les problèmes courants.

Méthodes API

L'API de ligne sportive propose un ensemble limité de méthodes qui vous permettent de récupérer diverses données sportives. Vous trouverez ci-dessous la liste de toutes les méthodes disponibles, chacune renvoyant un ensemble spécifique d'informations pour effectuer certaines tâches. Vous pouvez sélectionner la méthode requise en fonction de vos besoins. En plus de chaque méthode, des paramètres peuvent être utilisés pour filtrer et personnaliser facilement les données récupérées. Une description détaillée des paramètres est fournie ci-dessous.

  • menu La méthode renvoie la structure du menu des événements sportifs, y compris les types de sports, les pays et les championnats.
  • events La méthode renvoie une liste de matchs avec un ensemble succinct de cotes disponibles pour les paris.
  • event La méthode renvoie des informations détaillées sur un événement sportif spécifique par son identifiant, ainsi qu'un ensemble complet de paris, cotes et résultats pour ce match.
  • topmatches La méthode renvoie une liste des matchs phares qui sont les plus populaires parmi les utilisateurs ou qui ont une forte activité de paris.
  • search La méthode permet de rechercher des événements sportifs par mots-clés, tels que les noms d'équipes.

Paramètres API

Pour travailler avec notre API, vous pouvez utiliser différents paramètres qui vous aideront à personnaliser les requêtes et à récupérer des données précises répondant à vos besoins. Les paramètres permettent de filtrer les données par sport, pays, tournois et d'ajuster le format des événements renvoyés. Vous trouverez ci-dessous la liste des paramètres disponibles et leurs descriptions pour vous aider à gérer de manière flexible les requêtes adressées à notre API.

  • API-URL-LINE L'URL de l'hôte auprès duquel les données de ligne sportive sont demandées. En d'autres termes, il s'agit de l'URL à laquelle vous enverrez les requêtes pour récupérer les données sportives.
  • API-KEY Clé d'accès personnelle PersonalKey, qui définit votre forfait. Cette clé est envoyée dans les en-têtes de requête headers à chaque requête.
  • METHODS-API Noms des méthodes de récupération des données. Toutes les méthodes sont décrites dans la section précédente.
  • TYPE Le type de données de ligne sportive. Il peut prendre les valeurs live (pour les données en temps réel) ou line (pour les données de ligne d'avant-match).
  • LANG La langue dans laquelle les données seront fournies. Les langues prises en charge dépendent de votre forfait.
  • SPORT-ID L'identifiant du sport.
  • COUNTRY-ID L'identifiant du pays.
  • CHAMPIONSHIP-ID L'identifiant du tournoi.
  • MATCH-ID L'identifiant du match.
  • KG Le mode d'affichage des événements et des cotes. Deux options sont disponibles : sub - les matchs sont regroupés par championnat ; list - les matchs sont affichés sous forme de liste standard sans regroupement.

Remarque : Pour un match spécifique, le regroupement s'applique non pas aux matchs mais aux résultats et aux paris. Ainsi, vous obtenez une liste de cotes qui peuvent être affichées soit sous forme de liste simple, soit regroupées par catégories logiques de résultats.

Exemple de requête

Cette section fournit un exemple de requête à notre API pour obtenir des données sportives. L'exemple montre comment utiliser l'une des méthodes de l'API avec vos paramètres uniques, tels que la clé API. Cela vous aidera à mieux comprendre comment formater correctement les requêtes et récupérer les informations nécessaires.

Exemple de requête pour récupérer des événements sportifs

Les données de l'exemple sont fictives. Remplacez-les par les données réelles reçues du support technique.

GET

Schéma : [API-URL-LINE] /v1/ [METHODS-API] / [TYPE] / [LANG]

Requête : HTTPS://example-domain-demo.com/v1/menu/live/en

Headers: 'Package': '0145-3455-1298-2978-1100'

GET /v1/menu/live/en python
import requests

url = "https://api.sportapi.net/v1/events/21/101/prematch/en"
headers = {"Package": "YOUR_API_KEY"}

response = requests.get(url, headers=headers)
print(response.json())

Essayer dans Postman

Pour simplifier l'intégration de notre API, nous avons préparé une collection de requêtes pour Postman. Vous pouvez télécharger le fichier, l'importer dans Postman et commencer à travailler immédiatement avec notre API sans avoir à configurer manuellement les requêtes.

Étapes pour démarrer dans Postman :

  1. Téléchargez la collection Postman et importez-la dans Postman.

  2. Importez le fichier dans Postman :

    • Ouvrez Postman.
    • Dans le menu supérieur, sélectionnez File -> Import.
    • Téléchargez le fichier téléchargé.
  3. Configurez les variables :
    Après avoir importé la collection, vous devrez ajouter vos clés API et autres paramètres. Cela peut être fait dans la section Variables de la collection ou ajouté manuellement à chaque requête.

  4. Exécutez les requêtes :
    Vous pouvez maintenant envoyer des requêtes et recevoir des données de notre API immédiatement.

Example of requesting sports data via Postman

Récupération des sports, pays et championnats

Vous pouvez récupérer des données sur les sports, les pays et les championnats en une seule requête. Pour ce faire, modifiez simplement le type de données dans la requête, selon que vous avez besoin de matchs en direct ou d'événements à venir.

La réponse fournira toutes les informations nécessaires :

  • ID du sport et son nom.
  • ID du pays et son nom.
  • ID du championnat et son nom.

Toutes les données sont regroupées dans un objet pratique qui s'intègre facilement à votre système, vous permettant d'afficher les informations dans n'importe quel format.

Pour obtenir ces données, vous devez envoyer une requête à la méthode menu et spécifier les paramètres suivants :

  • Type de match : indiquez si vous avez besoin des données sur les matchs en direct ou les événements à venir.
  • Langue des données : choisissez la langue dans laquelle vous souhaitez recevoir les données.

Ces paramètres sont requis. N'oubliez pas de transmettre également votre clé API dans l'en-tête de la requête (Headers).

Exemple de requête

Envoyez cette requête pour obtenir le menu, qui comprend toutes les données nécessaires pour ensuite récupérer les matchs et les résultats :

Remarque : Il est recommandé d'envoyer les requêtes de ligne d'avant-match à des intervalles d'au moins 40 secondes, et les requêtes de live à des intervalles d'au moins 20 secondes. Les données ne sont pas mises à jour très souvent, cet intervalle est donc suffisant pour obtenir des informations à jour.

GET   Schéma : [API-URL-LINE] /v1/ [METHODS-API] / [TYPE] / [LANG]

Requête : HTTPS://example-domain-demo.com/v1/menu/live/en

Headers: 'Package': '0145-3455-1298-2978-1100'

Description des champs

  • id Un identifiant unique pour l'élément (par exemple, sport, pays ou championnat).
  • name Le nom de l'élément (par exemple, Football pour un sport, Europe pour un pays ou UEFA Champions League pour un championnat).
  • counter Le nombre d'événements ou de matchs disponibles pour cet élément.
  • sub Un tableau contenant des éléments imbriqués tels que des pays ou des championnats pour le sport sélectionné. Cela vous permet d'obtenir une hiérarchie de données – du sport aux tournois spécifiques.

Exemple d'analyse de structure

Dans cet exemple :

  • Football — un sport avec l'ID 1 et 126 événements disponibles.
  • Au sein de ce sport se trouvent des pays comme l'Europe (ID 12), qui contient 10 matchs.
  • Au sein du pays Europe se trouvent plusieurs championnats, comme l'UEFA Champions League (ID 118587), où 3 matchs sont disponibles.
GET /v1/menu/live/en json
{
    "status":1,
    "body":[
        {
            "id":1,
            "name":"Football",
            "counter":126,
            "sub":[
                {
                "id":12,
                "name":"Europe",
                "sport_id":1,
                "counter":10,
                "sub":[
                    {
                        "id":118587,
                        "name":"UEFA Champions League",
                        "sport_id":1,
                        "country_id":12,
                        "counter":3
                    },
                    {
                        "id":218103,
                        "name":"UEFA Champions League. Winner",
                        "sport_id":1,
                        "country_id":12,
                        "counter":1
                    },
                    {
                        "id":16,
                        "name":"Italy",
                        "sport_id":1,
                        "counter":1,
                        "sub":[
                            {
                            "id":6356,
                            "name":"Italy. Serie C. Group A",
                            "sport_id":1,
                            "country_id":16,
                            "counter":1
                            }
                        ]
                    }
                ]
                }
            ]
        },
        {
            "id":2,
            "name":"Tennis",
            "counter":40,
            "sub":[
                {
                "id":14,
                "name":"Portugal",
                "sport_id":2,
                "counter":1,
                "sub":[
                    {
                        "id":8031,
                        "name":"Challenger. Braga",
                        "sport_id":2,
                        "country_id":14,
                        "counter":1
                    }
                ]
                }
            ]
        }
    ]
}

Liste des matchs

Vous pouvez récupérer les données d'une liste de matchs. Il est important de noter que vous devez spécifier l'ID du sport — il n'est pas possible de récupérer tous les matchs de tous les sports. Vous pouvez également choisir si vous souhaitez des matchs en direct ou des événements à venir, et spécifier des paramètres de filtrage supplémentaires.

La réponse fournira toutes les informations nécessaires sur les matchs pour le sport spécifié.

Toutes les données sont regroupées dans un objet pratique qui s'intègre facilement à votre système et vous permet d'afficher les informations dans n'importe quel format.

Pour obtenir la liste des matchs, vous devez envoyer une requête à la méthode events et spécifier les paramètres suivants :

  • ID du sport : un paramètre obligatoire.
  • ID du championnat : si vous êtes intéressé par les matchs d'un championnat spécifique. Si vous avez besoin de tous les matchs, spécifiez "0".
  • Regroupement de la réponse : spécifiez comment les données doivent être regroupées.
  • Type de match : choisissez si vous avez besoin de données pour des matchs en direct ou des événements à venir.
  • Langue des données : choisissez la langue dans laquelle vous souhaitez recevoir les données.

Ces paramètres sont requis. N'oubliez pas de transmettre également votre clé API dans l'en-tête de la requête (Headers).

Exemple de requête

Envoyez cette requête pour obtenir le menu, qui comprend toutes les données nécessaires pour ensuite récupérer les matchs et les résultats :

Remarque : Il est recommandé d'envoyer les requêtes de ligne d'avant-match à des intervalles d'au moins 20 secondes, et les requêtes de live à des intervalles d'au moins 5 secondes. Cet intervalle sera suffisant pour obtenir des informations à jour.

GET   Schéma : [API-URL-LINE] /v1/ events / [SPORT-ID] / [CHAMPIONSHIP-ID] / [KG] / 50 / [TYPE] / [LANG]

Requête : HTTPS://example-domain-demo.com/v1/events/1/0/list/50/live/en

Headers: 'Package': '0145-3455-1298-2978-1100'

La réponse contient des données sur les matchs, y compris des informations sur les équipes, les tournois et les cotes. Les principaux champs renvoyés dans l'objet de réponse sont décrits ci-dessous. Notez la différence dans les données renvoyées selon le type [KG] (l'échantillon `json` de réponse ci-dessous montre d'abord [KG] = list, puis [KG] = sub).

Description des champs

  • status Statut de la requête. S'il vaut 1, la requête a été exécutée avec succès.
  • sgame_id Identifiant unique du match dans le système.
  • stat_id Identifiant des statistiques pour le match.
  • game_id Identifiant interne du match.
  • game_mid Identifiant du sous-match.
  • game_dop_name Informations supplémentaires sur le match (par exemple, "Extra-Time").
  • game_start Heure de début du match au format Unix Timestamp.
  • game_oc_counter Nombre de marchés de paris disponibles pour ce match.
  • country_id Identifiant du pays où se déroule le match.
  • country_name Nom du pays.
  • tournament_id Identifiant du tournoi.
  • tournament_name Nom du tournoi.
  • opp_1_name Nom de la première équipe.
  • opp_2_name Nom de la deuxième équipe.
  • opp_1_id Identifiant de la première équipe.
  • opp_2_id Identifiant de la deuxième équipe.
  • opp_1_icon Icône de la première équipe.
  • opp_2_icon Icône de la deuxième équipe.
  • sport_name Nom du sport (par exemple, "Football").
  • sport_id Identifiant du sport.
  • score_full Score complet du match.
  • score_extra Score du jeu au tennis.
  • score_period Score pour une période spécifique.
  • period_name Nom de la période du match (par exemple, "2 Half").
  • timer Chronomètre indiquant le temps de jeu actuel en secondes.
  • pitch ID du joueur au service (pour les sports concernés).
  • finale Valeur booléenne indiquant si le match est terminé.

Informations sur les marchés de paris

  • oc_group_name Nom du groupe de marché (par exemple, "Double Chance").
  • oc_name Nom du résultat spécifique (par exemple, "1X").
  • oc_rate Cote pour ce résultat.
  • oc_pointer Identifiant unique du résultat.
  • oc_block Valeur booléenne indiquant si le résultat est bloqué (si true — le résultat est bloqué et non disponible pour les paris).
GET /v1/events/1/0/list/50/live/en json
// [KG] = list
{
    "status": 1,
    "body": [
        {
            "sgame_id": "66f8a2d60d8c0bfbf1af3f93",
            "stat_id": "66c914530d8c0bfbf15f5682",
            "game_id": 562898620,
            "game_mid": 562898620,
            "game_dop_name": "Extra-Time",
            "game_start": 1707807400,
            "game_oc_counter": 38,
            "country_id": 231,
            "country_name": "England",
            "tournament_id": 108319,
            "tournament_name": "England. FA Cup",
            "opp_1_name": "King's Lynn Town",
            "opp_2_name": "Worksop Town",
            "opp_1_id": 40547,
            "opp_2_id": 40549,
            "opp_1_icon": "400098.png",
            "opp_2_icon": "1201c9f.png",
            "sport_name": "Football",
            "sport_id": 1,
            "score_full": "0:0",
            "score_extra": "0:0",
            "score_period": "0:0",
            "period_name": "3 Half",
            "timer": 6511,
            "finale": false,
            "pitch": null,
            "game_oc_list": [
                {
                    "oc_group_name": "Double Chance",
                    "oc_name": "1X",
                    "oc_rate": 1.136,
                    "oc_pointer": "562898620|8|4|0",
                    "oc_block": false
                }
            ]
        }
    ]
}

// [KG] = sub
{
    "status": 1,
    "body": [
        {
            "tournament_id": 8147,
            "tournament_name": "Thailand. League Cup",
            "events_list": [
                {
                    "sgame_id": 66f8a2d60d8c0bfbf1af3f93,
                    "stat_id": 3788a2d60d8c0bfbf1af3f93,
                    "game_id": 562987092,
                    "game_mid": 562987092,
                    "game_dop_name": "",
                    "game_start": 1707856000,
                    "game_oc_counter": 183,
                    "country_id": 180,
                    "country_name": "Thailand",
                    "tournament_id": 8147,
                    "tournament_name": "Thailand. League Cup",
                    "opp_1_name": "ACDC",
                    "opp_2_name": "Pattaya United",
                    "opp_1_id": 505873,
                    "opp_2_id": 4978,
                    "opp_1_icon": "729aadb95ad1df.png",
                    "opp_2_icon": "4978.png",
                    "sport_name": "Football",
                    "sport_id": 1,
                    "score_full": "1:1",
                    "score_extra": "0:0",
                    "score_period": "1:1;0:0",
                    "period_name": "2 Half",
                    "timer": 4451,
                    "pitch": null,
                    "finale": false,
                    "game_oc_list": [
                        {
                            "oc_group_name": "1X2",
                            "oc_name": "W1",
                            "oc_rate": 8.19,
                            "oc_pointer": "562987092|1|1|0",
                            "oc_block": false
                        },
                        {
                            "oc_group_name": "1X2",
                            "oc_name": "X",
                            "oc_rate": 1.82,
                            "oc_pointer": "562987092|1|2|0",
                            "oc_block": false
                        }
                    ]
                }
            ]
        }
    ]
}

Match spécifique

La méthode permettant d'obtenir des informations détaillées sur un match spécifique. Cette méthode vous permet de demander des informations sur un match particulier, y compris les équipes, les résultats, l'état actuel du match et les paris disponibles. Elle est utilisée pour obtenir des données à jour sur une partie spécifique.

Exemple de requête

Remarque : Il est recommandé d'envoyer les requêtes de ligne d'avant-match à des intervalles d'au moins 20 secondes, et les requêtes de live à des intervalles d'au moins 5 secondes. Cet intervalle sera suffisant pour obtenir des informations à jour.

GET   Schéma : [API-URL-LINE] /v1/ event / [GAME-ID] / [KG] / [TYPE] / [LANG]

Requête : HTTPS://example-domain-demo.com/v1/event/45566556/sub/live/en

Headers: 'Package': '0145-3455-1298-2978-1100'

La réponse contient des données sur un match spécifique, y compris les informations sur tous les résultats et cotes disponibles pour ce match. Pour un match spécifique, vous pouvez obtenir absolument tous les résultats et cotes. Les champs clés renvoyés dans l'objet de réponse sont décrits ci-dessous. Notez la différence dans les données renvoyées selon le type [KG]. Ces derniers affectent désormais le regroupement des paris et des cotes.

La réponse inclut uniquement les champs qui diffèrent de la requête de liste des matchs. En voici la description :

  • stat_list Un tableau contenant des statistiques en direct, telles que les corners, les attaques, les cartons, les attaques dangereuses et d'autres indicateurs.

  • sub_games Une liste d'identifiants pour les marchés de paris supplémentaires. Par exemple, vous pouvez demander les cotes et les résultats uniquement pour la deuxième mi-temps ou pour les corners.

  • game_oc_list Cette liste peut contenir tous les résultats et cotes dans un seul tableau, ou être regroupée par catégories pour faciliter l'intégration dans votre système.

GET /v1/event/45566556/sub/live/en json
{
    "status": 1,
    "body": {
        "game_oc_list": [
            {
                "group_id": 1,
                "group_name": "1X2",
                "columns": 3,
                "oc_list": [
                    {
                        "oc_group_name": "1X2",
                        "oc_name": "W1",
                        "oc_rate": 1.245,
                        "oc_size": 0,
                        "oc_pointer": "563034215|1|1|0",
                        "oc_block": false
                    },
                    {
                        "oc_group_name": "1X2",
                        "oc_name": "X",
                        "oc_rate": 5.48,
                        "oc_size": 0,
                        "oc_pointer": "563034215|1|2|0",
                        "oc_block": false
                    },
                    {
                        "oc_group_name": "1X2",
                        "oc_name": "W2",
                        "oc_rate": 7.97,
                        "oc_size": 0,
                        "oc_pointer": "563034215|1|3|0",
                        "oc_block": false
                    }
                ]
            },
            {
                "group_id": 2,
                "group_name": "Handicap",
                "columns": 2,
                "oc_list": [
                    {
                        "oc_group_name": "Handicap",
                        "oc_name": "1 (-1.5)",
                        "oc_rate": 1.904,
                        "oc_size": -1.5,
                        "oc_pointer": "563034215|2|7|-1.5",
                        "oc_block": false
                    },
                    {
                        "oc_group_name": "Handicap",
                        "oc_name": "1 (0)",
                        "oc_rate": 1.06,
                        "oc_size": 0,
                        "oc_pointer": "563034215|2|7|0",
                        "oc_block": false
                    },
                    {
                        "oc_group_name": "Handicap",
                        "oc_name": "2 (0)",
                        "oc_rate": 6.02,
                        "oc_size": 0,
                        "oc_pointer": "563034215|2|8|0",
                        "oc_block": false
                    },
                    {
                        "oc_group_name": "Handicap",
                        "oc_name": "2 (+1.5)",
                        "oc_rate": 1.76,
                        "oc_size": 1.5,
                        "oc_pointer": "563034215|2|8|1.5",
                        "oc_block": false
                    }
                ]
            }
        ],
        "stat_list": [
            {
                "id": 45,
                "name": "Attacks",
                "opp1": "22",
                "opp2": "28"
            },
            {
                "id": 58,
                "name": "Dangerous attacks",
                "opp1": "13",
                "opp2": "25"
            },
            {
                "id": 29,
                "name": "Possession %",
                "opp1": "45",
                "opp2": "55"
            },
            {
                "id": 59,
                "name": "Shots on target",
                "opp1": "3",
                "opp2": "2"
            },
            {
                "id": 60,
                "name": "Shots off target",
                "opp1": "2",
                "opp2": "2"
            },
            {
                "id": 26,
                "name": "Yellow cards",
                "opp1": "0",
                "opp2": "0"
            },
            {
                "id": 70,
                "name": "Corner",
                "opp1": "0",
                "opp2": "3"
            },
            {
                "id": 71,
                "name": "Red card",
                "opp1": "0",
                "opp2": "0"
            },
            {
                "id": 72,
                "name": "Penalty",
                "opp1": "0",
                "opp2": "0"
            }
        ],
        "sub_games": [
            {
                "game_id": 563034216,
                "game_num": 48560,
                "game_name": "1st half"
            },
            {
                "game_id": 563034217,
                "game_num": 48561,
                "game_name": "2nd half"
            },
            {
                "game_id": 563034286,
                "game_num": 42676,
                "game_name": "Result + Total"
            }
        ]
    }
}

Matchs phares

Envoyez cette requête pour obtenir les matchs phares. La requête renvoie une liste de tous les matchs phares pour tous les sports.

Exemple de requête

Remarque : Il est recommandé d'envoyer les requêtes de ligne d'avant-match à des intervalles d'au moins 20 secondes, et les requêtes de live à des intervalles d'au moins 5 secondes. Cet intervalle sera suffisant pour obtenir des informations à jour.

GET   Schéma : [API-URL-LINE] /v1/ topmatches / [TYPE] / [LANG]

Requête : HTTPS://example-domain-demo.com/v1/topmatches/live/en

Headers: 'Package': '0145-3455-1298-2978-1100'

Choose

Vous souhaitez intégrer d'autres produits via l'API ?