Skip to content
Errors

Errors

One JSON shape, a stable business code, and a clear rule about what is worth retrying.

Error shape

Errors use a JSON detail field carrying a business code:

{"detail": "competition_not_selected"}

Never log or echo the API key when handling an error.

Business codes

CodeStatusMeaning
invalid_match_id400Malformed ID, or a fixture:* identifier.
invalid_bulk_request400Malformed bulk body.
bulk_limit_exceeded400More than 100 IDs requested.
duplicate_match_ids400The bulk list contains duplicates.
competition_not_selected403Known competition, not in your selection.
bulk_not_available403Bulk is not enabled for this plan.
competition_not_found404Unknown catalog code.
match_not_found404Unknown match, or outside your selection.
rate_limit_exceeded429Minute request limit reached.
concurrency_limit_exceeded429Too many requests in flight.

What to retry

  • Do not retry 400, 401, 403, or 404 — the request will fail identically.
  • Retry with care on 429, honoring Retry-After. Remember that an admitted request already consumed a unit.
  • Retry network errors and 5xx with bounded backoff.

See Status codes and Quotas.