S P O R T A P I

Where to start?

Welcome to our API system! By following these simple steps, you will quickly get started with our API and integrate sports data into your system.

  1. Get your API key to integrate the data
    Contact technical support, and you will be provided with a unique API key and domain address for subsequent requests. This key is necessary for authorizing all requests to our API.

  2. Familiarize yourself with the documentation
    Once you have received the key, you can proceed to the API documentation and explore the available methods, request examples, and responses. This will help you understand how to integrate sports data into your system.

  3. Make your first request
    Using your API key, make your first request to the API. The documentation section contains examples of requests and responses for various types of sports data.

  4. Start integration
    After successfully completing the test request, you can begin integrating the data into your project. Our API provides flexible tools for working with different types of sports and events.

  5. Get support
    If you have any questions, you can always contact our technical support or use the FAQ section to resolve common issues.

API Methods

The API for the sports line offers a limited set of methods that allow you to retrieve various sports data. Below is a list of all available methods, each returning a specific set of information for performing certain tasks. You can select the required method depending on your needs. In addition to each method, parameters can be used to conveniently filter and customize the retrieved data. A detailed description of the parameters is provided below.

  • menu The method returns the structure of the sports event menu, including sports types, countries, and championships.
  • events The method returns a list of matches with a brief set of odds available for betting.
  • event The method returns detailed information about a specific sports event by its identifier and a complete set of bets, odds, and outcomes for that match.
  • topmatches The method returns a list of top matches that are most popular among users or have high betting activity.
  • search The method allows searching for sports events by keywords such as team names.

API Parameters

To work with our API, you can use various parameters that will help you customize requests and retrieve accurate data that meets your requirements. Parameters allow you to filter data by sport, country, tournaments, and adjust the format of returned events. Below is a list of available parameters and their descriptions to help you flexibly manage requests to our API.

  • API-URL-LINE The URL of the host from which sports line data is requested. In other words, this is the URL where you will send requests to retrieve sports data.
  • API-KEY Personal access key PersonalKey, which defines your service package. This key is sent in the request headers headers with each request.
  • METHODS-API Names of the methods for retrieving data. All methods are described in the previous section.
  • TYPE The type of sports line data. It can take values of live (for real-time data) or line (for pre-match line data).
  • LANG The language in which sports line data will be provided. Supported languages depend on your package.
  • SPORT-ID The identifier of the sport.
  • COUNTRY-ID The identifier of the country.
  • CHAMPIONSHIP-ID The identifier of the tournament.
  • MATCH-ID The identifier of the match.
  • KG The way events and odds are displayed. Two options are available: sub - matches are grouped by championships; list - matches are displayed as a regular list without grouping.

In a specific match, grouping is applied not to the matches but to the outcomes and bets. Thus, you get a list of odds that can be displayed either as a simple list or conveniently grouped by logical outcome categories.

Example request

This section provides an example of a request to our API for obtaining sports data. The example demonstrates how to use one of the API methods with your unique parameters, such as the API key. This will help you better understand how to correctly format requests and retrieve the necessary information.

Example request for retrieving sports events

The data in the example is fictitious. Replace it with real data that you received from technical support.

GET

Schema : [API-URL-LINE] /v1/ [METHODS-API] / [TYPE] / [LANG]

Request: HTTPS://example-domain-demo.com/v1/menu/live/en

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


import requests
url = "https://example-domain-demo.com/v1/menu/live/en"
payload = {}
headers = {
'Package': '0145-3455-1298-2978-1100'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://example-domain-demo.com/v1/menu/live/en',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Package: 0145-3455-1298-2978-1100'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
 
const myHeaders = new Headers();
myHeaders.append("Package", "0145-3455-1298-2978-1100");

const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};

fetch("https://example-domain-demo.com/v1/menu/live/en", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
 
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://example-domain-demo.com/v1/menu/live/en")
.method("GET", body)
.addHeader("Package", "0145-3455-1298-2978-1100")
.build();
Response response = client.newCall(request).execute();

Try in Postman

To simplify the integration of our API, we have prepared a collection of requests for Postman. You can download the file, import it into Postman, and start working with our API right away without the need to manually configure the requests.

Example of requesting sports data via postman

Steps to start in Postman:

  1. Download the Postman collection:
    Download the collection for Postman

  2. Import the file into Postman:

    • Open Postman.
    • In the top menu, select File -> Import.
    • Upload the downloaded file.
  3. Configure variables:
    After importing the collection, you will need to add your API keys and other parameters. This can be done in the Variables section of the collection or added manually to each request.

  4. Run the requests:
    You can now start sending requests and receiving data from our API right away.

Retrieving sports, countries, and championships

You can retrieve data about sports, countries, and championships with a single request. To do this, simply change the data type in the request, depending on whether you need live matches or upcoming events.

The response will provide all the necessary information:

  • Sport ID and its name.
  • Country ID and its name.
  • Championship ID and its name.

All data is grouped into a convenient object that can be easily integrated into your system, allowing you to display the information in any format.

To get this data, you need to send a request to the menu method and specify the following parameters:

  • Match type: indicate whether you need data on live matches or upcoming events.
  • Data language: choose the language in which you want to receive the data.

These parameters are required for submission. Don't forget to also pass your API key in the request header (Headers).

Example request:

Send this request to get the menu, which includes all the necessary data to then retrieve matches and outcomes:

Line requests are recommended to be sent at intervals of at least 40 seconds. Live requests — at least 20 seconds. The data isn't updated very often, so this interval is enough to get up-to-date information.

GET

Schema : [API-URL-LINE] /v1/ [METHODS-API] / [TYPE] / [LANG]

Request: HTTPS://example-domain-demo.com/v1/menu/live/en

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

Example response:


{
    "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
                    }
                ]
                }
            ]
        }
    ]
}

Field description

  • id A unique identifier for the item (e.g., sport, country, or championship).
  • name The name of the item (e.g., Football for a sport, Europe for a country, or UEFA Champions League for a championship).
  • counter The number of available events or matches for this item.
  • sub An array containing nested items such as countries or championships for the selected sport. This allows you to get a hierarchy of data — from the sport to specific tournaments.

Example of structure parsing

In this example:

  • Football — a sport with ID 1 and 126 available events.
  • Within the sport are countries such as Europe (ID 12), which contains 10 matches.
  • Within the country Europe are several championships, such as the UEFA Champions League (ID 118587), where 3 matches are available.

List of matches

You can retrieve data about a list of matches. It is important to note that you must specify the Sport ID — it's not possible to get all matches for all sports. You can also choose whether you need live matches or upcoming events, and specify additional parameters for filtering.

The response will provide all the necessary information about the matches for the sport you specified.

All data is grouped into a convenient object that can be easily integrated into your system and allows you to display the information in any format.

To get the list of matches, you need to send a request to the events method and specify the following parameters:

  • Sport ID: a required parameter.
  • Championship ID: if you are interested in matches from a specific championship. If you need all matches, specify "0".
  • Response grouping: specify how the data should be grouped.
  • Match type: choose whether you need data for live matches or upcoming events.
  • Data language: choose the language in which you want to receive the data.

These parameters are required for submission. Don't forget to also pass your API key in the request header (Headers).

Example request:

Send this request to get the menu, which includes all the necessary data to then retrieve matches and outcomes:

Line requests are recommended to be sent at intervals of at least 20 seconds. Live requests — at least 5 seconds. This interval will be sufficient for up-to-date information.

GET

Schema : [API-URL-LINE] /v1/ events / [SPORT-ID] / [CHAMPIONSHIP-ID] / [KG] / 50 / [TYPE] / [LANG]

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

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

Example response:

The response contains data about the matches, including information about teams, tournaments, and odds. The key fields that are returned in the response object are described below. Note the difference in the data returned depending on the type [KG].


 {
    "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
                }
            ]
        }
    ]
}
 

 {
    "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
                        }
                    ]
                }
			]
		}
	]
}
 

Description of fields:

  • status Request status. If 1, the request was successfully executed.
  • sgame_id Unique identifier of the match in the system.
  • stat_id Identifier of the statistics for the match.
  • game_id Internal match identifier.
  • game_mid Identifier of the sub-match.
  • game_dop_name Additional information about the match (for example, "Extra-Time").
  • game_start Match start time in Unix Timestamp format.
  • game_oc_counter Number of available markets for betting on this match.
  • country_id Identifier of the country where the match is held.
  • country_name Name of the country.
  • tournament_id Identifier of the tournament.
  • tournament_name Name of the tournament.
  • opp_1_name Name of the first team.
  • opp_2_name Name of the second team.
  • opp_1_id Identifier of the first team.
  • opp_2_id Identifier of the second team.
  • opp_1_icon Icon of the first team.
  • opp_2_icon Icon of the second team.
  • sport_name Name of the sport (for example, "Football").
  • sport_id Identifier of the sport.
  • score_full Full match score.
  • score_extra Game score in tennis.
  • score_period Score for a specific period.
  • period_name Name of the match period (for example, "2 Half").
  • timer Timer showing the current match time in seconds.
  • pitch ID of the player serving (for sports with serving players).
  • finale Boolean value indicating if the match is finished.

Betting market information:

  • oc_group_name Name of the market group (for example, "Double Chance").
  • oc_name Name of the specific outcome (for example, "1X").
  • oc_rate Odds for this outcome.
  • oc_pointer Unique identifier of the outcome.
  • oc_block Boolean value indicating if the outcome is blocked (if true — the outcome is blocked and not available for betting).

Specific match

The method for obtaining detailed information about a specific match. This method allows you to request information about a specific match, including teams, results, the current state of the match, and available bets. It is used to obtain up-to-date data on a specific game.

Example request:

Line requests are recommended to be sent at intervals of at least 20 seconds. Live requests — at least 5 seconds. This interval will be sufficient for up-to-date information.

GET

Schema : [API-URL-LINE] /v1/ event / [GAME-ID] / [KG] / [TYPE] / [LANG]

Request: HTTPS://example-domain-demo.com/v1/event/45566556/sub/live/en

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

Example response:

The response contains data about one specific match, including information on all available outcomes and odds for this match. In a specific match, you can get absolutely all the outcomes and odds for the match. Below are the key fields that are returned in the response object. Note the difference in data returned depending on the type [KG]. These now affect the grouping of bets and odds for betting.

"The response includes only those fields that differ from the match list request. Here is their description:

  • stat_list An array containing live statistics, such as corners, attacks, cards, dangerous attacks, and other indicators.

  • sub_games A list of identifiers for additional betting markets. For example, you can request odds and outcomes only for the second half or corner kicks.

  • game_oc_list This list may contain either all outcomes and odds in one array or be grouped by categories for easier integration into your system."


{
    "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"
            }
        ]
    }
}

Top matches

Send this request to get top matches. The request returns a list of all top matches across all sports.

Example request:

Line requests are recommended to be sent at intervals of at least 20 seconds. Live requests — at least 5 seconds. This interval will be sufficient for up-to-date information.

GET

Schema : [API-URL-LINE] /v1/ topmatches / [TYPE] / [LANG]

Request: HTTPS://example-domain-demo.com/v1/topmatches/live/en

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

Example request:

GET

Schema : [API-URL-LINE] /v1/ search / [TYPE] / [LANG] / [COMAND-NAME]

Request: HTTPS://example-domain-demo.com/v1/search/live/en/realmadrid

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

Example response:


{
    "status": 1,
    "page": "/v1/events",
    "body": [
        {
            "game_id": 563038643,
            "dtype": "live",
            "opp1": "Real Madrid (Kimmich_8143)",
            "opp2": "Bayern Munich (Mata_8254)",
            "champname": "FIFA 24. Cyber League",
            "sportname": "Football",
            "gamestart": 1707871900
        },
        {
            "game_id": 563043348,
            "dtype": "live",
            "opp1": "Lille OSC U19",
            "opp2": "Real Madrid U19",
            "champname": "UEFA Youth League",
            "sportname": "Football",
            "gamestart": 1707874000
        },
        {
            "game_id": 563046811,
            "dtype": "live",
            "opp1": "Real Madrid (Mevis)",
            "opp2": "Chelsea (Mick)",
            "champname": "FIFA 23. Volta daily league",
            "sportname": "Football",
            "gamestart": 1707874485
        },
        {
            "game_id": 563043227,
            "dtype": "live",
            "opp1": "Real Madrid",
            "opp2": "Bayern",
            "champname": "FIFA18. Penalty",
            "sportname": "FIFA",
            "gamestart": 1707874900
        }
	]
}

Integration with our sports line API provides access to up-to-date information on sports, matches, tournaments, and odds. We strive to make the integration process as simple and convenient as possible by providing detailed documentation and request examples. If you have any questions or need help, our support team is always ready to assist you. Use the capabilities of the API to create effective solutions for your business.

Choose
Other integration

Want to integrate other products via API?

We offer other sections of documentation for integrating sports solutions. Check out the list of solutions you can integrate into your system right now:

Sports Line API

Check the prices for sports line services to get data for all matches and odds via API

Match Results API

Need match results? Click the title to go to the desired section.

Outcomes and Coupons Results

We offer a ready-made solution that provides statuses for calculated sports bets.

shape