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-js
client.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

Trebaš pomoć?
Piši nam, odgovaramo u roku od 24h.
hello@ds2.app