Skip to main content
Error codes and handling are consistent across all 25+ sports APIs and all three API versions (V1, V2, V3).

Error Response Format

HTTP Status Codes

Common Errors

401 — Missing or Invalid API Key

Fix: Include the x-api-key header in every request:

429 — Rate Limit Exceeded

Fix: Wait until reset, implement caching, or upgrade your plan. See Rate Limits.

404 — Resource Not Found

Returned when a match ID, team ID, or tournament ID doesn’t exist for that sport. Fix: Verify the ID is correct and belongs to the sport you’re querying. Use /api/search to find valid IDs.

503 vs 404 on collection routes

On collection routes — live, today, schedule/round, standings and seasons lists — the two status codes mean different things and need different handling:
  • 503 means the upstream data layer temporarily failed to answer. It is always retryable: repeat the same request after a short backoff and it will normally succeed.
  • 404 means the resource genuinely doesn’t exist (for example, a tournament ID that isn’t valid, or a competition with no fixtures that day). Retrying a 404 on these routes is pointless — fix the ID instead.
This applies to item-level endpoints too: a repeated 404 on /api/match/{id}/statistics or /lineups is a real answer (no data recorded for that match), while a 5xx is transient.

Error Handling Examples

Retry Strategy

For transient errors (5xx), implement exponential backoff:

Getting Help

Contact Support

Get help from our team
Last modified on September 30, 2026