Skip to content

Data Contracts

JSON Schema

Below is the JSON Schema used for the match data:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Match Data Schema",
  "type": "object",
  "properties": {
    "Discipline": {
      "type": "string"
    },
    "Date": {
      "type": "string",
      "format": "date-time"
    },
    "Team1": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "required": ["name", "id"]
    },
    "Team2": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "required": ["name", "id"]
    },
    "Tournament": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "required": ["name", "id"]
    },
    "Streams": {
      "type": "object",
      "properties": {
        "Twitch": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "link": {
                "type": "string",
                "format": "uri"
              },
              "locale": {
                "type": ["string", "null"]
              }
            },
            "required": ["link", "locale"]
          }
        },
        "Youtube": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "link": {
                "type": "string",
                "format": "uri"
              },
              "locale": {
                "type": ["string", "null"]
              }
            },
            "required": ["link", "locale"]
          }
        },
        "Huya": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "link": {
                "type": "string",
                "format": "uri"
              },
              "locale": {
                "type": ["string", "null"]
              }
            },
            "required": ["link", "locale"]
          }
        },
        "Bilibili": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "link": {
                "type": "string",
                "format": "uri"
              },
              "locale": {
                "type": ["string", "null"]
              }
            },
            "required": ["link", "locale"]
          }
        },
        "Afreeca": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "link": {
                "type": "string",
                "format": "uri"
              },
              "locale": {
                "type": ["string", "null"]
              }
            },
            "required": ["link", "locale"]
          }
        }
      },
      "required": ["Twitch", "Youtube", "Huya", "Bilibili", "Afreeca"]
    },
    "Match_id": {
      "type": "string",
      "format": "uuid"
    },
    "Timestamp": {
      "type": "integer"
    }
  },
  "required": [
    "Discipline",
    "Date",
    "Team1",
    "Team2",
    "Tournament",
    "Streams",
    "Match_id",
    "Timestamp"
  ]
}

JSON Specifiaction

Property Data Type Description of Property
Discipline String Name of discipline. CS, DOTA, LoL, VALORANT, Arena of Valor, Call of Duty Mobile, Rainbow6, StarCraft2,
Rocket League, Overwatch, Mobile Legends, Crossfire, Warcraft.
Date String The date and time UTC in ISO 8601, which represents match startime. Example: "2022-03-31T11:20:00Z"
Team1 Object First team of the match. Has two parameters: name and id. Team1 Object
Team2 Object Second team of the match. Has two parameters: name and id. Team2 Object
Tournament Object Tournament in which match is being played. Has two parameters: name and id. Tournament Object
Streams Object Available streams for this match. Supported platforms: Twitch, Youtube, Huya, Bilibili, AfreecaTV. Streams Object
Match_id UUID Unique ID of the match. Represented as hexadecimal string of UUID.
Timestamp Long Timestamp of the creation of the message.

Team1/2 Object

{
    "name": "BIG",
    "id": "5ea7bd4a-faf3-4b30-8a16-82934f5c1040"
  }
Property Data Type Description of Property
name String Name of the team.
Date UUID Unique ID of the team. Represented as hexadecimal string of UUID.

A few words about how the team names are presented:
1. The words ["Esports", "Team", "Gaming"] are always removed from the name.
2. For women's teams: if original name ends with ["fem", "female", "W"] it is replaced with fe.

Example: "Team Falcons" -> "Falcons", "Permitta W" -> "Permitta fe"

Warning

Teams with the same name may have different IDs, as organizations can maintain rosters across multiple disciplines.

Tournament Object

{
    "name": "Elisa Invitational",
    "id": "674f3538-4508-420e-b5c5-73b3124a1572"
  }
Property Data Type Description of Property
name String Name of the tournament.
Date UUID Unique ID of the tournament. Represented as hexadecimal string of UUID.

A few words about how the tournament names are presented:
1. Discipline names, monthes, stages, seasons numbers, punctuation symbols are removed.
Example: "ESEA Season 48: Advanced Division - Europe" -> "ESEA EU Advanced"

2. Regions and some qualifiers are converted to short format based on following table:

Region Abbreviation
South America SA
North America NA
Eastern Europe EEU
Western Europe WEU
Europe EU
Southeast Asia SEA
Asia AS
Africa AF
China CN
Oceania OC
Middle East and North Africa MENA
Open Qualifier OQ
Closed Qualifier CQ

Warning

Tournaments with the same name may have different IDs, as organizers can host tournaments across multiple disciplines.

Streams Object

{
    "Twitch": [
      {
          "link": "https://player.twitch.tv/?channel=valorant&parent=streamshelper.com",
          "locale": "en"
      },
      {
          "link": "https://player.twitch.tv/?channel=valorant_br&parent=streamshelper.com",
          "locale": "pt"
      }
    ],
    "Youtube": [
      {
          "link": "https://www.youtube.com/embed/0-BoAhwpteQ?autoplay=1",
          "locale": "ja"
      },
      {
          "link": "https://www.youtube.com/embed/MrSuHJp7_Ow?autoplay=1",
          "locale": null
      }
    ],
    "Huya": [
      {
          "link": "https://liveshare.huya.com/iframe/660679",
          "locale": "zh"
      }
    ],
    "Bilibili": [
      {
          "link": "https://www.bilibili.com/blackboard/live/live-activity-player.html?cid=22908869&high_quality=1&danmaku=0",
          "locale": "zh"
      }
    ],
    "Afreeca": [
      {
          "link": "https://play.afreecatv.com/valoranten/embed",
          "locale": "ko"
      }
    ]
}   
Property Data Type Description of Property
Twitch Array Information about available Twitch streams.
Youtube Array Information about available Youtube streams.
Huya Array Information about available Huya streams.
Bilibili Array Information about available Bilibili streams.
Afreeca Array Information about available AfreecaTV streams.

Twitch/Youtube/Huya/Bilibili/AfreecaTV Object

{
    "link": "https://player.twitch.tv/?channel=valorant&parent=streamshelper.com",
    "locale": "en"
}
Property Data Type Description of Property
link String Embed link to the livestream of the match.
locale String/Null The ISO 639-1 two-letter language code that the broadcaster broadcasts in.
Currently, there is one exception: "fil" for Filipino locale, which is ISO 639-2.
If the language is unknown, parameter will have value null.

Please note that if there is more than one stream with same locale, they will be sorted by viewers in descending order.
Example:
blastpremier viewers > heatoncs viewers

[{
    "link": "https://player.twitch.tv/?channel=blastpremier&parent=streamshelper.com",
    "locale": "en"
 },
 {
    "link": "https://player.twitch.tv/?channel=heatoncs&parent=streamshelper.com",
    "locale": "en"
 }]

JSON Example

{
  "Discipline": "VALORANT",
  "Date": "2024-08-25T07:00:00.000Z",
  "Team1": {
    "name": "EDward",
    "id": "698fa3be-d265-4b7e-8779-b19909e1adbc"
  },
  "Team2": {
    "name": "Heretics",
    "id": "b9d15c77-52a7-4b72-8195-d97013826c13"
  },
  "Tournament": {
    "name": "Champions",
    "id": "2c802cfd-f5cd-4ec1-b09b-955618ee1b2a"
  },
  "Streams": {
    "Twitch": [
      {
        "link": "https://player.twitch.tv/?channel=valorant&parent=streamshelper.com",
        "locale": "en"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_br&parent=streamshelper.com",
        "locale": "pt"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_la&parent=streamshelper.com",
        "locale": "es"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_kr&parent=streamshelper.com",
        "locale": "ko"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorantesports_cn&parent=streamshelper.com",
        "locale": "zh"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_id&parent=streamshelper.com",
        "locale": "id"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_tw&parent=streamshelper.com",
        "locale": "zh"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_tur&parent=streamshelper.com",
        "locale": "tr"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_fr&parent=streamshelper.com",
        "locale": "fr"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_es&parent=streamshelper.com",
        "locale": "es"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorantleague_east&parent=streamshelper.com",
        "locale": "pl"
      },
      {
        "link": "https://player.twitch.tv/?channel=valleague_it&parent=streamshelper.com",
        "locale": "it"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorantleague_dach&parent=streamshelper.com",
        "locale": "de"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorantesports_ar&parent=streamshelper.com",
        "locale": "ar"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_th&parent=streamshelper.com",
        "locale": "th"
      },
      {
        "link": "https://player.twitch.tv/?channel=ppgl_vctph&parent=streamshelper.com",
        "locale": "tl"
      },
      {
        "link": "https://player.twitch.tv/?channel=valorant_jpn&parent=streamshelper.com",
        "locale": "ja"
      }
    ],
    "Youtube": [
      {
        "link": "https://www.youtube.com/embed/4YJeanhlIC4?autoplay=1",
        "locale": "ja"
      },
      {
        "link": "https://www.youtube.com/embed/D8GNgAZwhb8?autoplay=1",
        "locale": "pt"
      },
      {
        "link": "https://www.youtube.com/embed/Dlv3sGMk3vc?autoplay=1",
        "locale": "en"
      },
      {
        "link": "https://www.youtube.com/embed/MUjgoeDg1m8?autoplay=1",
        "locale": "tr"
      },
      {
        "link": "https://www.youtube.com/embed/SBsU3h3CiXc?autoplay=1",
        "locale": "es"
      },
      {
        "link": "https://www.youtube.com/embed/awcVY3_YkpY?autoplay=1",
        "locale": "en"
      },
      {
        "link": "https://www.youtube.com/embed/xJmYacZEyfU?autoplay=1",
        "locale": "ko"
      },
      {
        "link": "https://www.youtube.com/embed/0aCOQXq5Gbo?autoplay=1",
        "locale": null
      },
      {
        "link": "https://www.youtube.com/embed/fIDqt6kh3CE?autoplay=1",
        "locale": null
      }
    ],
    "Huya": [
      {
        "link": "https://liveshare.huya.com/iframe/660679",
        "locale": "zh"
      }
    ],
    "Bilibili": [
      {
        "link": "https://www.bilibili.com/blackboard/live/live-activity-player.html?cid=22908869&high_quality=1&danmaku=0",
        "locale": "zh"
      }
    ],
    "Afreeca": [
      {
        "link": "https://play.afreecatv.com/valoranten/embed",
        "locale": "ko"
      }
    ]
  },
  "Match_id": "16ad415c-5391-4f99-a23c-cb82220c63b3",
  "Timestamp": 1724537422
}