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

# List sports games

> Get a paginated list of sports games, optionally filtered by league or sport

## Authentication

Public — no authentication required.

## Query parameters

<ParamField query="league" type="string">
  Filter by league key (e.g., "England - Premier League", "Spain - La Liga").
</ParamField>

<ParamField query="sport" type="string">
  Filter by sport (e.g., "soccer", "basketball").
</ParamField>

<ParamField query="page" type="integer" default="1">
  Page number.
</ParamField>

<ParamField query="size" type="integer" default="50">
  Results per page (max 100).
</ParamField>

## Example request

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://relay.bayse.markets/v1/pm/sports/games?league=epl&page=1&size=20"
  ```

  ```javascript Node.js theme={null}
  const params = new URLSearchParams({
    league: 'England - Premier League',
    page: 1,
    size: 20,
  });
  const response = await fetch(
    `https://relay.bayse.markets/v1/pm/sports/games?${params}`
  );
  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  resp = requests.get(
      'https://relay.bayse.markets/v1/pm/sports/games',
      params={'league': 'epl', 'page': 1, 'size': 20},
  )
  data = resp.json()
  ```

  ```go Go theme={null}
  req, _ := http.NewRequest("GET", "https://relay.bayse.markets/v1/pm/sports/games", nil)
  q := req.URL.Query()
  q.Add("league", "epl")
  q.Add("page", "1")
  q.Add("size", "20")
  req.URL.RawQuery = q.Encode()
  resp, _ := http.DefaultClient.Do(req)
  defer resp.Body.Close()
  var data interface{}
  json.NewDecoder(resp.Body).Decode(&data)
  ```
</CodeGroup>

## Response

<ResponseField name="games" type="array[object]" required>
  Array of games matching the filter criteria.

  <Expandable>
    <ResponseField name="id" type="uuid" required>
      Unique identifier for the team.
    </ResponseField>

    <ResponseField name="slug" type="string" required>
      Sport type (e.g., "bm-game-20260413-rma-ath").
    </ResponseField>

    <ResponseField name="sport" type="string" required>
      Sport type (e.g., "soccer", "basketball").
    </ResponseField>

    <ResponseField name="homeTeamId" type="string" required>
      URL-friendly team identifier.
    </ResponseField>

    <ResponseField name="awayTeamId" type="string" required>
      URL-friendly team identifier.
    </ResponseField>

    <ResponseField name="startDate" type="date" required>
      Start Date of the sport game
    </ResponseField>

    <ResponseField name="league" type="string" required>
      League name.
    </ResponseField>

    <ResponseField name="isLive" type="string">
      Boolean field to indicate if game is currently live.
    </ResponseField>

    <ResponseField name="isPopular" type="boolean" required>
      Whether this is a popular/featured team.
    </ResponseField>

    <ResponseField name="homeTeam" type="object" required>
      Home team details.

      <Expandable>
        <ResponseField name="id" type="uuid" required>
          Unique identifier for the team.
        </ResponseField>

        <ResponseField name="sport" type="string" required>
          Sport type (e.g., "soccer", "basketball").
        </ResponseField>

        <ResponseField name="name" type="string" required>
          Full team name.
        </ResponseField>

        <ResponseField name="slug" type="string" required>
          URL-friendly team identifier.
        </ResponseField>

        <ResponseField name="shortCode" type="string" required>
          Team short code.
        </ResponseField>

        <ResponseField name="league" type="string" required>
          League name.
        </ResponseField>

        <ResponseField name="imageUrl" type="string">
          URL to team logo (if available).
        </ResponseField>

        <ResponseField name="isPopular" type="boolean" required>
          Whether this is a popular/featured team.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="awayTeam" type="object" required>
      Away team details.

      <Expandable>
        <ResponseField name="id" type="uuid" required>
          Unique identifier for the team.
        </ResponseField>

        <ResponseField name="sport" type="string" required>
          Sport type (e.g., "soccer", "basketball").
        </ResponseField>

        <ResponseField name="name" type="string" required>
          Full team name.
        </ResponseField>

        <ResponseField name="slug" type="string" required>
          URL-friendly team identifier.
        </ResponseField>

        <ResponseField name="shortCode" type="string" required>
          Team short code.
        </ResponseField>

        <ResponseField name="league" type="string" required>
          League name.
        </ResponseField>

        <ResponseField name="imageUrl" type="string">
          URL to team logo (if available).
        </ResponseField>

        <ResponseField name="isPopular" type="boolean" required>
          Whether this is a popular/featured team.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object" required>
  Pagination information.

  <Expandable>
    <ResponseField name="page" type="integer" required>
      Current page number.
    </ResponseField>

    <ResponseField name="size" type="integer" required>
      Results per page.
    </ResponseField>

    <ResponseField name="totalCount" type="integer" required>
      Total number of games matching the filter.
    </ResponseField>

    <ResponseField name="lastPage" type="integer" required>
      Last available page number.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "games": [
      {
          "id": "9cdc0e3e-2e72-4076-bf8c-d941272f1a4f",
          "slug": "bm-game-20260413-sea-rsl",
          "sport": "soccer",
          "homeTeamId": "44a72373-18df-4770-a475-32f4ade2b9bd",
          "awayTeamId": "c4c564c6-bc66-49c7-90be-3199aea1a593",
          "startDate": "2026-04-13T02:00:00+01:00",
          "status": "UNPLAYED",
          "isLive": false,
          "isPopular": false,
          "league": "USA - Major League Soccer",
          "homeTeam": {
              "id": "44a72373-18df-4770-a475-32f4ade2b9bd",
              "sport": "soccer",
              "name": "Seattle Sounders FC",
              "slug": "bm-mls-seattle-sounders-fc",
              "shortCode": "SEA",
              "league": "USA - Major League Soccer",
              "imageUrl": "https://cdn.opticodds.com/team-logos/soccer/5272.png",
              "isPopular": false
          },
          "awayTeam": {
              "id": "c4c564c6-bc66-49c7-90be-3199aea1a593",
              "sport": "soccer",
              "name": "Real Salt Lake",
              "slug": "bm-mls-real-salt-lake",
              "shortCode": "RSL",
              "league": "USA - Major League Soccer",
              "imageUrl": "https://cdn.opticodds.com/team-logos/soccer/5270.png",
              "isPopular": false
          }
      }
    ],
    "pagination": {
      "page": 1,
      "size": 20,
      "totalCount": 120,
      "lastPage": 6
    }
  }
  ```
</ResponseExample>
