← Back to API docs

GET/api/v1/categories

List categories
Basic data packageWorld Cup packageactivebetacoreAvailable

Description

Returns all categories.

The data rarely changes; suggested frequency: once a day

Access

Request
GET https://api.sports.csap.ai/api/v1/categories
Auth
Header X-API-Key: <your key> (Authorization: Bearer <key> also works; ?key= is still accepted but discouraged, because the key ends up in URLs and logs)
External keys
AvailableAny valid API key can call this endpoint.
Rate limits
3000 per minute · 200000 per day · Set per key (rate_per_min and quota_daily returned by /api/v1/account are authoritative; the numbers above are a trial key's). Beyond them the answer is 429. In addition, heavy requests such as whole-table snapshots and statistics lists without a match id are processed 2 at a time for the whole platform; a request that cannot get a slot receives 429 with Retry-After. Responses do not carry X-RateLimit-* headers for now. See the general guide

Request parameters 0

This endpoint takes no request parameters.

Example request

curl "https://api.sports.csap.ai/api/v1/categories" \
  -H "X-API-Key: YOUR_API_KEY"

Try it

Example response

Real response with an external key at 09/11/2026, 14:28 UTC: HTTP 200, 329 rows, 215 ms (data cut to 2 rows)

{
  "code": 0,
  "data": [
    {
      "alpha2": "EN",
      "cat_id": "1",
      "continent": null,
      "flag": "england",
      "id": 1,
      "name_zh": null,
      "name_zht": null,
      "priority": 10,
      "slug": "england",
      "source": "S2",
      "updated_at": 1794230400557,
      "name": "England"
    },
    {
      "alpha2": "AF",
      "cat_id": "1084",
      "continent": null,
      "flag": "afghanistan",
      "id": 2,
      "name_zh": null,
      "name_zht": null,
      "priority": 0,
      "slug": "afghanistan",
      "source": "S2",
      "updated_at": 1794230400746,
      "name": "Afghanistan"
    }
  ],
  "message": "success",
  "success": true
}

Response fields 12

alpha2stringnullableISO 3166 two-letter country codeExample: "EN"
cat_idstringExample: "1"
continentnullnullable
flagstringFlag imageExample: "england"
idintegerRecord id; paging cursor (the id parameter returns records >= this value). In match endpoints it is the platform match id (gmid)Example: 1
name_enstringEnglish nameExample: "England"
name_zhnullnullableChinese name
name_zhtnullnullableTraditional Chinese name
priorityintegerSort weightExample: 10
slugstringEnglish slug (for URLs)Example: "england"
sourcestringSource code (S1, S2…)Example: "S2"
updated_atintegerLast update time (UTC, ISO 8601; incremental sync with the time parameter goes by it)Example: 1794230400557

Errors

HTTPmessageWhen
401missing API key / unauthorizedNo X-API-Key, or the key is invalid or disabled
429rate limit exceeded / daily quota exceededThe key's per-minute rate or daily quota is exceeded
429server busy, retry laterThe server's concurrency slots are full (only 2 heavy requests at a time); retry after Retry-After seconds
500query errorThe query failed on the server; you may retry