Status and support
Checking whether it's us, and what to include when it is.
Is the API up?
curl -sS https://api.esportsodds.gg/health
# {"status":"ok"}/health needs no API key, isn't metered, and returns 503 with {"status":"unavailable"} when
the service is up but can't reach its database. It's the right thing to point a monitor at.
Note it's the one endpoint without the {data, meta} envelope — it's a probe, and keeping it
trivial is the point.
For history and incidents: status.esportsodds.gg.
Is it me?
Work down this list before reporting a problem:
| Symptom | Most likely cause |
|---|---|
| Everything 401s | Key not sent as Authorization: Bearer <key>, or rotated more than 24h ago |
| Everything 429s | Check error.code — quota_exceeded means out of requests, not overloaded |
| One endpoint 404s | A malformed id, or a slug on /matches (matches have no slug) |
| Empty arrays everywhere | Filters too narrow, or a sub-resource with no data — check data_available |
eo_model returns nothing | Expected — the model line isn't served yet |
Troubleshooting covers each of these properly.
What data coverage exists
/v1/{game}/coverage states what the product actually has, per capability, with an honest status:
curl -H "Authorization: Bearer $ESPORTSODDS_API_KEY" \
"https://api.esportsodds.gg/v1/cs2/coverage"live means available now. pending_validation means built but held back until it clears an
accuracy bar. schema_ready means the shape exists but isn't populated. planned means intended,
not built. licence_required means blocked on rights rather than engineering.
It's a deliberately unflattering endpoint — it tells you what we don't have as clearly as what we do, so you can find out before you build rather than after.
Reporting a problem
Include the X-Request-Id. Every response carries one, and it's repeated in error.request_id
on failures. With it we can find the exact request in our logs; without it we're matching on a
timestamp.
A good report is: the request id, the URL you called (minus your key), what you expected, and what you got.
Notifications
Your dashboard controls email for quota warnings at 80% and 100%, payment receipts, and changelog entries for API changes. The changelog one is worth leaving on — it's how a deprecation would reach you.