SportAPI Documentation
EN
S Product documentationSport Line API
v1
Service & pricing ↗ Get access ↗
Sport Line API / EVENT — specific match

event Method — Specific Match

Purpose

The event method returns detailed data for one match by its game_id.

Unlike events, which provides a short list of the main markets and best odds for each match, event returns the complete available list of markets and selections for the selected match.

The method is also used to:

  • open a specific match page;
  • regularly update an open Live match;
  • retrieve the main current Live metrics from stat_list;
  • retrieve the submatch list;
  • request the complete odds list for a selected submatch;
  • check video and Live 3D Tracker availability.

Every JSON field is documented in the Sport Line API Field Reference.

Request

GET https://YOUR_API_DOMAIN/v1/event/{gameId}/group/{type}/{lang}

Send the API key in the HTTP header:

Package: YOUR_API_KEY

Path Parameters

ParameterTypeRequiredDescription
gameIdnumberyesMatch or submatch ID obtained from events or sub_games
groupstringyesThe only format supported by event. Groups odds into markets and nested selection columns
typestringyesSports line type: live or line
langstringyesLanguage of names. It must be supported by the API and included in the client’s subscription

The event method supports only the group format.

Why group Is Used

The group format is recommended for a specific match because the API prepares the odds for display:

  • it separates selections into betting markets;
  • it creates columns within each market;
  • it provides the recommended number of columns in columns;
  • it sorts selections by their values.

The developer does not need to group selections, reconstruct columns, or re-sort the values. Preserve the order of markets, columns, and selections returned by the API.

Request an ID using the same line type from which it was obtained:

  • use live for a Live match;
  • use line for a Prematch match.

Prematch and Live versions of the same match have different game_id values. Do not take a Prematch ID and continue requesting it as a Live ID after the match starts.

Live Request Example

curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/event/746146992/group/live/en' \
  --header 'Package: YOUR_API_KEY'

Prematch Request Example

curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/event/730321837/group/line/en' \
  --header 'Package: YOUR_API_KEY'

Shortened Live Response Example

The following excerpt comes from the real English response for match 746146992. It contains one betting market and the first three submatches.

{
  "status": 1,
  "page": "/v1/event",
  "body": {
    "game_id": 746146992,
    "game_mid": 746146992,
    "game_start": 1787338800,
    "sport_id": 1,
    "sport_name": "Football",
    "country_id": 231,
    "country_name": "England",
    "tournament_id": 88637,
    "tournament_name": "England. Premier League",
    "opp_1_name": "Arsenal",
    "opp_2_name": "Coventry City",
    "game_oc_counter": 278,
    "game_oc_list": [
      {
        "group_id": 19,
        "group_name": "Both Teams To Score",
        "columns": 2,
        "oc_list": [
          [
            {
              "oc_group_name": "Both Teams To Score",
              "oc_name": "Yes",
              "oc_rate": 3.336,
              "oc_size": 0,
              "oc_pointer": "746146992|19|180|0",
              "oc_block": false,
              "op_id": null
            }
          ],
          [
            {
              "oc_group_name": "Both Teams To Score",
              "oc_name": "No",
              "oc_rate": 1.33,
              "oc_size": 0,
              "oc_pointer": "746146992|19|181|0",
              "oc_block": false,
              "op_id": null
            }
          ]
        ]
      }
    ],
    "timer": 3376,
    "score_full": "3:0",
    "score_period": "2:0;1:0",
    "period_name": "period",
    "sub_games": [
      {
        "game_id": 746147013,
        "game_num": 150080,
        "game_name": "2nd half"
      },
      {
        "game_id": 746147010,
        "game_num": 205978,
        "game_name": "Corners"
      },
      {
        "game_id": 746147037,
        "game_num": 207011,
        "game_name": "Quick events"
      }
    ],
    "va": null,
    "vi": null,
    "zp": 746146992,
    "finale": false
  }
}

This is a shortened excerpt. The full response contains all match fields, 49 odds markets, 13 submatches, and 15 statistics metrics.

Top-level Response Fields

FieldTypeDescription
statusnumberRequest status. A successful response returns 1
pagestringMethod name. A specific match returns /v1/event
bodyobjectDetailed object of the selected match

In events, body contains an array of tournaments. In event, body contains one match object without an additional tournament wrapper.

Main Match Fields

FieldTypeDescription
game_idnumberID of the requested match or submatch
game_midnumber or nullMain match ID. For the main match, it usually equals game_id
game_startnumberStart time as a Unix timestamp in seconds
sport_idnumberSport ID
sport_namestringSport name
country_idnumberCountry ID
country_namestringCountry name
tournament_idnumberTournament ID
tournament_namestringTournament name
opp_1_namestringFirst team or participant
opp_2_namestringSecond team or participant
timernumberMatch timer in seconds. Divide by 60 to obtain minutes. Usually 0 in Prematch
score_fullstringOverall score
score_periodstringCurrent period score
period_namestringCurrent period name
game_oc_counternumberTotal count of available bets or selections
game_oc_listarrayComplete available list of odds markets for the match
sub_gamesarrayReferences to available submatches
vanumber or null1 — video is available; null — video is unavailable
vistring or nullVideo stream ID
zpnumber or nullLive 3D Tracker ID

The purpose, types, and allowed values of the remaining fields are documented in the field reference.

Complete Odds List

Use event after the user selects a match from events:

events → short list of the best odds
   ↓ user opens a match
event → complete available list of markets and selections

In the group format, game_oc_list is grouped and contains an additional nesting level within oc_list:

game_oc_list
└── betting market
    └── oc_list
        └── column
            └── selections and odds in this column

Betting Market

FieldTypeDescription
group_idnumberMarket ID
group_namestringMarket name
columnsnumberRecommended number of display columns. It does not have to equal the number of nested oc_list arrays
oc_listarray of arraysSelection columns in the market. Each nested array contains the selections and odds for one column

Selection

FieldTypeDescription
oc_namestringSelection name
oc_ratenumberOdds value
oc_sizestring or numberHandicap, total, or another parameter value
oc_pointerstringPrimary bet or selection code. Used to pass the selected bet to the separate bet placement and settlement system
oc_blockbooleantrue — the selection is blocked; false — it is available
op_idnumber or nullPlayer or participant ID for a player-specific selection, when applicable

The market list depends on the sport and the specific match. Do not build the interface around fixed market names, counts, or order.

When counting and processing selections, account for both oc_list levels: first the column array, then the selection array inside each column.

game_oc_counter may differ from the actual number of returned selections. Treat it as an API counter and process selections from the contents of game_oc_list.

Saved Match Data

ResponseMarketsColumns in oc_listSelectionsgame_oc_counter
Live, 7461469924995278278
Prematch, 73032183720438712941337

These values apply only to the time when the responses were retrieved and change with the sports line.

Submatches

In a specific event, sub_games contains the available submatches. Examples include:

  • a specific half;
  • corners;
  • yellow cards;
  • fouls;
  • player statistics;
  • other available parts or variants of the match.

Each sub_games item contains:

FieldTypeDescription
game_idnumber or nullSubmatch ID
game_numnumber or nullLegacy service field scheduled for removal
game_namestring or nullSubmatch name

The sub_games array itself does not contain odds. To retrieve the complete odds list for a submatch, make another event request using its game_id.

“Corners” Submatch Request Example

The main Live match 746146992 returned:

{
  "game_id": 746147010,
  "game_num": 205978,
  "game_name": "Corners"
}

Submatch request:

curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/event/746147010/group/live/en' \
  --header 'Package: YOUR_API_KEY'

The verified submatch response contains the following relevant identifiers and odds count:

{
  "game_id": 746147010,
  "game_mid": 746146992,
  "game_oc_counter": 175
}

The full verified response for this submatch contained 23 markets, 51 columns, and 166 selections. The game_mid field links the submatch to main match 746146992.

The response also contains game_dop_name for the localized submatch name and game_desk for the localized game segment name. Their text values depend on lang.

The saved full response was requested in Russian; localized text values depend on the lang parameter: “Corners” submatch, Live, Russian.

The complete relationship with the main match and the rules for using sub_games are documented in Submatches and Additional Matches.

Group Matches and event_plan

The event_plan field is populated only in a specific event response. It is not used in the events match list and is returned there as [].

event_plan is intended for group matches. The main match may be named “Home — Away,” while event_plan contains the complete list of specific teams playing for the home and away sides. Each object describes one team pair and the time of its match.

FieldTypeDescription
opp_1_namestringTeam on the home side
opp_2_namestringTeam on the away side
opp_1_idnumber or nullID of the team on the home side
opp_2_idnumber or nullID of the team on the away side
opp_1_country_idnumber or nullCountry ID of the team on the home side
opp_2_country_idnumber or nullCountry ID of the team on the away side
opp_1_iconstringIcon of the team on the home side
opp_2_iconstringIcon of the team on the away side
opp_1_datenumber or nullHome-side team date and time as a Unix timestamp
opp_2_datenumber or nullAway-side team date and time as a Unix timestamp
game_startnumber or nullStart time of this pair’s match as a Unix timestamp

Example with two team pairs inside a group match:

"event_plan": [
  {
    "opp_1_name": "Anzoategui",
    "opp_2_name": "Trujillanos",
    "opp_1_id": 6354451,
    "opp_2_id": 2792,
    "opp_1_country_id": 41,
    "opp_2_country_id": 41,
    "opp_1_icon": "b85e2e3631e4b873b1d74975e6dd4e93.png",
    "opp_2_icon": "2792.png",
    "opp_1_date": 1787342400,
    "opp_2_date": 1787342400,
    "game_start": 1787342400
  },
  {
    "opp_1_name": "Caracas",
    "opp_2_name": "Carabobo",
    "opp_1_id": 2776,
    "opp_2_id": 29081,
    "opp_1_country_id": 41,
    "opp_2_country_id": 41,
    "opp_1_icon": "6309ee8475d59f87fff70fd08858e36f.png",
    "opp_2_icon": "56b11c23ac71e2f6934a7e0feb46dd5e.png",
    "opp_1_date": 1787353200,
    "opp_2_date": 1787353200,
    "game_start": 1787353200
  }
]

Live and Prematch

The response structure is the same, but the data is populated differently.

Live usually updates:

  • timer;
  • score_full and score_period;
  • period_name;
  • stat_list;
  • odds and oc_block;
  • video and tracker availability.

In Prematch, the timer, score, period, and statistics usually contain initial or empty values.

For the saved Live match, zp is 746146992, so Live 3D Tracker is available and this value can be passed to the tracker as gameid. Both va and vi are null, so no video stream is provided for this match.

Detailed rules:

Match No Longer Available

If the match disappears from the selected line type, the method may return:

{
  "status": 1,
  "page": "/v1/event",
  "body": {
    "message": "Game id finished"
  }
}

The message does not explain the reason. The match may have ended, been cancelled, or moved from Prematch to Live under a new game_id. Stop updating the previous ID after receiving this response.

Saved Full Responses

ResponseMatchSubmatchesOdds markets
LiveArsenal — Coventry City1349
PrematchManchester City — Bournemouth24204

Full unabridged responses:

The files contain only API response bodies. No API key is stored in them.

Update Frequency

Recommended request frequency for event:

  • Live — no more than once every 5 seconds;
  • Prematch (line) — no more than once every 30 seconds.

See Data Update Guidelines for more details.

Key, subscription, and parameter errors are documented in Error Handling.