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

# Football Overview

> Football (soccer) data over the same unified feed — matches, competitors, tournaments, live status

## What you get

Football is served under its own `/soccer/v1/*` namespace, on the **same** transport, auth, and message contract as every other Ticktock sport. If you already consume our CS2 feed, football slots in with no new plumbing — only new endpoints and a wider match-status set.

<CardGroup cols={2}>
  <Card title="REST catalog" icon="list" href="/football/rest/list-matches">
    Matches, competitors, tournaments, and categories — resolvable by id.
  </Card>

  <Card title="XML feed" icon="code" href="/football/xml-feed">
    UOF/Betradar-compatible envelopes: sports, tournaments, competitor profiles, summaries, schedules.
  </Card>

  <Card title="Live lifecycle" icon="satellite-dish" href="/football/lifecycle">
    `sport_event_status` drives the match through its full football lifecycle over AMQP.
  </Card>

  <Card title="AMQP transport" icon="tower-broadcast" href="/odds-feed/amqp">
    Same exchange + routing-key layout as every sport — only the sport id differs (`1` = Soccer).
  </Card>
</CardGroup>

## The sport → category → tournament → match model

Football follows the provider hierarchy shared across the platform (see [Sport model](/api-reference/uof-rest-compatibility)):

| Level          | Football                                | Example                              |
| -------------- | --------------------------------------- | ------------------------------------ |
| **Sport**      | Soccer (id `1`) — one per feed instance | `Soccer`                             |
| **Category**   | A **country** (or *International*)      | `Brazil`, `England`, `International` |
| **Tournament** | A competition under that category       | `Série A`, `Premier League`          |
| **Match**      | A single fixture                        | `SC Recife vs Atlético GO`           |

The category (country) travels **nested inside the tournament** — never as a routing-key field. This mirrors the client's own football model so fuzzy match-pairing resolves.

## Identifiers

| Id              | Form                                    | Use                                                                         |
| --------------- | --------------------------------------- | --------------------------------------------------------------------------- |
| `id`            | `sr:sport_event:{int}` (SportRadar URN) | Stable match id in the REST catalog                                         |
| `uuid`          | UUID                                    | Internal id; resolves the same match via `/soccer/v1/matches/{uuid}`        |
| AMQP `event_id` | `od:match:{int}`                        | Cross-reference id on the messaging feed (same `od:` scheme as every sport) |

A match resolves by its SportRadar URN, the bare integer, **or** our UUID — so you can look it up by whatever id you already hold.

## Coverage

| Property       | Value                                                                              |
| -------------- | ---------------------------------------------------------------------------------- |
| **Source**     | SportRadar Soccer v4                                                               |
| **Catalog**    | Matches, competitors (teams & national sides), tournaments, categories (countries) |
| **Logos**      | National sides → country flag; clubs → crest. Re-hosted on our CDN (`icon_path`).  |
| **Live data**  | Score, period (`match_status`), full event timeline (goals, cards, substitutions)  |
| **Status set** | Full football lifecycle — see [Match status & lifecycle](/football/lifecycle)      |
| **Markets**    | In development — see [Football Markets](/football/markets)                         |

## Required scope

Football endpoints authenticate with the same `X-API-Key` as the rest of the platform. Your key's `sport_allowlist` must include `soccer`. Verify anytime with `GET /v1/whoami`.

<Note>
  The transport — authentication, AMQP routing keys, settlement, recovery — is identical across sports and documented under **Platform**. This section covers only what is football-specific.
</Note>
