The wire, documented.
Live and historical football data for your applications. One REST API, predictable JSON, clear rate-limit headers — and a sandbox on every endpoint. New integrations should start on v2, the current, complete API.
01Quickstart
Grab a free key, then your first call is one line. Native v2 fixtures, with cursor pagination:
$ curl -G "https://api.kickoffapi.com/api/v2/fixtures" \ -d "limit=10" \ -H "x-api-key: YOUR_KEY" # 200 OK · Unified Envelope { "data": [ … ], "meta": { "count": 10, "cursor": 0, "nextCursor": "10" } }
Still on the legacy API-Football-compatible shape? See the v1 reference — it stays live until it sunsets on 01 January 2027.
02Authentication
Every request needs your API key in the x-api-key header. Keys map to your plan and its limits — keep them server-side, never in client code, and rotate them anytime from your dashboard.
x-api-key: ko_live_7f3a…e91c4b20d8
03Rate limits & errors
Limits are enforced per minute and per day, by plan. Every response tells you where you stand:
| Header | Meaning |
|---|---|
| X-RateLimit-Limit | Your daily request allowance |
| X-RateLimit-Remaining | Requests left today |
| X-RateLimit-Reset | Unix time the counter resets |
| X-Request-Id | Attach this when contacting support |
| Status | Meaning | What to do |
|---|---|---|
| 401 | Missing or invalid key | Check the x-api-key header |
| 403 | Endpoint not on your plan | Upgrade, or check plan features |
| 429 | Rate limit exceeded | Back off; retry after reset. Overage billing keeps daily limits soft on paid plans |
| 500 | Server error | Retry with backoff; include X-Request-Id in reports |
04API reference
Full endpoint-by-endpoint documentation, with live "try it" curl generation, lives on its own page per version.
Native ids, { data, meta } envelope, xG models, Dixon-Coles projections, AI previews.
API-Football-compatible { get, results, response } shape. Sunsets 01 January 2027 — see the migration guide.
Standings, live scores, fixtures and predictive widgets as two lines of HTML.
05SDKs & tools
Thin clients for both versions, and a ready-made request collection.
| Tool | Language / format | |
|---|---|---|
| JS / TypeScript client | npm-style module, zero dependencies | README · source |
| Python client | single-file, stdlib only | README · source |
| Postman collection | importable .json | download |