Vytvárajte roboty, prekrytia, streamovacie nástroje a integrácie s údajmi D1Arena.
Autentifikácia
Všetky požiadavky API vyžadujú kľúč API odovzdaný v hlavičke X-API-Key / Authorization: Bearer.
Ak chcete vytvoriť kľúč API, prejdite na Nastavenia vývojára na svojom informačnom paneli. Môžete mať až 5 kľúčov.
429 Too Many Requests s hlavičkou Retry-After.
Základná adresa URL
Všetky koncové body vracajú JSON. Stránkované koncové body zahŕňajú objekt meta s current_page, last_page a total.
Prúdy
| Parameter | Typ | Popis |
|---|---|---|
category_id | integer | Filtrujte podľa ID hry/kategórie |
limit | integer | Počet výsledkov na stránku (predvolená hodnota: 20) |
page | integer | Číslo strany |
kategórie
| Parameter | Typ | Popis |
|---|---|---|
search | string | Filtrujte kategórie podľa názvu |
limit | integer | Počet výsledkov na stránku (predvolená hodnota: 50) |
Používatelia
Klipy
| Parameter | Typ | Popis |
|---|---|---|
streamer_id | integer | Filtrujte klipy podľa ID používateľa streamera |
category_id | integer | Filtrujte podľa ID hry/kategórie |
limit | integer | Počet výsledkov na stránku (predvolená hodnota: 20) |
Turnaje
| Parameter | Typ | Popis |
|---|---|---|
status | string | Filtrujte podľa stavu (napr. open, in_progress, completed) |
league_id | integer | Filtrujte podľa ID ligy |
limit | integer | Počet výsledkov na stránku (predvolená hodnota: 20) |
Rebríček ELO
| Parameter | Typ | Popis |
|---|---|---|
category_id | integer | Filtrujte podľa ID hry/kategórie |
limit | integer | Počet výsledkov (predvolená hodnota: 50) |
ligy
| Parameter | Typ | Popis |
|---|---|---|
status | string | Filtrujte podľa stavu ligy |
category_id | integer | Filtrujte podľa ID hry/kategórie |
limit | integer | Počet výsledkov na stránku (predvolená hodnota: 20) |
Odpovede na chyby
Všetky chyby vracajú konzistentnú obálku JSON. Objekt error vždy obsahuje strojovo čitateľný code a človekom čitateľný message.
Stavové kódy
Odkaz na chybové kódy
| kód | Stav HTTP | Popis |
|---|---|---|
invalid_api_key | 401 | Kľúč API chýba, má nesprávny tvar alebo neexistuje |
api_key_disabled | 403 | Kľúč API bol odvolaný alebo zakázaný |
not_found | 404 | Požadovaný zdroj sa nepodarilo nájsť |
validation_error | 422 | Jeden alebo viacero parametrov požiadavky je neplatných |
rate_limited | 429 | Pre tento kľúč API bol prekročený limit počtu žiadostí |
server_error | 500 | Interná chyba servera – skúste to znova alebo kontaktujte podporu |
Obmedzenia sadzieb
Požiadavky API sú obmedzené rýchlosťou na kľúč API. Keď limit prekročíte, žiadosti vrátia 429 Too Many Requests s hlavičkou Retry-After.
Limity podľa úrovne
| Tier | Žiadosti / minúta (Predvolené) | Max Keys |
|---|---|---|
| Štartér (zadarmo) | 60 | 5 |
| PRO | 60 | 5 |
| Ultimate | 60 | 5 |
| Partner | 60 | 5 |
Hlavičky limitu sadzby
Požiadavky API sú obmedzené rýchlosťou na kľúč API. Keď limit prekročíte, žiadosti vrátia 429 Too Many Requests s hlavičkou Retry-After.
| Hlavička | Popis |
|---|---|
Retry-After | Sekundy čakania pred opätovným pokusom (prítomné iba pri 429 odpovediach) |
osvedčené postupy
- Cache responses locally — stream and tournament data doesn't change every second.
- Prihláste sa na odber webhooks pre udalosti v reálnom čase namiesto koncových bodov prieskumu.
- Dávkové požiadavky tam, kde je to možné – pomocou parametrov filtra získate presne to, čo potrebujete, za menej hovorov.
Webhooky (EventSub)
Prihláste sa na odber upozornení push v reálnom čase namiesto hlasovania. Keď nastane udalosť, D1Arena odošle HTTP POST na vašu URL spätného volania s JSON dátovým obsahom podpísaným pomocou HMAC-SHA256.
Nastavenie
Vytvorte odbery webhooku v Nastavenia vývojára. Každé predplatné vyžaduje:
- Adresa URL spätného volania — Verejne prístupný koncový bod HTTPS na vašom serveri.
- Udalosti — Jeden alebo viac typov udalostí na odber.
You'll receive a whsec_ signing secret upon creation. Store it securely — it's shown only once.
Formát užitočného zaťaženia
Každé doručenie webhooku odosiela telo JSON s touto štruktúrou:
Hlavičky
Každá dodávka obsahuje nasledujúce hlavičky na smerovanie a overenie:
| Hlavička | Popis |
|---|---|
Content-Type | application/json |
X-D1Arena-Event | Typ udalosti (napr. stream.online) |
X-D1Arena-Signature | HMAC-SHA256 hexadecimálny súhrn nespracovaného tela požiadavky |
X-D1Arena-Signature-Version | Formát podpisového kľúča: v2 pre aktuálne odbery alebo v1-hashed-secret pre staršie odbery |
X-D1Arena-Delivery-Id | Jedinečné UUID doručenia – použite na deduplikáciu |
X-D1Arena-Timestamp | Unix časová pečiatka, kedy bola udalosť odoslaná |
Overovanie podpisov
Pred spracovaním webhooku vždy overte hlavičku X-D1Arena-Signature. Podpis sa vypočíta ako HMAC-SHA256(raw_body, webhook_secret).
Pre dodávky v2 použite tajný kľúč whsec_ zobrazený pri vytvorení predplatného. V prípade doručenia v1-hashed-secret pred inováciou najskôr vypočítajte SHA256(whsec_secret) z tohto pôvodného tajného kľúča a použite výsledný hexadecimálny súhrn malých písmen ako kľúč HMAC. Keď to bude praktické, znova vytvorte predplatné a prejdite na v2.
Dostupné udalosti
| Udalosť | Popis |
|---|---|
| stream.online | Vysielal streamer |
| stream.offline | Streamer prešiel do režimu offline |
| channel.follow | Používateľ sledoval kanál |
| channel.subscribe | Nové odbery podporovateľov na kanáli |
| channel.tip | Streamerovi bol zaslaný tip |
| tournament.started | Turnajový zápas sa začal |
| tournament.ended | Skončil sa turnaj |
| tournament.match.completed | Bol zaznamenaný výsledok zápasu |
| clip.created | Zo živého prenosu bol vytvorený nový klip |
| overdrive.started | D1 Frenzy začalo na kanáli |
| overdrive.level_up | D1 Frenzy postúpil do ďalšej úrovne |
| overdrive.ended | D1 Frenzy dokončená alebo vypršala |
Príklady užitočného zaťaženia udalosti
stream.online
stream.offline
channel.follow
channel.tip
tournament.match.completed
clip.created
Pravidlá doručenia a opätovného pokusu
| Pokus | Oneskorenie | Poznámky |
|---|---|---|
| 1. (počiatočné) | Okamžité | Odoslané do niekoľkých sekúnd od udalosti |
| 2. (skúsiť znova) | 30 sekúnd | Ak prvý pokus zlyhá alebo vyprší časový limit |
| 3. (skúsiť znova) | 2 minúty | Exponenciálny ústup |
| 4. (finále) | 10 minút | Posledný pokus pred označením ako neúspešný |
2xx status within 10 sekúnd. Non-2xx responses or timeouts trigger a retry. After 10 po sebe idúcich zlyhaní, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in Nastavenia vývojára.
osvedčené postupy
- Vždy overujte podpisy pred spracovaním dát, aby sa predišlo falošným udalostiam.
- Na deduplikáciu použite Delivery-Id — opakované pokusy odosielajú rovnaké ID, takže spracované ID ukladajte, aby ste predišli dvojitému spracovaniu.
- Reagujte rýchlo, spracujte asynchrónne — okamžite vráťte
200 OKa spravujte obchodnú logiku v úlohe na pozadí. - Používajte iba koncové body HTTPS — Webové adresy webhooku musia používať TLS. Spätné volania HTTP sú odmietnuté.
- Zvládajte neznáme udalosti s gráciou — môžu byť pridané nové typy udalostí. Vráťte
200pre nerozpoznané udalosti, nie pre chybu.
D1 Frenzy
D1 Frenzy sa spúšťa rýchlymi tipmi a odbermi, keď je streamer naživo. Postupuje cez 5 úrovní s rastúcimi cieľmi.
GET /api/overdrive/{streamerId}
Získajte aktívnu D1 Frenzy pre streamera. Ak žiadne, vráti {"active": false}.
Úroveň cieľov
| úroveň | Body |
|---|---|
| 1 | 100 |
| 2 | 250 |
| 3 | 500 |
| 4 | 1,000 |
| 5 | 2,000 |
D1 Frenzy — Body: Tip $1 → 100; Predplatné 500 × Tier. Trvanie: 5 Minúty; Cooldown: 30 Minúty.
Rozšírenie SDK
Vytvorte si vlastný panel a prekryvné rozšírenia, ktoré si streameri môžu nainštalovať na svoje stránky kanála. Rozšírenia sa spúšťajú v rámcoch iframe v karanténe a komunikujú s hostiteľskou stránkou prostredníctvom postMessage.
Začíname
- Vytvorte kľúč API v Nastavenia vývojára.
- Zostavte svoje rozšírenie ako samostatnú stránku HTML hostenú na vašej doméne (vyžaduje sa HTTPS).
- Odošlite ho na kontrolu v sekcii Moje rozšírenia.
- Po schválení si ho streameri môžu nainštalovať z Extension Marketplace.
Typy rozšírení
| Typ | Poloha | Správanie |
|---|---|---|
panel | Pod prehrávačom streamov | Viditeľné pri priamom prenose. Karta s plnou šírkou, predvolená výška 300 pixelov. |
overlay | Cez prehrávač videa | Viditeľné naživo. Poloha/veľkosť ovládaná streamerom pomocou nástroja na polohovanie prekrytia. |
postMessage API
Vaše rozšírenie prijíma kontextové údaje automaticky pri načítaní. Implementujte tieto udalosti:
Pre každú správu použite presný nadradený pôvod D1Arena. Oficiálny SDK odvodzuje a overuje tento pôvod zo stránky vkladania automaticky.
Keďže prvky iframe rozšírenia zámerne používajú nepriehľadný pôvod v karanténe, hostiteľ D1Arena overuje presné zaregistrované okno prvku iframe. Kód rozšírenia musí pred prijatím kontextu overiť rodičovské okno a presný pôvod D1Arena.
1. Pripravenosť na signál
2. Prijať kontext
3. Odoslať akcie (voliteľné)
Rozsahy povolení
Uveďte, aké údaje vaše rozšírenie potrebuje. Recenzenti overia, či váš kód zodpovedá vašim deklarovaným povoleniam.
| Rozsah | Udeľuje prístup k |
|---|---|
read:stream | Stav streamu, názov, kategória |
read:viewers | Počet a zoznam divákov |
read:chat | Chatové správy (cez kanál Pusher) |
read:clips | Klipy kanálov cez /api/clips/{slug} |
read:tournaments | Informácie o aktívnom zápase cez /api/active-match/{id} |
read:channel | Profil kanála, sledovatelia, plán |
Bezpečnostné požiadavky
sandbox="allow-scripts". Vaše rozšírenie nemôže pristupuje k súborom cookie, localStorage alebo odosiela overené požiadavky na d1arena.com.
- Vyžaduje sa verejné HTTPS — Vaša adresa URL prvku iframe musí používať TLS a musí sa prenášať iba na adresy verejnej siete.
- Ľudsky čitateľný zdroj — Žiadny zahmlený alebo iba miniifikovaný JavaScript. Recenzenti musia byť schopní prečítať váš kód.
- Žiadne externé načítanie skriptu pokiaľ nie je uvedené vo vašom podaní. Knižnice CDN (jQuery, Chart.js atď.) sú v poriadku.
- Žiadna exfiltrácia údajov — Rozšírenia nesmú odosielať údaje divákov do analytických alebo sledovacích služieb tretích strán.
- Pravidlá pre obsah — Žiadne reklamy, obsah NSFW, ťažba kryptomien ani škodlivé správanie.
Proces kontroly
| Stav | Význam |
|---|---|
| pending | Odoslané, čaká sa na kontrolu správcu (zvyčajne 1 – 3 pracovné dni). |
| approved | Schválené a viditeľné na trhu rozšírení. |
| rejected | Odmietnuté s dôvodom. Opravte problémy a znova odošlite. |
| suspended | Dočasne odstránené pre porušenie pravidiel. Kontaktujte podporu. |
Aktualizácie verzií
Ak chcete aktualizovať schválené rozšírenie, odstráňte aktuálnu verziu a odošlite novú so zvýšeným číslom verzie. Nová verzia opäť prechádza kontrolou.
Denník zmien
Sledujte zmeny API a nové funkcie. Dodržiavame sémantické verzie a oznamujeme prelomové zmeny najmenej 30 dní vopred.
- Počiatočné verejné vydanie API s autentifikáciou kľúčom API.
- Streamy: Uveďte zoznam priamych prenosov a získajte podrobnosti o streame podľa jednotlivých záberov.
- Kategórie: Vyhľadajte a uveďte všetky kategórie hier.
- Používatelia: Verejné profily s konkurenčnými štatistikami, hodnotením ELO a počtom medailí.
- Klipy: Prehliadajte a získavajte podrobnosti o klipe s informáciami o streamerovi/tvorcovi.
- Turnaje: zoznam, filtrovanie podľa stavu/ligy, získanie počtu účastníkov.
- Výsledková tabuľka ELO: Globálne výsledkové tabuľky a rebríčky podľa kategórií.
- Ligy: Zoznam líg s tabuľkami a bodovými rozpismi.
- D1 Frenzy: Stav šialenstva v reálnom čase pre každého streamera.
- Webhooky (EventSub): 12 typov udalostí vrátane streamov, kanálov, turnajov, klipov a udalostí Frenzy.
- Obmedzenia sadzieb
Potrebujete pomoc?
Máte otázky týkajúce sa API? Kontaktujte nás.