Brzi start
Za 5 minuta pozivaš prvi endpoint. Ovaj vodič te vodi kroz: dobijanje token-a, prvi HTTP poziv, i prva WebSocket pretplata.
1. Dobij API token
API tokene izdajemo ručno nakon što dogovorimo paket. Pošalji nam email:
hello@ds2.app — reci za koja takmičenja te interesuje i u kojoj formi (samo HTTP, ili HTTP+WS).
Dobićeš Bearer token u formi:
14|PdsNjlFjl9MwSEuXhXs1xdgXRFwHQ4mQKgRjNsfH4b750a06⚠️ Čuvaj ga kao lozinku. Nikad ga ne commit-uj u git. Ako ti iscuri — javi nam, mi revokujemo + izdajemo novi.
2. Prvi HTTP poziv
Svi endpoint-i traže Authorization: Bearer {token} header. Proveri šta token autorizuje:
GET /api/v1/mebash
curl https://stats-api.ds2.app/api/v1/me \
-H "Authorization: Bearer YOUR_TOKEN"Odgovor:
json
{
"data": {
"client": {
"id": 12,
"name": "Acme Sports",
"plan": "pro",
"rate_limit_per_minute": 3000,
"allow_websocket": true
},
"access": {
"all_competitions": false,
"competition_ids": [4, 5],
"competition_count": 2
}
}
}3. Povuci tabelu takmičenja
GET /api/v1/competitions/{id}/standingsbash
curl https://stats-api.ds2.app/api/v1/competitions/4/standings \
-H "Authorization: Bearer YOUR_TOKEN"Vraća pozicije, bodove, razliku, pobede/poraze — autoritativno iz DScore-a (sa ispravnim head-to-head tiebreakerima).
4. Pretplati se na meč uživo
WebSocket pretplata dobija svaki stat event u <100ms. Prvo instaliraj klijente:
bash
npm install laravel-echo pusher-jsclient.jsjavascript
import Echo from 'laravel-echo'
import Pusher from 'pusher-js'
window.Pusher = Pusher
const echo = new Echo({
broadcaster: 'reverb',
key: 'stats-admin-public-key',
wsHost: 'stats-api.ds2.app',
wssPort: 443,
forceTLS: true,
enabledTransports: ['ws', 'wss'],
authEndpoint: 'https://stats-api.ds2.app/api/v1/broadcasting/auth',
auth: {
headers: {
Authorization: 'Bearer YOUR_TOKEN',
},
},
})
// Meč ID 123 — mora biti u takmičenju koje je u tvojoj pretplati
echo.private('match.123')
.listen('.event.received', (data) => {
console.log('Novi događaj:', data)
// data = { match_id, home_score, away_score, event: { type, team_id, player_id, x, y, ... } }
})
.listen('.status.changed', (data) => {
console.log('Status meča:', data.status)
})Sledeće
- Autentifikacija i rate limits — kako token radi, headeri, greške
- REST endpoint-i — kompletan spisak HTTP ruta
- WebSocket integration — kanali, događaji, auth flow
- Code primeri — snippet-i u Node.js, PHP, Python
Trebaš pomoć?
Piši nam, odgovaramo u roku od 24h.