> For the complete documentation index, see [llms.txt](https://developer.aiodds.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.aiodds.com/bookmaker-odds/websocket/match.md).

# Match

**Topic:**

{% code expandable="true" %}

```
topic: match/<user>
```

{% endcode %}

**Return data structure:**

{% code expandable="true" %}

```protobuf
syntax = "proto3";
package aiodds;
message Team {
  int32 id = 1; // Team id
  string name = 2; // Team name
  string logo = 3; // Team logo
}
message Tournament {
  int32 id = 1; // Tournament id
  string name = 2; // Tournament name
  int32 sport_id = 3; // Sport id
  int32 country_id = 4; // Country id(Deprecation)
  int32 location_id = 5; // Location id
  string logo = 6; // Tournament logo
  optional int32 sub_sport_id = 7; // Sub-sport id, 101-LOL, 102-CSGO, 103-DOTA2, 106-KOG (Only for sport 100, other sports will return 0)
}
message Score {
  repeated int32 score = 1; // Score description, 2 bit length - [Home team score, Away team score]
}
message Participant {
  uint32 id = 1; // Horse id
  string name = 2; // Horse name
  string logo = 3;
  uint32 active = 5; // Is it on the field, 1-Yes, 0-No
  string position = 6; // Racetrack
  ParticipantExtra ext = 7;
  int32 ranking = 8; // Ranking, withdrawn is assigned a negative value
}
message ParticipantExtra{
  string age = 1; // Horse age
  string career = 2; // Racing career (The four figures correspond to: total races, wins, second places, and third places.)
  string competitor_number = 3; // Horse number
  string jockeys = 4; // Jockey
  string jockeys_weight = 5; // Jockey weight
  string last10 = 6; // Last 10 matches (Recent racing finishes. The most recent race is on the right, 'x' indicating a layoff, '0' representing 10th place or worse.)
  string racing_colours = 7; // Jockey's shirt color
  string rating = 8; // Rating of horse from the official
  string trainers = 9; // Trainers
  string average_prize_money = 10; // Average prize money
  string win_percentage = 11; // Win percentage
  string place_percentage = 12; // Top 3 percentage
}
message MatchExtra {
    optional string class = 1; //  Tournament class
    optional string condition = 2; // Track condition (Data updated)
    optional string temperature = 3; // Temperature
    optional string distance = 4; // Distance
    optional string race_group = 5; // Race group
    optional string race_number = 6; // Race order
    optional string race_title = 7; // Race title
    optional string event_class = 8; // Short name of Tournament class 
    optional string prize_money = 9; // Prize money
    optional string weather = 10; // Weather
}
message Match{
  uint32 id = 1; // Match id
  uint32 sport_id = 2; // Sport id
  uint32 status_id = 4; // Match status, please see Status Code->Match Status
  uint32 match_time = 5; // Match time
  repeated int32 timer = 6; // Timer description, 4 bit length - [Whether the clock is running(1-yes、0-no), Whether to count down(1-yes、0-no), Update time, Progress time(football) or Remaining time of current section(basketball)]
  int32 period = 7; // Period status, please see Status Code->Period Status
  map<string, Score> scores = 8; // Score details
  uint32 neutral = 9; // Is it neutral，1-Yes，0-No
  Team home = 10; // Home team details
  Team away = 11; // Away team details
  Tournament tournament = 12; // Tournament details
  int32 hide = 13; // when ==1 , hide match
  repeated Participant participants = 14; // Participants for Non-Head-to-Headed race
  optional MatchExtra extra = 15; // Match extra infomation
  uint32 outright = 16; // match type mark: 0.match 1.tournament outright 2. Multi-participant race(ex:Horse Racing);
  string season = 17; // tournament season; valid when outright=1. exp: "2026" / "2025-2026"
  uint32 nid = 19;  // When the match is canceled, the associated new match_id
  string cancel_reason = 20;  // match cancel reason, please see Status Code->Cancel Reason
}
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.aiodds.com/bookmaker-odds/websocket/match.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
