Przejdź do głównej treści
D1 Arena

D1 Arena

Loading...

D1 Arena

API programisty

Społeczność

API programisty

Twórz boty, nakładki, narzędzia do transmisji strumieniowej i integracje z danymi D1Arena.

Uwierzytelnianie

Wszystkie żądania API wymagają klucza API przekazanego w nagłówku X-API-Key / Authorization: Bearer.

# Example request curl -H "X-API-Key: d1_your_api_key_here" \ https://d1arena.com/api/v1/streams

Aby utworzyć klucz API, przejdź do Ustawienia programisty w panelu kontrolnym. Możesz mieć maksymalnie 5 kluczy.

Żądania API są ograniczone szybkością przypadającą na klucz API. Po przekroczeniu limitu żądania zwracają 429 Too Many Requests z nagłówkiem Retry-After.

Bazowy adres URL

https://d1arena.com/api/v1

Wszystkie punkty końcowe zwracają JSON. Paginowane punkty końcowe obejmują obiekt meta z current_page, last_page i total.

Strumienie

GET /streams
Lista aktualnie transmitowanych transmisji na żywo. Obsługuje paginację i filtrowanie kategorii.
ParametrTypOpis
category_idintegerFiltruj według identyfikatora gry/kategorii
limitintegerWyniki na stronę (domyślnie: 20)
pageintegerNumer strony
Odpowiedź
{ "data": [ { "id": 42, "name": "ProGamer99", "user_slug": "progamer99", "profile_img": "profile/abc123.jpg", "stream_title": "Ranked Grind - Road to Champion", "stream_category_id": 5, "is_vertical_stream": false, "platform_tier": "pro" } ], "meta": { "current_page": 1, "last_page": 1, "total": 3 } }
GET /streams/{slug}
Uzyskaj status na żywo pojedynczego streamera i szczegóły transmisji według nazwy użytkownika lub ślimaka.
Odpowiedź
{ "data": { "user_id": 42, "name": "ProGamer99", "slug": "progamer99", "is_live": true, "stream_title": "Ranked Grind", "category_id": 5, "is_vertical": false, "platform_tier": "pro", "profile_img": "profile/abc123.jpg" } }

Kategorie

GET /categories
Lista wszystkich kategorii gier. Obsługuje wyszukiwanie i paginację.
ParametrTypOpis
searchstringFiltruj kategorie według nazwy
limitintegerWyniki na stronę (domyślnie: 50)
Odpowiedź
{ "data": [ { "id": 5, "name": "Call of Duty", "slug": "call-of-duty", "image": "categories/cod.png" } ], "meta": { "total": 24 } }

Użytkownicy

GET /users/{slug}
Uzyskaj publiczny profil gracza i statystyki rywalizacji według nazwy użytkownika lub ślimaka.
Odpowiedź
{ "data": { "user": { "id": 42, "name": "ProGamer99", "user_slug": "progamer99", "profile_img": "profile/abc.jpg", "bio": "Competitive FPS player", "platform_tier": "pro", "is_live": "1", "stream_title": "Ranked", "gold": 3, "silver": 1, "bronze": 0 }, "stats": { "elo_rating": 1842, "total_tournaments": 27, "win_rate": 64.5, "total_earnings": 1250.00 } } }

Klipy

GET /clips
Lista klipów publicznych. Obsługuje filtrowanie według streamera i kategorii.
ParametrTypOpis
streamer_idintegerFiltruj klipy według identyfikatora użytkownika streamera
category_idintegerFiltruj według identyfikatora gry/kategorii
limitintegerWyniki na stronę (domyślnie: 20)
Odpowiedź
{ "data": [ { "id": 99, "streamer_id": 42, "stream_category_id": 5, "title": "Insane 1v4 clutch", "slug": "insane-1v4-clutch-abc", "duration": 28, "view_count": 412, "is_auto_clip": false, "created_at": "2026-03-15T18:30:00.000000Z", "streamer": { "id": 42, "name": "ProGamer99", "user_slug": "progamer99" } } ], "meta": { "total": 156 } }
GET /clips/{slug}
Uzyskaj szczegóły pojedynczego klipu za pomocą ślimaka.
Odpowiedź
{ "data": { "id": 99, "title": "Insane 1v4 clutch", "slug": "insane-1v4-clutch-abc", "description": "Final round comeback", "duration": 28, "view_count": 412, "streamer": { "id": 42, "name": "ProGamer99" }, "creator": { "id": 55, "name": "ClipMaster" }, "stream_category": { "id": 5, "name": "Call of Duty" } } }

Turnieje

GET /tournaments
Lista turniejów. Obsługuje filtrowanie według statusu i ligi.
ParametrTypOpis
statusstringFiltruj według statusu (np. open, in_progress, completed)
league_idintegerFiltruj według identyfikatora ligi
limitintegerWyniki na stronę (domyślnie: 20)
Odpowiedź
{ "data": [ { "id": 15, "title": "Friday Night Frenzy", "tournament_type": "single_elimination", "status": "open", "registration_fee": "5.00", "no_player": 32, "team": 0, "category": { "id": 5, "name": "Call of Duty" }, "start_date": "2026-03-28T20:00:00.000000Z" } ], "meta": { "current_page": 1, "last_page": 2, "total": 24 } }
GET /tournaments/{id}
Uzyskaj szczegółowe informacje o turnieju i liczbie uczestników.
Odpowiedź
{ "data": { "id": 15, "title": "Friday Night Frenzy", "tournament_type": "single_elimination", "status": "open", "registration_fee": "5.00", "no_player": 32, "team": 0 }, "meta": { "participant_count": 18 } }

Rankingi ELO

GET /elo/leaderboard
Zdobądź ranking ELO. Opcjonalnie filtruj według kategorii gry.
ParametrTypOpis
category_idintegerFiltruj według identyfikatora gry/kategorii
limitintegerLiczba wyników (domyślnie: 50)
Odpowiedź
{ "data": [ { "rank": 1, "user_id": 42, "name": "ProGamer99", "user_slug": "progamer99", "elo_rating": 2150, "wins": 45, "losses": 12, "win_rate": 78.9, "profile_img": "profile/abc123.jpg" } ], "meta": { "total": 312 } }

Ligi

GET /leagues
Lista lig z opcjonalnymi filtrami statusu i kategorii.
ParametrTypOpis
statusstringFiltruj według statusu ligi
category_idintegerFiltruj według identyfikatora gry/kategorii
limitintegerWyniki na stronę (domyślnie: 20)
Odpowiedź
{ "data": [ { "id": 3, "name": "Spring 2026 Pro League", "status": "active", "category": { "id": 5, "name": "Call of Duty" }, "total_participants": 48, "start_date": "2026-03-01", "end_date": "2026-05-31" } ], "meta": { "current_page": 1, "last_page": 1, "total": 6 } }
GET /leagues/{id}/standings
Uzyskaj rankingi ligowe (rankingi graczy według punktów).
Odpowiedź
{ "data": [ { "id": 1, "points": 2400, "wins": 12, "losses": 3, "user": { "id": 42, "name": "ProGamer99", "user_slug": "progamer99" } } ], "meta": { "total": 48 } }

Odpowiedzi na błędy

Wszystkie błędy zwracają spójną kopertę JSON. Obiekt error zawsze zawiera odczytywalny maszynowo code i message czytelny dla człowieka.

Format odpowiedzi na błąd
{ "success": false, "error": { "code": "not_found", "message": "The requested resource could not be found." } }
Format błędu walidacji (422)
{ "success": false, "error": { "code": "validation_error", "message": "The given data was invalid.", "errors": { "category_id": ["The category id must be an integer."], "limit": ["The limit must not be greater than 100."] } } }

Kody stanu

200
OK — Żądanie powiodło się. Odpowiedź zawiera żądane dane.
400
Złe żądanie — Żądanie jest zniekształcone lub brakuje w nim wymaganych parametrów. Sprawdź error.message, aby poznać szczegóły.
401
Nieautoryzowany Dostęp — Missing or invalid API key. Ensure you're passing a valid key in the X-API-Key header.
403
Zabronione — Twój klucz API został wyłączony lub nie ma uprawnień do tego zasobu. Sprawdź swoje Ustawienia programisty.
404
Nie Znaleziono — Żądany zasób nie istnieje. Sprawdź ślimak, identyfikator lub ścieżkę punktu końcowego.
422
Błąd walidacji — Parametry żądania nie powiodły się. Obiekt error.errors odwzorowuje nazwy pól na ich konkretne problemy.
429
Ograniczona stawka — Zbyt wiele żądań. Nagłówek Retry-After wskazuje, ile sekund należy czekać przed ponowną próbą.
500
Błąd Serwera — Po naszej stronie wystąpił nieoczekiwany błąd. Jeśli to będzie się utrzymywać, skontaktuj się z pomocą techniczną.

Odniesienie do kodów błędów

KodStan HTTPOpis
invalid_api_key401Brakuje klucza API, jest on zniekształcony lub nie istnieje
api_key_disabled403Klucz API został unieważniony lub wyłączony
not_found404Nie można znaleźć żądanego zasobu
validation_error422Co najmniej jeden parametr żądania jest nieprawidłowy
rate_limited429Przekroczono limit częstotliwości żądań dla tego klucza API
server_error500Wewnętrzny błąd serwera — spróbuj ponownie lub skontaktuj się z pomocą techniczną

Limity stawek

Żądania API są ograniczone szybkością przypadającą na klucz API. Po przekroczeniu limitu żądania zwracają 429 Too Many Requests z nagłówkiem Retry-After.

Limity według poziomu

PoziomŻądania / minuta (Domyślny)Maksymalne klucze
Rozrusznik (Bezpłatny)605
ZAWODOWIEC605
Ostateczny605
Partner605

Nagłówki limitów szybkości

Żądania API są ograniczone szybkością przypadającą na klucz API. Po przekroczeniu limitu żądania zwracają 429 Too Many Requests z nagłówkiem Retry-After.

NagłówekOpis
Retry-AfterSekundy oczekiwania przed ponowną próbą (występuje tylko w przypadku 429 odpowiedzi)

Najlepsze praktyki

Wskazówki, jak trzymać się limitów:
  • Cache responses locally — stream and tournament data doesn't change every second.
  • Subskrybuj webhooks, aby uzyskać zdarzenia w czasie rzeczywistym zamiast odpytywania punktów końcowych.
  • Tam, gdzie to możliwe, żądania wsadowe — użyj parametrów filtru, aby uzyskać dokładnie to, czego potrzebujesz w mniejszej liczbie połączeń.

Webhooki (EventSub)

Subskrybuj powiadomienia push w czasie rzeczywistym zamiast odpytywania. Gdy wystąpi zdarzenie, D1Arena wysyła komunikat HTTP POST na adres URL wywołania zwrotnego z ładunkiem JSON podpisanym za pomocą HMAC-SHA256.

Konfiguracja

Utwórz subskrypcje webhooka w Ustawienia programisty. Każda subskrypcja wymaga:

  • Adres URL wywołania zwrotnego — Publicznie dostępny punkt końcowy HTTPS na Twoim serwerze.
  • Wydarzenia — Jeden lub więcej typów wydarzeń do subskrybowania.

You'll receive a whsec_ signing secret upon creation. Store it securely — it's shown only once.

Format ładunku

Każda dostawa webhooka wysyła treść JSON o następującej strukturze:

{ "id": "evt_a1b2c3d4e5f6", "event": "stream.online", "created_at": "2026-03-23T14:30:00Z", "data": { // Event-specific fields (see examples below) } }

Nagłówki

Każda dostawa zawiera następujące nagłówki do routingu i weryfikacji:

NagłówekOpis
Content-Typeapplication/json
X-D1Arena-EventTyp zdarzenia (np. stream.online)
X-D1Arena-SignatureSkrót szesnastkowy HMAC-SHA256 surowej treści żądania
X-D1Arena-Signature-VersionFormat klucza podpisującego: v2 dla bieżących subskrypcji lub v1-hashed-secret dla starszych subskrypcji
X-D1Arena-Delivery-IdUnikalny identyfikator UUID dostawy — użyj do deduplikacji
X-D1Arena-TimestampUnixowy znacznik czasu wysłania zdarzenia

Weryfikacja podpisów

Zawsze sprawdzaj nagłówek X-D1Arena-Signature przed przetworzeniem webhooka. Podpis jest obliczany jakoHMAC-SHA256(raw_body, webhook_secret).

W przypadku dostaw v2 użyj sekretu whsec_ pokazanego podczas tworzenia subskrypcji. W przypadku dostawy v1-hashed-secret przed aktualizacją najpierw oblicz SHA256(whsec_secret) z oryginalnego sekretu i użyj wynikowego skrótu szesnastkowego małymi literami jako klucza HMAC. Utwórz ponownie subskrypcję, jeśli będzie to możliwe, aby przejść do v2.

PHP
// Get the raw body and signature header $payload = file_get_contents('php://input'); $signature = $_SERVER['HTTP_X_D1ARENA_SIGNATURE'] ?? ''; // Compute expected signature $expected = hash_hmac('sha256', $payload, $webhookSecret); // Constant-time comparison to prevent timing attacks if (!hash_equals($expected, $signature)) { http_response_code(401); exit('Invalid signature'); } $event = json_decode($payload, true);
Node.js
const crypto = require('crypto'); app.post('/webhook', (req, res) => { const payload = req.rawBody; // Ensure raw body is available const signature = req.headers['x-d1arena-signature']; const expected = crypto .createHmac('sha256', WEBHOOK_SECRET) .update(payload) .digest('hex'); if (!crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(signature) )) { return res.status(401).send('Invalid signature'); } const event = JSON.parse(payload); // Process event... res.status(200).send('OK'); });
Pyton
import hmac, hashlib, json def handle_webhook(request): payload = request.body signature = request.headers.get('X-D1Arena-Signature', '') expected = hmac.new( WEBHOOK_SECRET.encode(), payload, hashlib.sha256 ).hexdigest() if not hmac.compare_digest(expected, signature): return HttpResponse(status=401) event = json.loads(payload) # Process event... return HttpResponse(status=200)

Dostępne wydarzenia

WydarzenieOpis
stream.onlineStreamer zaczął transmitować na żywo
stream.offlineStreamer przeszedł w tryb offline
channel.followUżytkownik obserwował kanał
channel.subscribeNowa subskrypcja dla wspierających na kanale
channel.tipWskazówka została wysłana do streamera
tournament.startedRozpoczęła się gra turniejowa
tournament.endedTurniej dobiegł końca
tournament.match.completedWynik meczu został zarejestrowany
clip.createdZ transmisji na żywo powstał nowy klip
overdrive.startedD1 Frenzy rozpoczęło się na kanale
overdrive.level_upD1 Frenzy awansowało na kolejny poziom
overdrive.endedD1 Frenzy ukończone lub wygasłe

Przykłady ładunku zdarzeń

stream.online

{ "id": "evt_a1b2c3d4e5f6", "event": "stream.online", "created_at": "2026-03-23T14:30:00Z", "data": { "user_id": 42, "user_slug": "progamer99", "name": "ProGamer99", "stream_title": "Ranked Grind - Road to Champion", "category_id": 5, "category_name": "Call of Duty", "protocol": "RTMP", "started_at": "2026-03-23T14:30:00Z" } }

stream.offline

{ "id": "evt_f6e5d4c3b2a1", "event": "stream.offline", "created_at": "2026-03-23T17:45:00Z", "data": { "user_id": 42, "user_slug": "progamer99", "duration_seconds": 11700, "vod_id": 281 } }

channel.follow

{ "id": "evt_c1d2e3f4a5b6", "event": "channel.follow", "created_at": "2026-03-23T15:10:00Z", "data": { "follower_id": 88, "follower_slug": "newplayer", "followed_id": 42, "followed_slug": "progamer99" } }

channel.tip

{ "id": "evt_d1e2f3a4b5c6", "event": "channel.tip", "created_at": "2026-03-23T16:20:00Z", "data": { "streamer_id": 42, "streamer_slug": "progamer99", "tipper_id": 55, "tipper_slug": "clipmaster", "amount": "5.00", "currency": "USD", "message": "Great stream!" } }

tournament.match.completed

{ "id": "evt_e1f2a3b4c5d6", "event": "tournament.match.completed", "created_at": "2026-03-23T21:15:00Z", "data": { "tournament_id": 15, "tournament_title": "Friday Night Frenzy", "match_id": 204, "round": 2, "winner": { "id": 42, "slug": "progamer99", "name": "ProGamer99" }, "loser": { "id": 77, "slug": "rival_x", "name": "Rival_X" }, "score": "3-1" } }

clip.created

{ "id": "evt_b1c2d3e4f5a6", "event": "clip.created", "created_at": "2026-03-23T15:45:00Z", "data": { "clip_id": 99, "slug": "insane-1v4-clutch-abc", "title": "Insane 1v4 clutch", "duration": 28, "streamer_id": 42, "streamer_slug": "progamer99", "creator_id": 55, "creator_slug": "clipmaster", "category_id": 5 } }

Zasady dotyczące dostaw i ponawiania prób

PróbaOpóźnienieNotatki
1. (początkowe)NatychmiastoweWysłane w ciągu kilku sekund od zdarzenia
2. (ponowna próba)30 sekundJeśli pierwsza próba zakończy się niepowodzeniem lub upłynie limit czasu
3. (ponowna próba)2 minutyWykładniczy zwrot
4. (finał)10 minutOstatnia próba przed oznaczeniem jako nieudana
Important: Your endpoint must respond with a 2xx status within 10 sekund. Non-2xx responses or timeouts trigger a retry. After 10 kolejnych niepowodzeń, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in Ustawienia programisty.

Najlepsze praktyki

  • Zawsze sprawdzaj podpisy przed przetworzeniem ładunku, aby zapobiec sfałszowanym zdarzeniom.
  • Użyj identyfikatora dostawy do deduplikacji — ponowne próby wysyłają ten sam identyfikator, dlatego przechowuj przetworzone identyfikatory, aby uniknąć podwójnego przetwarzania.
  • Reaguj szybko, przetwarzaj asynchronicznie — return 200 OK natychmiast i zajmij się logiką biznesową w zadaniu w tle.
  • Używaj tylko punktów końcowych HTTPS — Adresy URL webhooka muszą używać protokołu TLS. Wywołania zwrotne HTTP są odrzucane.
  • Radź sobie z nieznanymi zdarzeniami z wdziękiem — mogą zostać dodane nowe typy zdarzeń. Zwróć 200 w przypadku nierozpoznanych zdarzeń, zamiast zgłaszać błędy.

Szał D1

D1 Frenzy uruchamiają się dzięki szybkim napiwkom i subskrypcjom, gdy streamer jest na żywo. Przechodzi przez 5 poziomów wraz ze wzrostem celów.

GET /api/overdrive/{streamerId}

Zdobądź aktywny D1 Frenzy dla streamera. Zwraca {"active": false}, jeśli żaden.

{ "active": true, "level": 2, "progress": 150, "target": 250, "progress_pct": 60.0, "total_contributions": 8, "total_contributors": 5, "expires_at": "2026-03-22T15:30:00+00:00" }

Cele poziomu

PoziomPunkty
1100
2250
3500
41,000
52,000

Szał D1 — Punkty: Wskazówka $1 → 100; Subskrypcja 500 × Poziom. Czas trwania: 5 Minuty; Czas odnowienia: 30 Minuty.

Rozszerzenie SDK

Twórz niestandardowe rozszerzenia paneli i nakładek, które streamerzy mogą instalować na stronach swoich kanałów. Rozszerzenia działają w ramkach iframe w trybie piaskownicy i komunikują się ze stroną hosta za pośrednictwem postMessage.

Pierwsze kroki

  1. Utwórz klucz API w Ustawienia programisty.
  2. Utwórz rozszerzenie jako samodzielną stronę HTML hostowaną w Twojej domenie (wymagany protokół HTTPS).
  3. Prześlij go do recenzji w sekcji Moje rozszerzenia.
  4. Po zatwierdzeniu streamerzy będą mogli zainstalować rozszerzenie z Marketplace rozszerzeń.

Typy rozszerzeń

TypLokalizacjaZachowanie
panelPoniżej odtwarzacza strumieniowegoWidoczne, gdy transmisja jest na żywo. Karta o pełnej szerokości, domyślna wysokość 300px.
overlayNad odtwarzaczem wideoWidoczne na żywo. Pozycja/rozmiar kontrolowany przez streamer za pomocą narzędzia do pozycjonowania nakładki.

API postMessage

Twoje rozszerzenie automatycznie otrzymuje dane kontekstowe podczas ładowania. Zaimplementuj te zdarzenia:

Dla każdej wiadomości użyj dokładnego źródła nadrzędnego D1Arena. Oficjalny SDK automatycznie uzyskuje i sprawdza to pochodzenie na podstawie umieszczanej strony.

Ponieważ ramki iframe rozszerzeń celowo korzystają z nieprzezroczystego źródła piaskownicy, host D1Arena uwierzytelnia dokładnie zarejestrowane okno iframe. Kod rozszerzenia musi nadal uwierzytelniać okno nadrzędne i dokładne pochodzenie D1Arena przed zaakceptowaniem kontekstu.

1. Sygnał gotowości

var d1ParentOrigin = 'https://d1arena.com'; // Tell the host page your extension is ready for context window.parent.postMessage({ type: 'D1_EXT_READY' }, d1ParentOrigin);

2. Odbierz kontekst

window.addEventListener('message', function(e) { if (e.source === window.parent && e.origin === d1ParentOrigin && e.data && e.data.type === 'D1_CONTEXT') { var ctx = e.data.payload; // ctx.channelId - Streamer's user ID // ctx.channelName - Streamer's display name // ctx.channelSlug - Streamer's URL slug // ctx.viewerId - Current viewer's ID (null if not logged in) // ctx.isLive - Whether the stream is currently live } });

3. Wyślij akcje (opcjonalnie)

// Redirect the host page (e.g. for a "Storm" button) window.parent.postMessage({ type: 'D1_EXT_ACTION', action: 'storm', target: 'username-slug' }, d1ParentOrigin);

Zakresy uprawnień

Zadeklaruj, jakich danych potrzebuje Twoje rozszerzenie. Recenzenci sprawdzają, czy Twój kod jest zgodny z zadeklarowanymi uprawnieniami.

ZakresPrzyznaje dostęp do
read:streamStan strumienia, tytuł, kategoria
read:viewersLiczba widzów i lista
read:chatWiadomości na czacie (za pośrednictwem kanału Pusher)
read:clipsKlipy kanału poprzez /api/clips/{slug}
read:tournamentsInformacje o aktywnym dopasowaniu poprzez /api/active-match/{id}
read:channelProfil kanału, obserwujący, harmonogram

Wymagania bezpieczeństwa

Rozszerzenia działają w iframe w piaskownicy z sandbox="allow-scripts". Twoje rozszerzenie nie mogę uzyskuje dostęp do plików cookie, localStorage lub wysyła uwierzytelnione żądania do d1arena.com.
  • Wymagany publiczny HTTPS — Adres URL ramki iframe musi używać TLS i być rozpoznawany wyłącznie na adresy sieci publicznej.
  • Źródło czytelne dla człowieka — Brak zaciemnionego lub zminimalizowanego kodu JavaScript. Recenzenci muszą mieć możliwość odczytania kodu.
  • Brak ładowania zewnętrznego skryptu chyba że zostało to zadeklarowane w zgłoszeniu. Biblioteki CDN (jQuery, Chart.js itp.) są w porządku.
  • Żadnej eksfiltracji danych — Rozszerzenia nie mogą wysyłać danych widzów do zewnętrznych usług analitycznych ani śledzących.
  • Polityka treści — Żadnych reklam, treści NSFW, wydobywania kryptowalut i złośliwego zachowania.

Proces przeglądu

StanZnaczenie
pendingPrzesłano, oczekuje na sprawdzenie przez administratora (zwykle 1–3 dni robocze).
approvedZatwierdzone i widoczne na rynku rozszerzeń.
rejectedOdrzucony z podaniem powodu. Napraw problemy i prześlij ponownie.
suspendedTymczasowo usunięte z powodu naruszenia zasad. Skontaktuj się z pomocą techniczną.

Aktualizacje wersji

Aby zaktualizować zatwierdzone rozszerzenie, usuń bieżącą wersję i prześlij nową ze zwiększonym numerem wersji. Nowa wersja przechodzi ponowną recenzję.

Dziennik zmian

Śledź zmiany API i nowe funkcje. Przestrzegamy wersjonowania semantycznego i ogłaszamy najważniejsze zmiany z co najmniej 30-dniowym wyprzedzeniem.

v1.0Marzec 2026
  • Pierwsza publiczna wersja API z uwierzytelnianiem za pomocą klucza API.
  • Strumienie: wyświetlaj listę transmisji na żywo i uzyskaj szczegółowe informacje o streamerze według ślimaka.
  • Kategorie: wyszukaj i wyświetl listę wszystkich kategorii gier.
  • Użytkownicy: profile publiczne ze statystykami rywalizacji, rankingiem ELO i liczbą medali.
  • Klipy: przeglądaj i pobieraj szczegóły klipów wraz z informacjami o nadawcy/twórcy.
  • Turnieje: wyświetlaj listę, filtruj według statusu/ligi, sprawdzaj liczbę uczestników.
  • Tabela liderów ELO: tabele wyników globalne i rankingowe według kategorii.
  • Ligi: wyświetla listę lig z rankingami i podziałem punktów.
  • Szaleństwo D1: Stan szału w czasie rzeczywistym dla dowolnego streamera.
  • Webhooki (EventSub): 12 typów wydarzeń, w tym transmisje, kanały, turnieje, klipy i wydarzenia Frenzy.
  • Limity stawek

Potrzebujesz pomocy?

Masz pytania dotyczące API? Skontaktuj się z nami.