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

# V6 API Overview

> Deep match data across 15 sports — 76 endpoints covering schedules, incidents, odds, team & player profiles, FIFA rankings, World Cup 2026, cricket scorecards, and 3D animation widgets

## V6 Deep Data API

V6 is SportsAPI Pro's deepest match-data layer (currently `v6-aiscore-1.6.0`, **76 endpoints, 75 verified ✅, search ⚠️**). It covers **15 sports** with daily schedules, full match detail, live team stats, multi-bookmaker odds, incidents (goals, cards, VAR), lineups, H2H, commentary, cricket scorecards & ball-by-ball, global transfers, AI predictions, team & player profiles (squad, honors, injuries, salary), FIFA world rankings and complete World Cup 2026 coverage.

### Key Features

* **15 sports** — Football, Basketball, Tennis, Cricket, Baseball, Ice Hockey, Handball, American Football, Volleyball, Badminton, Table Tennis, Snooker, Hockey, Water Polo, Esports
* **Daily schedules** with sport-level filtering (up to 657 matches/day on some sports)
* **Full match detail** — teams, venue, referee, scores by period, 3D animation widget URL
* **Live team stats** — 20+ metrics (possession, shots, dangerous attacks, corners, cards)
* **Multi-bookmaker odds** — EU (1X2), Asian handicap, Over/Under with opening & closing lines
* **Incidents** — goals, cards, subs, penalties, VAR decisions with player names
* **Cricket-specific** — scorecards and ball-by-ball commentary
* **FIFA Rankings** — 211 national teams with 348 historical publication dates
* **World Cup 2026** — all 104 matches, 13 group tables, full historical archive (1930-2026)
* **Global transfers** — 13,400+ transfers, 200 per page, with players/teams/competitions
* **Player & team profiles** — squad, honors, injuries, salary, market value, related entities

### Base URL

V6 is reachable via the new path-based front door **or** the classic per-sport vanity hosts. Both shapes share the same API key, quota, and data.

<CodeGroup>
  ```text New (canonical) theme={null}
  https://api.sportsapipro.com/v6/{sport}/...
  ```

  ```text Classic (still works forever) theme={null}
  https://v6.{sport}.sportsapipro.com/api/v1/...
  ```
</CodeGroup>

Where `{sport}` is one of: `football`, `basketball`, `tennis`, `cricket`, `baseball`, `ice-hockey`, `handball`, `american-football`, `volleyball`, `badminton`, `table-tennis`, `snooker`, `hockey`, `water-polo`, `esports`.

<Info>
  Global endpoints (FIFA rankings, World Cup 2026, global transfers, H2H by team, match/team/player by ID) are **sport-less** — call them under any sport host, or simply use `api.sportsapipro.com/v6/football/...` as the canonical default.
</Info>

### Authentication

Every endpoint (except `/health`) requires your API key in the `x-api-key` header.

<CodeGroup>
  ```bash cURL — New canonical theme={null}
  curl -H "x-api-key: YOUR_API_KEY" \
    "https://api.sportsapipro.com/v6/football/today"
  ```

  ```bash cURL — Classic subdomain theme={null}
  curl -H "x-api-key: YOUR_API_KEY" \
    "https://api.sportsapipro.com/v6/football/football/today"
  ```
</CodeGroup>

### Quick Start

<CodeGroup>
  ```javascript JavaScript theme={null}
  const res = await fetch(
    'https://api.sportsapipro.com/v6/football/today',
    { headers: { 'x-api-key': 'YOUR_API_KEY' } }
  );
  const { matches } = await res.json();
  console.log(`${matches.length} football matches today`);
  ```

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

  r = requests.get(
      'https://api.sportsapipro.com/v6/football/today',
      headers={'x-api-key': 'YOUR_API_KEY'},
  )
  for m in r.json()['matches']:
      print(m['id'], m['matchStatus'], m['homeScores'][0], '-', m['awayScores'][0])
  ```
</CodeGroup>

### Sport ID Map

| Sport             | sport\_id | Slug                |
| ----------------- | --------- | ------------------- |
| Football          | 1         | `football`          |
| Basketball        | 2         | `basketball`        |
| Tennis            | 3         | `tennis`            |
| Cricket           | 5         | `cricket`           |
| Baseball          | 6         | `baseball`          |
| Handball          | 7         | `handball`          |
| Ice Hockey        | 8         | `ice-hockey`        |
| Volleyball        | 10        | `volleyball`        |
| Table Tennis      | 11        | `table-tennis`      |
| Hockey            | 14        | `hockey`            |
| American Football | 17        | `american-football` |
| Snooker           | 19        | `snooker`           |
| Water Polo        | 22        | `water-polo`        |
| Badminton         | 24        | `badminton`         |
| Esports           | 100       | `esports`           |

### Match Status Codes

`matchStatus` is the broad lifecycle; `statusId` (only on `/live`, `/today`, `/date`, `/future`) is the granular phase. See [Daily Schedules → Live Matches](/api-reference/v6-aiscore/schedules#live-matches) for the full `statusId` table.

| matchStatus | Meaning            |
| ----------- | ------------------ |
| 1           | Not Started        |
| 2           | In Progress (Live) |
| 3           | Finished           |
| 4           | Postponed          |
| 8           | Abandoned          |

### Score Array Format

Both `homeScores` and `awayScores` are arrays:

```text theme={null}
[fullTime, firstHalf, secondHalf, extra1, extra2, penalties, ...]
```

Basketball uses quarter scores in the same array slots; cricket uses innings.

### Caching

All responses are cached server-side with TTLs tuned per data type. Every response includes a `cacheHit` boolean. See [Caching & Errors](/api-reference/v6-aiscore/caching-errors) for the full TTL table.

### What's Next

* [Health Check](/api-reference/v6-aiscore/health)
* [Sports & Counts](/api-reference/v6-aiscore/sports)
* [Daily Schedules](/api-reference/v6-aiscore/schedules)
* [Match Detail](/api-reference/v6-aiscore/match-detail)
* [World Cup 2026](/api-reference/v6-aiscore/world-cup-2026)
