> ## Documentation Index
> Fetch the complete documentation index at: https://cloro.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Sports results schema

> Schema for Google's sports block returned by the Google Search endpoint: standings tables and games of a league, team, player or tournament.

The [Google Search endpoint](https://cloro.dev/docs/api-reference/endpoint/monitor-google.md) returns Google's sports block as `result.sportsResults`, with no flag and at no extra cost. The block can be a league, a team, a player or a tournament, with standings tables, games, a squad, stat leaders, or several of these. `sportsResults` is omitted when the SERP has no sports block.

Every field is present only when Google shows it. Text values are as shown, in the language of the SERP. Google serves the visible part of the block: the rows around the top of a table or around the team, the selected tab, and a handful of games.

## Sports block structure

| Field | Type | Description |
| - | - | - |
| `title` | string | Heading of the block: the league, the team or the tournament |
| `subtitle` | string | Line under the title of a single-competitor block: the dates of a tournament, a player's country |
| `season` | string | Season shown in the block's season selector |
| `standings` | array | Standings tables. See [Standings](#standings) |
| `games` | array | Games and matches. See [Games](#games) |
| `squad` | array | Tables of a team's squad tab, one per position group. See [Squad and leaders](#squad-and-leaders) |
| `leaders` | array | Stat leaders tables of a league, one per stat. See [Squad and leaders](#squad-and-leaders) |

### Standings

| Field | Type | Description |
| - | - | - |
| `group` | string | Heading of the table (a division, a group, a conference) when the block has several, or the selected tab when it shows one table per tab (a conference, drivers or constructors, singles) |
| `columns` | array | Stat columns: `label` is the header as shown (`"MP"`), `name` the full name when Google provides one (`"Matches played"`) |
| `rows` | array | One row per team, driver or player: `rank`, `name`, `team`, `number`, `values` and `form` |

`values` has one entry per column, in the order of `columns`, as shown (`"9"`, `"-12"`, `"7-2-1"`); an empty cell is `null`. `form` lists Google's labels for the last results (`"W"`, `"Win"`), in page order. A tied position (`"T3"`) gives `rank` 3; `rank` is omitted when Google shows none. A driver's row adds the `team` shown under the name (`"Mercedes"`) and, when shown, the car `number` as written (`"#12"`, `"n.1"`).

No markup says which stat a column holds, and the column order changes by sport and league, so the columns keep Google's labels instead of named fields.

### Games

| Field | Type | Description |
| - | - | - |
| `teams` | array | Teams or players, in the order shown: `name`, `score`, `sets` and `winner` |
| `status` | string | State as shown (`"Final"`, `"Q2 - 06:18"`, `"Completed"`) |
| `date` | string | Day label as shown (`"Yesterday"`) |
| `startTime` | string | Start time (ISO 8601), on games of the match list |
| `group` | string | Tennis: the draw on a tournament page, the tournament on a player page |
| `round` | string | Tennis: the round (`"Round of 32"`) |

A tennis player has `sets` instead of `score`: one entry per set with `games` and, after a tiebreak, `tiebreak`. `winner` is `true` on the player Google marks as the winner and omitted on the other. On mobile, a match page (`chiefs vs bills`) gives that one game and no `title`, plus the standings of the two teams in `standings` once Google shows them.

### Squad and leaders

Both have the shape of a standings table. `squad` is the squad tab of a team page: one table per position group, `group` its heading (`"Goalkeepers"`, `"Pitchers"`), `columns` the stat columns shown (`Age`), and each row a player with `name`, `number` (the jersey number as written) and `description` (the nationality, or the position on North American rosters). Google serves the selected group only. `leaders` is the stat leaders tab of a league: one table per stat, `group` the stat (`"Points per game"`), each row with `rank`, `name`, `team` and `values`.

## Response example

A response to `premier league table` in the United Kingdom:

```json theme={null}
{
  "success": true,
  "result": {
    "sportsResults": {
      "title": "Premier League",
      "season": "2026-27",
      "standings": [
        {
          "columns": [
            { "label": "MP", "name": "Matches played" },
            { "label": "W", "name": "Wins" },
            // …
            { "label": "Pts", "name": "Points" }
          ],
          "rows": [
            { "rank": 1, "name": "Arsenal", "values": ["9", "7", "…", "22"], "form": ["W", "W", "D", "W", "W"] },
            // …
          ]
        }
      ]
    }
  }
}
```

The squad tab of `man utd squad`:

```json theme={null}
{
  "squad": [
    {
      "group": "Goalkeepers",
      "columns": [{ "label": "Age" }],
      "rows": [
        { "name": "Senne Lammens", "number": "#1", "description": "Belgium", "values": ["24"] },
        // …
      ]
    }
  ]
}
```

A tennis match from `wimbledon`:

```json theme={null}
{
  "teams": [
    { "name": "J. Faria", "sets": [{ "games": "6" }, { "games": "6" }], "winner": true },
    { "name": "H. Grenier", "sets": [{ "games": "3" }, { "games": "3" }] }
  ],
  "status": "Completed",
  "date": "Mon 22 Jun",
  "group": "Men's Singles",
  "round": "Qualifiers"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.