# GET /v1/competitions/{comp}/editions/{year}/standings/{table}

```bash
curl "https://api.statshawk.ai/v1/competitions/{comp}/editions/{year}/standings/{table}" -H "X-API-Key: sk_live_YOUR_KEY"
```

## Parameters

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `comp` | path | yes | string | Competition slug (`nba`, `mlb`, `epl`, …) |
| `year` | path | yes | string | Season start year (e.g. `2026`) — cross-year leagues (NBA/NHL/NCAA) use the year the season STARTS in (2025 = the 2025-26 season) |
| `table` | path | yes | string | Registered standings table slug (`league` \| `drivers` \| `constructors` — see `GET.../capabilities`'s `standings` list) |

## Responses

- `200`: The standings table, kind-tagged: `match_record` (byte-identical rows to the legacy standings endpoints) or `points_rank` (an accumulated-points ranking — racing's drivers'/constructors' championships) (schema: [ApiResponseStandingsTable](/docs/reference/data-model.md))
- `401`: Missing or invalid API key (`UNAUTHORIZED`). (schema: [ErrorResponse](/docs/reference/data-model.md))
- `404`: No competition with this slug, no edition for that year, or the sport does not register that table slug (schema: [ErrorResponse](/docs/reference/data-model.md))
- `429`: Rate limit (`RATE_LIMIT_EXCEEDED`) or monthly quota (`QUOTA_EXCEEDED`). (schema: [ErrorResponse](/docs/reference/data-model.md))
- `500`: Internal failure (`INTERNAL_ERROR`, `CACHE_ERROR`). (schema: [ErrorResponse](/docs/reference/data-model.md))
- `501`: Capability not supported for this competition (`NOT_SUPPORTED`). (schema: [ErrorResponse](/docs/reference/data-model.md))
- `502`: Upstream data provider failed (`PROVIDER_ERROR`). (schema: [ErrorResponse](/docs/reference/data-model.md))
- `503`: Auth backend, DB, or providers unavailable (`AUTH_BACKEND_UNAVAILABLE`, `DB_UNAVAILABLE`). (schema: [ErrorResponse](/docs/reference/data-model.md))

Every response carries `X-Request-Id` and, when metered, `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. Errors use `{"error": {"code", "message"}}`. See [Errors](/docs/getting-started/errors.md).

Full spec: [/openapi.json](/openapi.json) · MCP equivalent: connect to `https://mcp.statshawk.ai/mcp`.
