Vytvářejte roboty, překryvy, nástroje pro streamování a integrace s daty D1Arena.
Autentizace
Všechny požadavky API vyžadují klíč API předaný v záhlaví X-API-Key / Authorization: Bearer.
Chcete-li vytvořit klíč API, přejděte na Nastavení vývojáře na hlavním panelu. Můžete mít až 5 klíčů.
429 Too Many Requests se záhlavím Retry-After.
Základní URL
Všechny koncové body vracejí JSON. Stránkované koncové body zahrnují objekt meta s current_page, last_page a total.
Proudy
| Parametr | Typ | Popis |
|---|---|---|
category_id | integer | Filtrujte podle ID hry/kategorie |
limit | integer | Počet výsledků na stránku (výchozí: 20) |
page | integer | Číslo stránky |
kategorie
| Parametr | Typ | Popis |
|---|---|---|
search | string | Filtrujte kategorie podle názvu |
limit | integer | Počet výsledků na stránku (výchozí: 50) |
Uživatelé
Klipy
| Parametr | Typ | Popis |
|---|---|---|
streamer_id | integer | Filtrujte klipy podle ID uživatele streamera |
category_id | integer | Filtrujte podle ID hry/kategorie |
limit | integer | Počet výsledků na stránku (výchozí: 20) |
Turnaje
| Parametr | Typ | Popis |
|---|---|---|
status | string | Filtrovat podle stavu (např. open, in_progress, completed) |
league_id | integer | Filtrujte podle ID ligy |
limit | integer | Počet výsledků na stránku (výchozí: 20) |
Žebříček ELO
| Parametr | Typ | Popis |
|---|---|---|
category_id | integer | Filtrujte podle ID hry/kategorie |
limit | integer | Počet výsledků (výchozí: 50) |
ligy
| Parametr | Typ | Popis |
|---|---|---|
status | string | Filtrujte podle stavu ligy |
category_id | integer | Filtrujte podle ID hry/kategorie |
limit | integer | Počet výsledků na stránku (výchozí: 20) |
Odezvy na chyby
Všechny chyby vracejí konzistentní obálku JSON. Objekt error vždy obsahuje strojově čitelný code a člověkem čitelný message.
Stavové kódy
Odkaz na chybové kódy
| kód | Stav HTTP | Popis |
|---|---|---|
invalid_api_key | 401 | Klíč API chybí, má nesprávný formát nebo neexistuje |
api_key_disabled | 403 | Klíč API byl odvolán nebo zakázán |
not_found | 404 | Požadovaný zdroj nebyl nalezen |
validation_error | 422 | Jeden nebo více parametrů požadavku je neplatných |
rate_limited | 429 | U tohoto klíče API byl překročen limit počtu požadavků |
server_error | 500 | Interní chyba serveru – zkuste to znovu nebo kontaktujte podporu |
Omezení sazby
Požadavky API jsou omezeny rychlostí na klíč API. Když limit překročíte, požadavky vrátí 429 Too Many Requests se záhlavím Retry-After.
Limity podle úrovně
| Tier | Požadavky / minuta (Výchozí) | Max Keys |
|---|---|---|
| Startér (zdarma) | 60 | 5 |
| PRO | 60 | 5 |
| konečný | 60 | 5 |
| Partner | 60 | 5 |
Záhlaví limitu sazby
Požadavky API jsou omezeny rychlostí na klíč API. Když limit překročíte, požadavky vrátí 429 Too Many Requests se záhlavím Retry-After.
| Záhlaví | Popis |
|---|---|
Retry-After | Sekundy čekání před dalším pokusem (přítomno pouze u 429 odpovědí) |
Nejlepší postupy
- Cache responses locally — stream and tournament data doesn't change every second.
- Přihlaste se k odběru webhooks pro události v reálném čase namísto koncových bodů hlasování.
- Dávkové požadavky tam, kde je to možné – pomocí parametrů filtru získáte přesně to, co potřebujete, za méně hovorů.
Webhooky (EventSub)
Přihlaste se k odběru oznámení push v reálném čase namísto dotazování. Když dojde k události, D1Arena odešle HTTP POST na vaši URL zpětného volání s JSON datovou částí podepsanou pomocí HMAC-SHA256.
Nastavení
Vytvořte předplatné webhooku v Nastavení vývojáře. Každé předplatné vyžaduje:
- Adresa URL zpětného volání — Veřejně přístupný koncový bod HTTPS na vašem serveru.
- Události — Jeden nebo více typů událostí k odběru.
You'll receive a whsec_ signing secret upon creation. Store it securely — it's shown only once.
Formát užitečného zatížení
Každé doručení webhooku odesílá tělo JSON s touto strukturou:
Záhlaví
Každá dodávka obsahuje následující hlavičky pro směrování a ověření:
| Záhlaví | Popis |
|---|---|
Content-Type | application/json |
X-D1Arena-Event | Typ události (např. stream.online) |
X-D1Arena-Signature | HMAC-SHA256 hex digest nezpracovaného těla požadavku |
X-D1Arena-Signature-Version | Formát podpisového klíče: v2 pro aktuální předplatná nebo v1-hashed-secret pro starší předplatná |
X-D1Arena-Delivery-Id | Jedinečné UUID doručení — použijte pro deduplikaci |
X-D1Arena-Timestamp | Unixové časové razítko, kdy byla událost odeslána |
Ověřování podpisů
Před zpracováním webhooku vždy ověřte záhlaví X-D1Arena-Signature. Podpis je vypočítán jako HMAC-SHA256(raw_body, webhook_secret).
Pro dodávky v2 použijte tajný klíč whsec_ zobrazený při vytvoření předplatného. Pro doručení v1-hashed-secret před upgradem nejprve vypočítejte SHA256(whsec_secret) z tohoto původního tajného klíče a použijte výsledný hexadecimální výtah s malými písmeny jako klíč HMAC. Až to bude praktické, znovu vytvořte předplatné a přejděte na v2.
Dostupné akce
| Událost | Popis |
|---|---|
| stream.online | Vysílal streamer |
| stream.offline | Streamer přešel do režimu offline |
| channel.follow | Uživatel sledoval kanál |
| channel.subscribe | Nové předplatné příznivců na kanálu |
| channel.tip | Spropitné bylo zasláno streamerovi |
| tournament.started | Turnajové utkání začalo |
| tournament.ended | Turnaj skončil |
| tournament.match.completed | Byl zaznamenán výsledek zápasu |
| clip.created | Z živého přenosu byl vytvořen nový klip |
| overdrive.started | D1 Frenzy začalo na kanálu |
| overdrive.level_up | D1 Frenzy postoupil do další úrovně |
| overdrive.ended | D1 Frenzy dokončeno nebo vypršela |
Příklady užitečného zatížení událostí
stream.online
stream.offline
channel.follow
channel.tip
tournament.match.completed
clip.created
Zásady doručení a opakování
| Pokus | Zpoždění | Poznámky |
|---|---|---|
| 1. (počáteční) | Okamžitě | Odesláno během několika sekund od události |
| 2. (zkusit znovu) | 30 sekund | Pokud první pokus selže nebo vyprší časový limit |
| 3. (zkusit znovu) | 2 minuty | Exponenciální ústup |
| 4. (finále) | 10 minut | Poslední pokus před označením jako neúspěšný |
2xx status within 10 sekund. Non-2xx responses or timeouts trigger a retry. After 10 po sobě jdoucích selhání, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in Nastavení vývojáře.
Nejlepší postupy
- Vždy ověřujte podpisy před zpracováním dat, aby se zabránilo falešným událostem.
- Pro deduplikaci použijte Delivery-Id — opakované pokusy pošlou stejné ID, takže zpracovaná ID ukládejte, abyste se vyhnuli dvojímu zpracování.
- Reagujte rychle, zpracujte asynchronně — okamžitě vraťte
200 OKa zpracujte obchodní logiku na pozadí. - Používejte pouze koncové body HTTPS — URL webhooku musí používat TLS. Zpětná volání HTTP jsou odmítnuta.
- Zvládejte neznámé události s grácií — mohou být přidány nové typy událostí. Vraťte
200pro nerozpoznané události, nikoli pro chybu.
D1 Frenzy
D1 Frenzy se spouští rychlými tipy a odběry, zatímco streamer vysílá. Postupuje přes 5 úrovní s rostoucími cíli.
GET /api/overdrive/{streamerId}
Získejte aktivní D1 Frenzy pro streamer. Pokud žádné, vrátí {"active": false}.
Cíle úrovně
| úroveň | Body |
|---|---|
| 1 | 100 |
| 2 | 250 |
| 3 | 500 |
| 4 | 1,000 |
| 5 | 2,000 |
D1 Frenzy — Body: Tip $1 → 100; Předplatné 500 × Tier. Doba trvání: 5 minut; Cooldown: 30 minut.
Rozšíření SDK
Vytvořte si vlastní panel a překryvná rozšíření, která mohou streameři nainstalovat na své stránky kanálu. Rozšíření běží v rámcích iframe v izolovaném prostoru a komunikují s hostitelskou stránkou prostřednictvím postMessage.
Začínáme
- Vytvořte klíč API v Nastavení vývojáře.
- Sestavte své rozšíření jako samostatnou stránku HTML hostovanou ve vaší doméně (vyžaduje HTTPS).
- Odešlete jej ke kontrole v sekci Moje rozšíření.
- Po schválení jej mohou streameři nainstalovat z Extension Marketplace.
Typy rozšíření
| Typ | Umístění | Chování |
|---|---|---|
panel | Pod přehrávačem streamu | Viditelné při živém přenosu. Karta s plnou šířkou, výchozí výška 300 pixelů. |
overlay | Přes přehrávač videa | Viditelné naživo. Poloha/velikost ovládaná streamerem pomocí nástroje pro polohování překrytí. |
postMessage API
Vaše rozšíření přijímá kontextová data automaticky při načítání. Implementujte tyto události:
Pro každou zprávu použijte přesný nadřazený původ D1Arena. Oficiální SDK automaticky odvozuje a ověřuje tento původ ze stránky pro vkládání.
Protože prvky iframe rozšíření záměrně používají neprůhledný původ karantény, hostitel D1Arena ověřuje přesné registrované okno prvku iframe. Kód rozšíření musí před přijetím kontextu stále ověřit nadřazené okno a přesný původ D1Arena.
1. Signálová připravenost
2. Přijměte kontext
3. Odeslání akcí (volitelné)
Rozsahy oprávnění
Uveďte, jaká data vaše rozšíření potřebuje. Recenzenti ověří, že váš kód odpovídá vašim deklarovaným oprávněním.
| Rozsah | Uděluje přístup k |
|---|---|
read:stream | Stav streamu, název, kategorie |
read:viewers | Počet a seznam diváků |
read:chat | Chatové zprávy (přes kanál Pusher) |
read:clips | Klipy kanálu přes /api/clips/{slug} |
read:tournaments | Informace o aktivním zápase přes /api/active-match/{id} |
read:channel | Profil kanálu, sledující, plán |
Bezpečnostní požadavky
sandbox="allow-scripts". Vaše rozšíření nemůže přistupuje k souborům cookie, localStorage nebo odesílá ověřené požadavky na d1arena.com.
- Je vyžadováno veřejné HTTPS — Vaše adresa URL iframe musí používat TLS a překládat pouze na adresy veřejné sítě.
- Lidsky čitelný zdroj — Žádný obfuskovaný nebo pouze miniifikovaný JavaScript. Recenzenti musí být schopni číst váš kód.
- Žádné externí načítání skriptu pokud není uvedeno ve vašem podání. Knihovny CDN (jQuery, Chart.js atd.) jsou v pořádku.
- Žádná exfiltrace dat — Rozšíření nesmějí odesílat údaje o divácích do analytických nebo sledovacích služeb třetích stran.
- Obsahová politika — Žádné reklamy, obsah NSFW, těžba kryptoměn nebo škodlivé chování.
Proces kontroly
| Stav | Význam |
|---|---|
| pending | Odesláno, čeká se na kontrolu správcem (obvykle 1–3 pracovní dny). |
| approved | Schváleno a viditelné na Extension Marketplace. |
| rejected | Odmítnuto s důvodem. Opravte problémy a odešlete znovu. |
| suspended | Dočasně odstraněno z důvodu porušení zásad. Kontaktujte podporu. |
Aktualizace verzí
Chcete-li aktualizovat schválené rozšíření, odstraňte aktuální verzi a odešlete novou se zvýšeným číslem verze. Nová verze prochází opět kontrolou.
Seznam změn
Sledujte změny API a nové funkce. Dodržujeme sémantické verzování a oznamujeme zásadní změny nejméně 30 dní předem.
- Počáteční veřejné vydání API s ověřováním klíče API.
- Streamy: Vypište živé přenosy a získejte podrobnosti o streamu podle slimáka.
- Kategorie: Vyhledejte a vypište všechny kategorie her.
- Uživatelé: Veřejné profily se soutěžními statistikami, hodnocením ELO a počtem medailí.
- Klipy: Procházejte a získávejte podrobnosti o klipu s informacemi o streamerech/tvůrcích.
- Turnaje: Seznam, filtrování podle stavu/ligy, získání počtu účastníků.
- ELO žebříček: Globální žebříčky a žebříčky podle kategorií.
- Ligy: Seznam lig s umístěním a rozdělením bodů.
- D1 Frenzy: Stav Frenzy v reálném čase pro každého streamera.
- Webhooky (EventSub): 12 typů událostí včetně streamů, kanálů, turnajů, klipů a událostí Frenzy.
- Omezení sazby
Potřebujete pomoc?
Máte dotazy ohledně API? Kontaktujte nás.