# GET /v2/categories

Group: Discovery

A sport’s categories: the source’s grouping of leagues — countries, regions (Europe, International), tours (ATP), esports games.

Note: country is set only when the category is a country. Pass a category id to /v2/leagues?category= — or, when kind is races (motorsport, cycling), to /v2/series?category=: race sports have series, not leagues.

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `sport` | query | yes | a sport slug from /v2/sports |

## Response

- `data`: `Category[]`
- `meta`: sport, kind (fixtures | races, as in /v2/sports), count
- Objects: Category (https://sportsapi.app/markdown/en/reference.md#category)

## Errors

- 400 bad_request — missing or unknown sport

Plus the common errors (https://sportsapi.app/markdown/en/docs.md#errors).

## Request

cURL:

```bash
curl -H "Authorization: Bearer sk_live_…" \
    "https://api.sportsapi.app/v2/categories?sport=…"
```

TypeScript:

```ts
const { data, meta } = await client.categories.list({ sport });
```

Python:

```python
res = client.categories.list(sport=sport)
```

Go:

```go
res, err := client.Categories.List(ctx, &sportsapi.CategoriesListParams{Sport: sport})
```

CLI:

```bash
$ sportsapi categories list <sport>
```

## Example response

```json
{ "data": [ { "id": 456, "name": "England", "slug": "england", "sport": "football", "country": { "code": "EN", "name": "England" } },
    { "id": 457, "name": "Oceania", "slug": "oceania", "sport": "football", "country": null }, … ],
  "meta": { "sport": "football", "kind": "fixtures", "count": 272 } }
```

---

Base URL: https://api.sportsapi.app. Send your API key as `Authorization: Bearer <key>` on every /v2 request; keys are created in the dashboard (https://sportsapi.app/dashboard).
HTML: https://sportsapi.app/docs/discovery/categories-list · All docs: https://sportsapi.app/markdown/en/docs.md
