Environments & limits
Base URLs
Section titled “Base URLs”| Environment | Base URL |
|---|---|
| Production | https://api.myscore.live/api/v1 |
| Test | https://test.myscore.live/api/v1 |
The WebSocket gateway lives at the origin (e.g. https://api.myscore.live). The copy-paste examples
in this site point at production reads, which are safe and public.
Rate limits
Section titled “Rate limits”| Caller | Limit |
|---|---|
| Unauthenticated (public) | 10 req/min |
| Authenticated (JWT or M2M) | 100 req/min |
Exceeding the limit returns 429. Prefer authenticated requests, and back off on 429.
Errors
Section titled “Errors”Every error has the same shape:
{ "statusCode": 403, "message": "Insufficient permissions", "error": "Forbidden" }| Code | Meaning |
|---|---|
| 401 | Missing / expired token — refresh and retry once |
| 403 | Authenticated but not allowed |
| 409 | State conflict (e.g. acting on a completed match) |
| 422 | Validation failed |
| 429 | Rate limit exceeded |
Pagination
Section titled “Pagination”List endpoints share one envelope:
{ "data": [ /* … */ ], "meta": { "page": 1, "perPage": 20, "total": 47, "hasNextPage": true } }Pass ?page= and ?perPage=; most lists also accept ?search=.