דלג לתוכן הראשי
D1 Arena

D1 Arena

Loading...

D1 Arena

API למפתחים

קהילה

API למפתחים

בנו בוטים, שכבות-על, כלי סטרימינג ואינטגרציות עם נתוני D1Arena.

אימות

כל בקשות ה-API דורשות מפתח API המועבר בכותרת X-API-Key / Authorization: Bearer.

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

כדי ליצור מפתח API, עבור אל הגדרות מפתח במרכז השליטה שלך. אתה יכול לקבל עד 5 מפתחות.

בקשות API מוגבלות בקצב לכל מפתח API. כאשר אתה חורג מהמגבלה, הבקשות מחזירות 429 Too Many Requests עם כותרת Retry-After.

כתובת האתר הבסיסית

https://d1arena.com/api/v1

כל נקודות הקצה מחזירות JSON. נקודות קצה מדורגות כוללות אובייקט meta עם current_page, last_page ו-total.

זרמים

GET /streams
רשימת סטרימינג בשידור חי כרגע. תומך בעימוד וסינון קטגוריות.
פרמטרהקלדתיאור
category_idintegerסנן לפי מזהה משחק/קטגוריה
limitintegerתוצאות לכל עמוד (ברירת מחדל: 20)
pageintegerמספר עמוד
תגובה
{ "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}
קבל סטטוס חי של סטרימר בודד ופרטי סטרימינג לפי שם משתמש או שבלול.
תגובה
{ "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" } }

קטגוריות

GET /categories
רשום את כל קטגוריות המשחק. תומך בחיפוש ועימוד.
פרמטרהקלדתיאור
searchstringסנן קטגוריות לפי שם
limitintegerתוצאות לכל עמוד (ברירת מחדל: 50)
תגובה
{ "data": [ { "id": 5, "name": "Call of Duty", "slug": "call-of-duty", "image": "categories/cod.png" } ], "meta": { "total": 24 } }

משתמשים

GET /users/{slug}
קבל פרופיל ציבורי של שחקן וסטטיסטיקה תחרותית לפי שם משתמש או שבלול.
תגובה
{ "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 } } }

קליפים

GET /clips
רשימת קליפים ציבוריים. תומך בסינון לפי סטרימר וקטגוריה.
פרמטרהקלדתיאור
streamer_idintegerסנן קליפים לפי מזהה המשתמש של הסטרימר
category_idintegerסנן לפי מזהה משחק/קטגוריה
limitintegerתוצאות לכל עמוד (ברירת מחדל: 20)
תגובה
{ "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}
קבל את הפרטים של קליפ בודד לפי שבלול.
תגובה
{ "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" } } }

טורנירים

GET /tournaments
רשימת טורנירים. תומך בסינון לפי סטטוס וליגה.
פרמטרהקלדתיאור
statusstringסנן לפי סטטוס (למשל open, in_progress, completed)
league_idintegerסנן לפי מזהה ליגה
limitintegerתוצאות לכל עמוד (ברירת מחדל: 20)
תגובה
{ "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}
קבל את פרטי הטורניר וספירת המשתתפים.
תגובה
{ "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 } }

דירוג ELO

GET /elo/leaderboard
קבל את ה-Leaderboard בדירוג ELO. אופציונלי לסנן לפי קטגוריית משחק.
פרמטרהקלדתיאור
category_idintegerסנן לפי מזהה משחק/קטגוריה
limitintegerמספר תוצאות (ברירת מחדל: 50)
תגובה
{ "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 } }

ליגות

GET /leagues
רשום ליגות עם מסנני סטטוס וקטגוריות אופציונליים.
פרמטרהקלדתיאור
statusstringסנן לפי סטטוס ליגה
category_idintegerסנן לפי מזהה משחק/קטגוריה
limitintegerתוצאות לכל עמוד (ברירת מחדל: 20)
תגובה
{ "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
קבל דירוג ליגה (דירוג שחקנים לפי נקודות).
תגובה
{ "data": [ { "id": 1, "points": 2400, "wins": 12, "losses": 3, "user": { "id": 42, "name": "ProGamer99", "user_slug": "progamer99" } } ], "meta": { "total": 48 } }

תגובות שגיאה

כל השגיאות מחזירות מעטפת JSON עקבית. האובייקט error מכיל תמיד code קריא במכונה ו-message קריא לאדם.

פורמט תגובה לשגיאה
{ "success": false, "error": { "code": "not_found", "message": "The requested resource could not be found." } }
פורמט שגיאת אימות (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."] } } }

קודי סטטוס

200
בסדר — הבקשה הצליחה. התגובה מכילה את הנתונים המבוקשים.
400
בקשה גרועה — הבקשה פגומה או חסרים פרמטרים נדרשים. בדוק את ה-error.message לפרטים.
401
לא מורשה — Missing or invalid API key. Ensure you're passing a valid key in the X-API-Key header.
403
אסור — מפתח ה-API שלך הושבת או שאין לו הרשאה למשאב זה. בדוק את שלך הגדרות מפתח.
404
לא נמצא — המשאב המבוקש אינו קיים. אמת את הנתיב, המזהה או נקודת הקצה.
422
שגיאת אימות — אימות פרמטרי הבקשה נכשל. האובייקט error.errors ממפה את שמות השדות לבעיות הספציפיות שלהם.
429
שיעור מוגבל — יותר מדי בקשות. הכותרת Retry-After מציינת כמה שניות יש להמתין לפני ניסיון חוזר.
500
שגיאת שרת — אירעה שגיאה בלתי צפויה בצד שלנו. אם זה נמשך, צור קשר עם התמיכה.

הפניה לקודי שגיאה

קודמצב HTTPתיאור
invalid_api_key401מפתח ה-API חסר, פגום או אינו קיים
api_key_disabled403מפתח ה-API בוטל או הושבת
not_found404המשאב המבוקש לא נמצא
validation_error422פרמטר בקשה אחד או יותר אינם חוקיים
rate_limited429חרגת ממגבלת קצב הבקשה עבור מפתח API זה
server_error500שגיאת שרת פנימית - אנא נסה שוב או פנה לתמיכה

מגבלות תעריף

בקשות API מוגבלות בקצב לכל מפתח API. כאשר אתה חורג מהמגבלה, הבקשות מחזירות 429 Too Many Requests עם כותרת Retry-After.

מגבלות לפי שכבה

שכבהבקשות / דקה (ברירת מחדל)מקס קיז
מתנע (חינם)605
PRO605
אולטימטיבי605
שותף605

כותרות מגבלת שיעור

בקשות API מוגבלות בקצב לכל מפתח API. כאשר אתה חורג מהמגבלה, הבקשות מחזירות 429 Too Many Requests עם כותרת Retry-After.

כותרתתיאור
Retry-Afterשניות לחכות לפני ניסיון חוזר (קיים רק ב-429 תגובות)

שיטות עבודה מומלצות

טיפים לשמירה על גבולות:
  • Cache responses locally — stream and tournament data doesn't change every second.
  • הירשם ל-webhooks לאירועים בזמן אמת במקום נקודות קצה של הסקרים.
  • בקשות אצווה במידת האפשר - השתמש בפרמטרי סינון כדי לקבל בדיוק את מה שאתה צריך בפחות שיחות.

Webhooks (EventSub)

הירשם לקבלת התראות דחיפה בזמן אמת במקום סקרים. כאשר מתרחש אירוע, D1Arena שולחת HTTP POST לכתובת ה-callback שלך עם מטען JSON חתום ב-HMAC-SHA256.

הגדרה

צור מנויי webhook ב-הגדרות מפתח. כל מנוי דורש:

  • כתובת אתר להתקשרות חוזרת — נקודת קצה HTTPS נגישה לציבור בשרת שלך.
  • אירועים — סוג אירוע אחד או יותר להירשם אליו.

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

פורמט מטען

כל שליחת חיבור לאינטרנט שולחת גוף JSON עם המבנה הזה:

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

כותרות

כל משלוח כולל את הכותרות הבאות לניתוב ואימות:

כותרתתיאור
Content-Typeapplication/json
X-D1Arena-Eventסוג אירוע (למשל stream.online)
X-D1Arena-SignatureHMAC-SHA256 hex digest של גוף הבקשה הגולמי
X-D1Arena-Signature-Versionפורמט מפתח חתימה: v2 עבור מנויים נוכחיים או v1-hashed-secret עבור מנויים מדור קודם
X-D1Arena-Delivery-IdUUID למשלוח ייחודי - השתמש למניעת כפילויות
X-D1Arena-Timestampחותמת זמן Unix של מועד שליחת האירוע

אימות חתימות

אמת תמיד את הכותרת X-D1Arena-Signature לפני עיבוד webhook. החתימה מחושבת כ-HMAC-SHA256(raw_body, webhook_secret).

עבור משלוחים של v2, השתמש בסוד whsec_ שהוצג כאשר המנוי נוצר. למסירה מוקדמת של v1-hashed-secret, חישבו תחילה את SHA256(whsec_secret) מאותו סוד מקורי והשתמשו בתקציר הקש המתקבל באותיות קטנות כמפתח HMAC. צור מחדש את המנוי כשאפשר לעבור ל-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'); });
פייתון
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)

אירועים זמינים

אירועתיאור
stream.onlineסטרימר עלה לאוויר
stream.offlineסטרימר לא התחבר
channel.followמשתמש עקב אחר ערוץ
channel.subscribeמנוי תומך חדש בערוץ
channel.tipטיפ נשלח לסטרימר
tournament.startedמשחק משחקי טורניר החל
tournament.endedטורניר הסתיים
tournament.match.completedתוצאת משחק נרשמה
clip.createdקליפ חדש נוצר משידור חי
overdrive.startedD1 Frenzy התחיל בערוץ
overdrive.level_upD1 Frenzy התקדם לשלב הבא
overdrive.endedD1 Frenzy הושלם או פג תוקף

דוגמאות לאירועים

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 } }

מדיניות מסירה וניסיון חוזר

ניסיוןעיכובהערות
1 (ראשוני)מיידינשלח תוך שניות מהאירוע
2 (נסה שוב)30 שניותאם הניסיון הראשון נכשל או פסק זמן
שלישי (נסה שוב)2 דקותגיבוי אקספוננציאלי
רביעי (סופי)10 דקותניסיון אחרון לפני הסימון ככשל
Important: Your endpoint must respond with a 2xx status within 10 שניות. Non-2xx responses or timeouts trigger a retry. After 10 כישלונות רצופים, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in הגדרות מפתח.

שיטות עבודה מומלצות

  • בדוק תמיד חתימות לפני עיבוד מטענים כדי למנוע אירועים מזויפים.
  • השתמש ב-Delivery-Id למניעת כפילויות — ניסיונות חוזרים שולחים את אותו מזהה, אז אחסן מזהים מעובדים כדי למנוע עיבוד כפול.
  • הגיבו מהר, עבדו בצורה אסינכרונית — להחזיר את 200 OK מיד ולטפל בהיגיון עסקי בעבודת רקע.
  • השתמש בנקודות קצה HTTPS בלבד — כתובות URL של webhook חייבות להשתמש ב-TLS. התקשרות חוזרת של HTTP נדחתה.
  • טפל באירועים לא ידועים בחן — ניתן להוסיף סוגי אירועים חדשים. החזר 200 לאירועים לא מזוהים במקום שגיאה.

D1 טירוף

D1 Frenzy מופעל על ידי טיפים ומינויים מהירים בזמן שסטרימר בשידור חי. זה מתקדם דרך 5 רמות עם יעדים הולכים וגדלים.

GET /api/overdrive/{streamerId}

קבל את ה-D1 Frenzy הפעיל עבור סטרימר. מחזירה {"active": false} אם אין.

{ "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" }

יעדי רמה

רמהנקודות
1100
2250
3500
41,000
52,000

D1 טירוף — נקודות: טיפ $1 → 100; מנוי 500 × שכבה. משך זמן: 5 דקות; התקררות: 30 דקות.

SDK של הרחבה

בנו תוספי פאנל ושכבת-על מותאמים אישית שסטרימרים יכולים להתקין בדפי הערוץ שלהם. הרחבות פועלות ב-iframes עם ארגז חול ומתקשרות עם הדף המארח באמצעות postMessage.

תחילת העבודה

  1. צור מפתח API ב-הגדרות מפתח.
  2. בנה את התוסף שלך כדף HTML עצמאי המתארח בדומיין שלך (נדרש HTTPS).
  3. שלח אותו לבדיקה בקטע ההרחבות שלי.
  4. לאחר האישור, סטרימרים יכולים להתקין אותו מ-Extension Marketplace.

סוגי הרחבות

הקלדמיקוםהתנהגות
panelמתחת לנגן הזרםגלוי כאשר השידור חי. כרטיס ברוחב מלא, גובה ברירת מחדל של 300 פיקסלים.
overlayמעל נגן הווידאוגלוי בזמן חי. מיקום/גודל נשלט על ידי הסטרימר באמצעות כלי מיקום שכבת העל.

ממשק API של postMessage

התוסף שלך מקבל נתוני הקשר באופן אוטומטי כאשר הוא נטען. יישם את האירועים הבאים:

השתמש במקור האב המדויק D1Arena עבור כל הודעה. ה-SDK הרשמי גוזר ומאמת את המקור הזה מדף ההטמעה באופן אוטומטי.

מכיוון ש-iframes של הרחבה משתמשות בכוונה במקור ארגז חול אטום, המארח D1Arena מאמת את חלון ה-iframe הרשום המדויק. קוד ההרחבה חייב עדיין לאמת את חלון האב ואת המקור המדויק של D1Arena לפני קבלת ההקשר.

1. איתות מוכנות

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

2. קבלת הקשר

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. שלח פעולות (אופציונלי)

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

היקף ההרשאה

הצהר לאילו נתונים התוסף שלך צריך. בודקים מאמתים שהקוד שלך תואם את ההרשאות המוצהרות שלך.

היקףמעניק גישה אל
read:streamסטטוס זרם, כותרת, קטגוריה
read:viewersספירת צופים ורשימה
read:chatהודעות צ'אט (דרך ערוץ Pusher)
read:clipsקטעי ערוץ דרך /api/clips/{slug}
read:tournamentsפרטי התאמה פעילה באמצעות /api/active-match/{id}
read:channelפרופיל ערוץ, עוקבים, לוח זמנים

דרישות אבטחה

הרחבות פועלות ב-iframe בארגז חול עם sandbox="allow-scripts". התוסף שלך לא יכול ניגש לקובצי Cookie, ל-localStorage או שלח בקשות מאומתות ל-d1arena.com.
  • HTTPS ציבורי נדרש — כתובת ה-iframe שלך חייבת להשתמש ב-TLS ולהתייצב רק לכתובות רשת ציבוריות.
  • מקור קריא לאדם — אין JavaScript מעורפל או ממוזער בלבד. סוקרים חייבים להיות מסוגלים לקרוא את הקוד שלך.
  • אין טעינת סקריפט חיצונית אלא אם כן הוצהר בהגשתך. ספריות CDN (jQuery, Chart.js וכו') בסדר.
  • אין חילוץ נתונים — אסור לתוספים לשלוח נתוני צופים לשירותי ניתוח או מעקב של צד שלישי.
  • מדיניות תוכן — אין מודעות, תוכן NSFW, כריית מטבעות קריפטוגרפיים או התנהגות זדונית.

תהליך סקירה

סטטוסמשמעות
pendingנשלח, ממתין לבדיקת מנהל (בדרך כלל 1-3 ימי עסקים).
approvedמאושר וגלוי ב-Extension Marketplace.
rejectedנדחה עם סיבה. תקן בעיות ושלח מחדש.
suspendedהוסר באופן זמני עקב הפרת מדיניות. צור קשר עם התמיכה.

עדכוני גרסה

כדי לעדכן הרחבה מאושרת, מחק את הגרסה הנוכחית ושלח גרסה חדשה עם מספר גרסה מוגדל. הגרסה החדשה עוברת ביקורת שוב.

יומן שינויים

עקוב אחר שינויים ב-API ותכונות חדשות. אנו עוקבים אחר עיבוד גרסאות סמנטי ומודיעים על שינויים פורצים לפחות 30 יום מראש.

v1.0מרץ 2026
  • שחרור API ציבורי ראשוני עם אימות מפתח API.
  • זרמים: רשום זרמים חיים, קבל פרטי סטרימר לפי שבלול.
  • קטגוריות: חפש ורשום את כל קטגוריות המשחקים.
  • משתמשים: פרופילים ציבוריים עם נתונים סטטיסטיים תחרותיים, דירוג ELO וספירת מדליות.
  • קליפים: עיין ואחזר פרטי קליפ עם מידע סטרימר/יוצר.
  • טורנירים: רשימה, סנן לפי סטטוס/ליגה, קבל ספירת משתתפים.
  • ELO Leaderboard: מדורגות גלובליות ומדורגות לפי קטגוריות.
  • ליגות: רשום ליגות עם דירוגים וחלוקת נקודות.
  • D1 Frenzy: מצב טירוף בזמן אמת עבור כל סטרימר.
  • Webhooks (EventSub): 12 סוגי אירועים כולל סטרימינג, ערוץ, טורניר, קליפ ואירועי Frenzy.
  • מגבלות תעריף

צריך עזרה?

שאלות לגבי ה-API? צור איתנו קשר.