Autentifikacija
Svi zahtevi ka /api/v1/* zahtevaju Bearer token u Authorization header-u. Token dobijaš od nas ručno; validan je dok ne istekne ili dok ga ne revokujemo.
Header format
http
GET /api/v1/competitions HTTP/1.1
Host: stats-api.ds2.app
Authorization: Bearer 14|PdsNjlFjl9MwSEuXhXs1xdgXRFwHQ4mQKgRjNsfH4b750a06
Accept: application/jsonRate limit
Po default-u, rate limit je određen tvojim planom. Kastom ograničenje može biti podešeno po zahtevu.
| Plan | Zahteva/min | WebSocket |
|---|---|---|
| Free | 60 | ✅ |
| Starter | 600 | ✅ |
| Pro | 3000 | ✅ |
| Enterprise | 10000 (ili custom) | ✅ |
Svaki odgovor ima headere:
http
X-RateLimit-Limit: 3000
X-RateLimit-Remaining: 2847Kad prekoračiš limit
Server vraća 429 Too Many Requests:
http
HTTP/1.1 429 Too Many Requests
Retry-After: 42
Content-Type: application/json
{
"message": "Rate limit exceeded",
"limit_per_minute": 3000,
"retry_after_seconds": 42
}Pauziraj Retry-After sekundi pre sledećeg zahteva.
Greške
| Kod | Značenje | Akcija |
|---|---|---|
401 | Nema ili nevalidan token | Proveri Authorization header |
402 | Nalog suspendovan / istekao | Javi se nama |
403 | Takmičenje van tvoje pretplate | Proširi pretplatu |
404 | Resurs ne postoji | Proveri ID |
422 | Nevalidan parametar | Vidi response body |
429 | Rate limit | Pauziraj i retry |
Tokeni i sigurnost
- Čuvaj token kao lozinku — nikad u git, JS bundle, ili javni kod.
- Koristi ga isključivo sa server strane (ne expose-uj na frontend).
- Za browser aplikacije, pravite proxy endpoint na vašem serveru koji dodaje token.
- Ako sumnjaš da je iscureo — odmah nam javi, revokujemo u roku od nekoliko minuta.
- Možeš imati više tokena po nalogu (npr. staging / production razdvojeno).