Field Explanation

Technical fields used in the JSON.

General Instructions

home / away

The identifier home is equal to "team 1" and away is equal to "team 2".

Date and time

All date and time values are in UTC formated as ISO 8601.

Numeric fields

Data from numeric fields like corners or cards that can be 0 or greater than 0 are set to -1 if we have currently no value for them.

Field names ending in numbers

Field names ending in 1 or 2 like corners_ht_1 are valid for team 1 and 2 respectively.

Game period identifiers

If the value of a field is only valid for a part of the event (such as first half or ordinary playtime), the identifier contains a short form of this timerange.

For example: ht = halftime; ord = ordinary playtime; fe = final; 1s = first set and so on.

The goalval field

This field gives detailed information for each goal. It is a string with the following format:

playtime_stage_runningNumber_goalscorer_scoringTeam_additionalInfo#...#

This string is a concatenated array with goal details joined by _, and separate goals joined by #. To convert the string back into an array, you can use the following example function:

const goals: [
  playtime: string,
  stage: '1h' | '2h',
  runningNumber: string,
  goalScorer: string,
  scoringTeam: string,
  additionalInfo: string,
][] = data.goalval.split('#').map(goal => goal.split('_'))

The elements in this array are as follows:

playtime

The minute the goal was scored.

stage

The period of the game (first half, second half, etc.) when the goal was scored.

runningNumber

The number of the goal (first, second, etc.) It is posible that two goals are scored in the same minute, and even for a different team, so this index helps display/calculate the goals in the correct order.

goalScorer

The name of the goal scorer; x if we have no name.

scoringTeam

The team the goal counts for.

additionalInfo

Info if the goal is the result of a special situation like penalty; x if we have no information.

example

Example for "25_1h_1_x_2_x#84_2h_2_x_1_x"

We split the string on # and obtain an array like this:

["25_1h_1_x_2_x", "84_2h_2_x_1_x"]

We then split each element on _ like so:

[
  [
    "25", // 25th minute
    "1h", // first half
    "1", // first goal of the game
    "x", // we don't know the goal scorer
    "2", // team 2 scored
    "x" // we have no additional information
  ],
  [
    "84", // 84th minute
    "2h", // second half
    "2", // second goal of the game
    "x", // we don't know the goal scorer
    "1", // team 1 scored
    "x" // we have no additional information
  ]
]

The result of this match is 1:1

The cornerval field

This field is handled exactly like goalval but does not contain additionalInfo about the match situation, so the array of the second split has only 5 elements.