> ## 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.

# XML Feed

> UOF/Betradar-compatible REST envelopes for football

## What it is

The same XML envelope contract as the rest of the platform, served over the football hierarchy. One sport per feed instance (Soccer, id `1`); every body is wrapped in its envelope so an XML-only client never has to parse JSON.

All paths are locale-scoped (`en` | `ru`) and authenticate with `X-API-Key`.

## Endpoints

| Endpoint                                            | Envelope                      | Returns                                                                                |
| --------------------------------------------------- | ----------------------------- | -------------------------------------------------------------------------------------- |
| `GET /v1/sports/{locale}/sports`                    | `<sport>` per country         | Categories (countries) as sport elements (the football **category** catalog)           |
| `GET /v1/sports/{locale}/tournaments`               | `<tournament>` list           | Tournaments with nested `<sport>` (category)                                           |
| `GET /v1/sports/{locale}/tournaments/{id}/info`     | `<tournament_info>`           | One tournament; not-found delivered in-body as `<response response_code="NOT_FOUND"/>` |
| `GET /v1/sports/{locale}/competitors/{id}/profile`  | `<competitor_profile>`        | Team/national side — id, name, `icon_path`                                             |
| `GET /v1/sports/{locale}/sport_events/{id}/summary` | `<match_summary>`             | Match + `<sport_event_status>` (numeric status, score)                                 |
| `GET /v1/sports/{locale}/sport_events/{id}/fixture` | `<fixtures_fixture>`          | Fixture with home/away `qualifier` + `<extra_info>` (`sport_format`)                   |
| `GET /v1/sports/{locale}/schedules/live/schedule`   | `<schedule>`                  | Currently-live matches                                                                 |
| `GET /v1/sports/{locale}/schedules/pre/schedule`    | `<schedule>`                  | Upcoming matches                                                                       |
| `GET /v1/descriptions/{locale}/match_status`        | `<match_status_descriptions>` | The full football status dictionary (codes 0–9)                                        |

## Shape notes

* **Competitors** carry the home/away `qualifier` and an `id` — resolve name/logo via `/competitors/{id}/profile`.
* **Tournament** travels as a nested `<tournament id=…>` with its `<sport>` (the country/category) — never a flat attribute.
* **`<extra_info>`** carries `sport_format` on both fixture and summary.
* **Not-found** is the in-body marker on the matching envelope with HTTP `404` — not a JSON `{detail}` body.

<Note>
  The match-status dictionary (`/descriptions/{locale}/match_status`) enumerates exactly the codes the football feed publishes. Build your status map from it — see [Match status & lifecycle](/football/lifecycle).
</Note>
