---
id: field-reference
title: Sport Line API Field Reference
description: Unified reference for Sport Line API request parameters and JSON response fields with value explanations.
version: v1
language: en
---

# Sport Line API Field Reference

This reference contains request parameters and JSON fields confirmed by actual Sport
Line API responses.

For relationships between fields and differences between match objects returned by
different methods, see [Match Data Model](match.md).

If the Description cell is empty, the purpose of that field has not yet been confirmed.
Do not interpret such values independently. A description will be added after the API
developer or owner provides clarification.

## Request Parameters

| Parameter | Location | Type | Values or format | Description |
|---|---|---|---|---|
| `Package` | HTTP header | string | Client API key | Authentication key |
| `type` | URL | string | `live`, `line` | Sports line type |
| `lang` | URL | string | For example, `ru`, `en` | Response language available in the client's subscription |
| `sportId` | URL | number | Sport ID | Retrieved from `menu` or `sports` |
| `countryId` | URL | number | Country ID | Retrieved from `menu` or `countries` |
| `tournamentId` | URL | number | Tournament ID; `0` means all tournaments for the sport | Retrieved from `menu` or `tournaments` |
| `gameId` | URL | number | Match ID | Retrieved from `events` |
| `text` | URL | string | Team name or part of it | Search text for the `search` method; it must be URL-encoded |
| `format` | URL | string | `sub` for `events`; `group` for `event` | `sub` groups matches by tournament; `group` arranges a specific match's odds into markets and columns and sorts them by value |
| `count` | URL | number | Pass `50` | Originally controlled the number of records returned, but the limit has been removed. The API returns all available matches in the selected scope |
| `cybersport` | query parameter | boolean | `true`, `false` | Switches to esports data in methods that support this parameter |
| `full` | query parameter | boolean | `true`, `false`; default is `false` | In `topmatches` and `toplist`, switches from a short summary to an extended match object. It does not return the full odds list |

## Standard Successful Response

Rules for processing successful responses, empty result sets, service messages, and
errors are documented in [Sport Line API Response Format](response-format.md).

| Field | Type | Methods | Values or format | Description |
|---|---|---|---|---|
| `status` | number | all documented methods | `1` in successful responses | Request status |
| `page` | string | all documented methods | For example, `/v1/menu`, `/v1/events`, `/v1/event`, `/v1/toplist`, `/v1/search`; `topmatches` currently returns `/v1/topmathes` | Name of the method that generated the response |
| `body` | array or object | all documented methods | Depends on the method | Main response data |

## API Error

| Field | Type | Methods | Values or format | Description |
|---|---|---|---|---|
| `error_code` | number | all methods | For example, `90`, `100` | Error category code |
| `error_message` | string | all methods | Error text | Cause of the error |

## Sport

This object is returned by `sports` and at the top level of `menu`.

| Field | Type | Values or format | Description |
|---|---|---|---|
| `id` | number | Sport ID | Used as `sportId` in the URL |
| `name` | string | Name in the requested language | Sport name |
| `counter` | number | Integer starting from `0` | Number of available matches for this sport |
| `sub` | array | Only in `menu` | Countries for the selected sport |

Standard icon:

```text
https://cdn.sportapi.net/sports/v1/color/{id}.webp
```

## Country

This object is returned by `countries` and inside a sport object in `menu`.

| Field | Type | Values or format | Description |
|---|---|---|---|
| `id` | number | Country ID | Used as `countryId` in the URL |
| `name` | string | Name in the requested language | Country name |
| `sport_id` | number | Sport ID | Sport to which the country selection belongs |
| `counter` | number | Integer starting from `0` | Number of available matches for the selected sport in this country |
| `sub` | array | Only in `menu` | Tournaments for the selected country |

Standard icon:

```text
https://cdn.sportapi.net/flags/v1/color/{id}.webp
```

## Tournament in Navigation Methods

This object is returned by `tournaments` and inside a country object in `menu`.

| Field | Type | Values or format | Description |
|---|---|---|---|
| `id` | number | Tournament ID | Used as `tournamentId` in the URL |
| `name` | string | Name or an empty string | Tournament name |
| `counter` | number | Integer starting from `0` | Number of available tournament matches |
| `sport_id` | number | Sport ID | Tournament's sport |
| `countryId` | number | Country ID | Tournament's country |

Standard icon:

```text
https://cdn.sportapi.net/tournaments/v1/color/{id}.webp
```

## Tournament in an `events` Response

| Field | Type | Values or format | Description |
|---|---|---|---|
| `tournament_id` | number | Tournament ID | Tournament identifier |
| `tournament_name` | string | Name in the requested language | Tournament name |
| `events_list` | array | Match array | Tournament matches |

## Match: Identifiers and Placement

The short match fields in this section are also used by the `search` response. Search
returns a flat match array without odds.

| Field | Type | Values or format | Description |
|---|---|---|---|
| `sgame_id` | string | String ID | Reserved test field for match, team, and player statistics. It is not currently used by the API |
| `stat_id` | string | String ID | Reserved test field for detailed statistics. It is not currently used by the API |
| `game_id` | number | Numeric ID | Match ID used to request `event` |
| `game_mid` | number or `null` | Numeric ID or `null` | Main match ID. A submatch has its own `game_id`, while `game_mid` points to the main match |
| `game_num` | number | Integer | Legacy unused field. It is planned for removal from the API |
| `game_start` | number | Unix timestamp in seconds | Match start time |
| `sport_id` | number | Sport ID | Match sport |
| `sport_name` | string | Name in the requested language | Sport name |
| `country_id` | number | Country ID | Match country |
| `country_name` | string | Name in the requested language | Country name |
| `tournament_id` | number | Tournament ID | Match tournament |
| `tournament_name` | string | Name in the requested language | Tournament name |
| `game_dop_name` | string | For example, `Corners`, `Yellow Cards`, `1st Half` | Submatch type name |
| `game_desk` | string | For example, `Half`, `Set`, `Quarter` | Type of playing period |

Important: a new `game_id` is generated for the Live version of a match. Prematch and
Live matches cannot be linked using this field.

Do not treat `sgame_id`, `stat_id`, `game_num`, `stat_list_extra`, or `game_plan` as
required parts of a client integration. They are legacy, test, or reserved fields.
`game_num` is planned for removal from the API.

## Match: Teams or Participants

| Field | Type | Values or format | Description |
|---|---|---|---|
| `opp_1_name` | string | Name | First team or participant |
| `opp_2_name` | string | Name | Second team or participant |
| `opp_1_id` | number | Numeric ID | First team or participant ID |
| `opp_2_id` | number | Numeric ID | Second team or participant ID |
| `opp_1_ids` | array of number | ID array | Participants on the first side when it consists of multiple players or teams, such as a tennis doubles pair or a group match |
| `opp_2_ids` | array of number | ID array | Participants on the second side when it consists of multiple players or teams, such as a tennis doubles pair or a group match |
| `opp_1_icon` | string | File name, for example `hash.png` | First team or participant icon |
| `opp_2_icon` | string | File name, for example `hash.png` | Second team or participant icon |

To retrieve a standard icon, remove the extension from `opp_1_icon` or `opp_2_icon` and
insert the remaining name into the URL:

```text
https://cdn.sportapi.net/opp/v1/color/{iconName}.webp
```

## Match: Short Betting List

| Field | Type | Values or format | Description |
|---|---|---|---|
| `game_oc_counter` | number | Integer starting from `0` | Total number of available betting selections or outcomes for the match |
| `game_oc_list` | array | Market array | Short list of main markets and best odds in `events`, `topmatches?full=true`, and `toplist?full=true` |

The set of markets and selections depends on the sport. Retrieve the complete selection
list through `event` using `game_id`.

## Betting Market in `game_oc_list`

| Field | Type | Values or format | Description |
|---|---|---|---|
| `group_id` | number | Market ID | Betting market identifier |
| `group_name` | string | Name in the requested language | Betting market name |
| `columns` | number | Integer | Recommended number of display columns. It does not have to equal the number of nested arrays in `oc_list` |
| `oc_list` | array | In `events`, `topmatches?full=true`, and `toplist?full=true`: a selection array; in `event`: an array of arrays | In `event`, each nested array represents one selection column in the `group` format |

In the `group` format, the API has already arranged the data into columns and sorted it
by value. Preserve the API order instead of regrouping or re-sorting selections on the
client side.

## Selection in `oc_list`

Practical rules for using these fields and real examples of different bet types are
documented in [Odds and Betting Market Data Model](odds.md).

| Field | Type | Values or format | Description |
|---|---|---|---|
| `oc_group_name` | string | Name in the requested language | Betting market name |
| `oc_name` | string | Name in the requested language | Selection name |
| `oc_rate` | number | Decimal number | Odds |
| `oc_size` | string or number | For example, `0`, `"2.5"`, `"-0.25"` | Handicap, total, or another parameter value |
| [`oc_pointer`](https://sportapi.net/docs/coupon/bet-placement/bet-pointer.html) | string | Composite string ID | Primary unique code of the bet or selection. It is passed to the separate bet placement and settlement system when that service is connected. For player-specific selections, also account for `op_id` |
| `oc_block` | boolean | `true`, `false` | `true` means the selection is blocked; `false` means it is available |
| `op_id` | number or `null` | ID or `null` | Player or participant ID for a player-specific selection, when applicable |

## Match: Score, Period, and Additional Data

| Field | Type | Values or format | Description |
|---|---|---|---|
| `timer` | number | Whole seconds; usually `0` in Prematch | Match timer. Divide the value by `60` to obtain minutes |
| `score_full` | string | For example, `"1:0"` | Overall score |
| `score_period` | string | Score or an empty string | Current-period score |
| `score_extra` | string | For example, `"0:15"` or an empty string | Tennis game score. It is primarily used in tennis and may occur in similar formats, including esports tennis |
| `period_name` | string | Name or an empty string | Current match period |
| `extra_time` | string | For example, `"+10"` or an empty string | Number of added minutes |
| `finale` | boolean or `null` | `true`, `false`, `null` | Indicates that the match has ended. This field is not available for every match |
| `pitch` | string | ID or an empty string | ID of the participant serving in applicable sports |
| `stat_list` | array | Statistics array | Match statistics |
| `stat_list_extra` | array | Array | Reserved test field for additional match details. It is not currently used |
| `sub_games` | array | Submatch array | Returns `[]` in `events`, `topmatches?full=true`, and `toplist?full=true`. In a specific `event`, it contains links to submatches but not their odds |
| `event_plan` | array | Object array | Returns `[]` in `events`, `topmatches?full=true`, and `toplist?full=true`. The full list of home-side and away-side teams in a group match is available only in a specific `event` |
| `game_plan` | any JSON value or `null` | `null` in actual examples | Reserved test field for match details such as a tournament stage or court type. It is not currently used |

## Statistics Entry in `stat_list`

Processing rules, real examples, and confirmed statistic IDs are documented in
[Live Match Statistics Data Model](live-statistics.md).

| Field | Type | Values or format | Description |
|---|---|---|---|
| `id` | number | Statistic ID | Statistic identifier |
| `name` | string | Name in the requested language | Statistic name |
| `opp1` | string | Number or another value represented as a string | Value for the first team or participant |
| `opp2` | string | Number or another value represented as a string | Value for the second team or participant |

## Submatch in `sub_games`

The complete process for retrieving and opening additional matches is documented in
[Additional Matches and Submatches](sub-events.md).

| Field | Type | Values or format | Description |
|---|---|---|---|
| `game_id` | number or `null` | ID or `null` | Sub-event ID |
| `game_num` | number or `null` | Number or `null` | Legacy unused field. It is planned for removal from the API |
| `game_name` | string or `null` | Name or `null` | Sub-event name |

`sub_games` contains links to separate submatch types: periods, corners, cards, fouls,
player statistics, and other available options.

In an `events` list, the field is returned as an empty array:

```json
"sub_games": []
```

The `events` method does not use `sub_games`; it returns only `[]` here. The list is
available when requesting a specific match through `event`. Each item contains
`game_id`, `game_num`, and `game_name`. To retrieve a submatch's odds, make a separate
`event` request using its `game_id`.

## Object in `event_plan`

The `events` method does not use `event_plan` and returns only `[]` here. A populated
field is available in a specific `event` response for a group match. The main match may
be named “Home — Away,” while the array contains the complete list of actual teams on
both sides. Each object describes a pair of teams and the time of their meeting.

| Field | Type | Values or format | Description |
|---|---|---|---|
| `opp_1_name` | string | Name | Team on the home side |
| `opp_2_name` | string | Name | Team on the away side |
| `opp_1_id` | number or `null` | ID or `null` | Home-side team ID |
| `opp_2_id` | number or `null` | ID or `null` | Away-side team ID |
| `opp_1_country_id` | number or `null` | ID or `null` | Country ID of the home-side team |
| `opp_2_country_id` | number or `null` | ID or `null` | Country ID of the away-side team |
| `opp_1_icon` | string | File name | Home-side team icon |
| `opp_2_icon` | string | File name | Away-side team icon |
| `opp_1_date` | number or `null` | Unix timestamp or `null` | Date and time associated with the home-side team |
| `opp_2_date` | number or `null` | Unix timestamp or `null` | Date and time associated with the away-side team |
| `game_start` | number or `null` | Unix timestamp or `null` | Start time of this pair's meeting |

## Video and Live 3D Tracker

Detailed rules:

- [Video Streaming in Sport Line API](../additional-services/video-streaming.md);
- [Live 3D Tracker in Sport Line API](../additional-services/live-3d-tracker.md).

| Field | Type | Values or format | Description |
|---|---|---|---|
| `vi` | string or `null` | ID or `null` | Live match video stream ID |
| `zp` | number or `null` | ID or `null` | Live 3D Tracker ID, passed to the tracker as `gameid` |
| `va` | number or `null` | Only `1` or `null` | `1` means video is available; `null` means no video is available. The value `0` is not used |

If `zp` is `null`, Live 3D Tracker is not available for the match.
