REST endpoint-i
Base URL: https://stats-api.ds2.app/api/v1 — svi endpoint-i zahtevaju Bearer token i vraćaju JSON.
Meta
GET
/meVraća informacije o nalogu: plan, rate limit, lista dozvoljenih takmičenja.
Takmičenja
GET
/competitionsLista svih takmičenja na koja imaš pristup.
GET
/competitions/{id}/standingsTabela takmičenja sa pozicijama, bodovima i diferencijom. Autoritativno iz DScore-a.
GET
/competitions/{id}/scheduleUtakmice takmičenja. Parametri: time=upcoming|past|all (default upcoming), limit, round.
GET
/competitions/{id}/teamsTimovi u trenutnoj sezoni sa klubom i logom.
Mečevi
GET
/matches/{id}Metadata meča: timovi, rezultat, dvorana, sudije, linkovi.
GET
/matches/{id}/box-scoreBox score po igraču (Indeks/PIR + šut statistika) + team totals + shot chart koordinate.
GET
/matches/{id}/play-by-playHronološki events — tip, igrač, period, clock, x/y za šuteve.
Igrači
GET
/players/{id}Profil igrača, per-match stats, career totals, career records po EBR-u, shot chart.
WebSocket auth
POST
/broadcasting/authPusher-kompatibilan signed auth za private channel subscription. Koriste ga Echo/Pusher SDK-ovi automatski.
Primer: ticker za takmičenje
bash
# 1. Dobij upcoming utakmice
curl "https://stats-api.ds2.app/api/v1/competitions/4/schedule?time=upcoming&limit=10" \
-H "Authorization: Bearer YOUR_TOKEN"
# 2. Za svaku, subscribe na private-match.{id} (WebSocket)
# 3. Primeni update-ove na UI bez polling-aResponse format
Svi odgovori su obmotani u { data: ... }. Liste su direktno udata (nizu), ili paginated sa data.data kao nizom unutra.
json
{
"data": {
"teams": [
{ "position": 1, "name": "KK Mega Super", "wins": 19, "losses": 2, "points": 40 },
{ "position": 2, "name": "KK Dynamic BG", "wins": 18, "losses": 3, "points": 39 }
]
}
}Verzionisanje
V1 je stabilan. Breaking izmene (refaktor response shape-a, preimenovanje polja) idu u novu verziju /api/v2 sa deprecation najavom minimum 90 dana unapred. Nove opcije i polja mogu biti dodate u V1 bez breaking promene.