मुख्य सामग्रीवर जा
D1 Arena

D1 Arena

Loading...

D1 Arena

विकसक API

समुदाय

विकसक API

D1Arena डेटासह बॉट्स, आच्छादन, प्रवाह साधने आणि एकत्रीकरण तयार करा.

प्रमाणीकरण

सर्व API विनंत्यांना X-API-Key / Authorization: Bearer शीर्षलेखात पास केलेली API की आवश्यक आहे.

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

API की तयार करण्यासाठी, तुमच्या डॅशबोर्डमधील विकसक सेटिंग्ज वर जा. तुमच्याकडे 5 की असू शकतात.

API विनंत्या प्रति API की रेट-मर्यादित आहेत. जेव्हा तुम्ही मर्यादा ओलांडता, तेव्हा विनंत्या Retry-After शीर्षलेखासह 429 Too Many Requests परत करतात.

मूळ URL

https://d1arena.com/api/v1

सर्व एंडपॉइंट JSON परत करतात. पृष्ठांकित एंडपॉइंटमध्ये current_page, last_page आणि total सह meta ऑब्जेक्ट समाविष्ट आहे.

प्रवाह

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प्रति पृष्ठ परिणाम (डिफॉल्ट: ५०)
प्रतिसाद
{ "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
ELO-रँक असलेला लीडरबोर्ड मिळवा. वैकल्पिकरित्या गेम श्रेणीनुसार फिल्टर करा.
पॅरामीटरप्रकारवर्णन
category_idintegerगेम/श्रेणी आयडीनुसार फिल्टर करा
limitintegerपरिणामांची संख्या (डिफॉल्ट: ५०)
प्रतिसाद
{ "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_key401API की गहाळ आहे, विकृत आहे किंवा अस्तित्वात नाही
api_key_disabled403API की रद्द किंवा अक्षम केली गेली आहे
not_found404विनंती केलेले संसाधन सापडले नाही
validation_error422एक किंवा अधिक विनंती पॅरामीटर्स अवैध आहेत
rate_limited429या API की साठी विनंती दर मर्यादा ओलांडली आहे
server_error500अंतर्गत सर्व्हर त्रुटी — कृपया पुन्हा प्रयत्न करा किंवा समर्थनाशी संपर्क साधा

दर मर्यादा

API विनंत्या प्रति API की रेट-मर्यादित आहेत. जेव्हा तुम्ही मर्यादा ओलांडता, तेव्हा विनंत्या Retry-After शीर्षलेखासह 429 Too Many Requests परत करतात.

श्रेणीनुसार मर्यादा

टियरविनंत्या / मिनिट (डीफॉल्ट)कमाल की
स्टार्टर (विनामूल्य)605
प्रो605
परम605
जोडीदार605

रेट मर्यादा शीर्षलेख

API विनंत्या प्रति API की रेट-मर्यादित आहेत. जेव्हा तुम्ही मर्यादा ओलांडता, तेव्हा विनंत्या Retry-After शीर्षलेखासह 429 Too Many Requests परत करतात.

शीर्षलेखवर्णन
Retry-Afterपुन्हा प्रयत्न करण्यापूर्वी प्रतीक्षा करण्यासाठी सेकंद (फक्त 429 प्रतिसादांवर उपस्थित)

सर्वोत्तम पद्धती

मर्यादेत राहण्यासाठी टिपा:
  • Cache responses locally — stream and tournament data doesn't change every second.
  • मतदान अंत्यबिंदूंऐवजी रिअल-टाइम इव्हेंटसाठी webhooks चे सदस्य व्हा.
  • जेथे शक्य असेल तेथे बॅच विनंत्या — तुम्हाला कमी कॉलमध्ये नेमके काय हवे आहे ते मिळवण्यासाठी फिल्टर पॅरामीटर्स वापरा.

वेबहुक्स (इव्हेंटसब)

मतदानाऐवजी रिअल-टाइम पुश नोटिफिकेशन्सची सदस्यता घ्या. जेव्हा एखादी घटना घडते, तेव्हा D1Arena HMAC-SHA256 सह स्वाक्षरी केलेल्या JSON पेलोडसह तुमच्या कॉलबॅक URL वर HTTP POST पाठवते.

सेटअप

विकसक सेटिंग्ज मध्ये वेबहुक सदस्यता तयार करा. प्रत्येक सदस्यता आवश्यक आहे:

  • कॉलबॅक URL — तुमच्या सर्व्हरवर सार्वजनिकरित्या प्रवेश करण्यायोग्य 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-Signatureरॉ रिक्वेस्ट बॉडीचा HMAC-SHA256 हेक्स डायजेस्ट
X-D1Arena-Signature-Versionसाइनिंग-की फॉरमॅट: वर्तमान सदस्यत्वांसाठी v2 किंवा लीगेसी सदस्यतांसाठी v1-hashed-secret
X-D1Arena-Delivery-Idयुनिक डिलिव्हरी UUID — डुप्लिकेशनसाठी वापरा
X-D1Arena-Timestampइव्हेंट कधी पाठवला गेला याचा युनिक्स टाइमस्टॅम्प

स्वाक्षरी पडताळत आहे

वेबहुकवर प्रक्रिया करण्यापूर्वी नेहमी X-D1Arena-Signature शीर्षलेख सत्यापित करा. स्वाक्षरीची गणना 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.startedएका चॅनलवर D1 Frenzy सुरु झाला
overdrive.level_upD1 उन्माद पुढील स्तरावर प्रगत
overdrive.endedD1 उन्माद पूर्ण किंवा कालबाह्य

इव्हेंट पेलोड उदाहरणे

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

वितरण आणि पुन्हा प्रयत्न धोरण

प्रयत्नविलंबनोट्स
पहिला (प्रारंभिक)तात्काळकार्यक्रमानंतर काही सेकंदात पाठवले
2रा (पुन्हा प्रयत्न करा)30 सेकंदपहिला प्रयत्न अयशस्वी झाल्यास किंवा वेळ संपल्यास
3रा (पुन्हा प्रयत्न करा)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 विकसक सेटिंग्ज.

सर्वोत्तम पद्धती

  • नेहमी स्वाक्षऱ्यांची पडताळणी करा फसवणूक झालेल्या घटना टाळण्यासाठी पेलोडवर प्रक्रिया करण्यापूर्वी.
  • डीडुप्लिकेशनसाठी डिलिव्हरी-आयडी वापरा — पुन्हा प्रयत्न करा समान आयडी पाठवा, त्यामुळे दुहेरी प्रक्रिया टाळण्यासाठी प्रक्रिया केलेले आयडी संग्रहित करा.
  • त्वरीत प्रतिसाद द्या, असिंक्रोनस प्रक्रिया करा — ताबडतोब 200 OK परत करा आणि बॅकग्राउंड जॉबमध्ये बिझनेस लॉजिक हाताळा.
  • फक्त HTTPS एंडपॉइंट वापरा — वेबहुक URL ने TLS वापरणे आवश्यक आहे. HTTP कॉलबॅक नाकारले आहेत.
  • अज्ञात घटना कृपापूर्वक हाताळा — नवीन इव्हेंट प्रकार जोडले जाऊ शकतात. एरर करण्यापेक्षा अपरिचित घटनांसाठी 200 परत या.

D1 उन्माद

स्ट्रीमर लाइव्ह असताना वेगवान टिप्स आणि सदस्यतांद्वारे D1 उन्माद ट्रिगर केला जातो. हे वाढत्या लक्ष्यांसह 5 स्तरांमधून प्रगती करते.

GET /api/overdrive/{streamerId}

स्ट्रीमरसाठी सक्रिय D1 उन्माद मिळवा. कोणतेही नसल्यास {"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. एकदा मंजूर झाल्यानंतर, स्ट्रीमर्स ते एक्स्टेंशन मार्केटप्लेसवरून स्थापित करू शकतात.

विस्ताराचे प्रकार

प्रकारस्थानवागणूक
panelस्ट्रीम प्लेअरच्या खालीप्रवाह लाइव्ह असताना दृश्यमान. पूर्ण-रुंदीचे कार्ड, 300px डीफॉल्ट उंची.
overlayव्हिडिओ प्लेयरवरलाइव्ह असताना दृश्यमान. ओव्हरले पोझिशनिंग टूलद्वारे स्ट्रीमरद्वारे नियंत्रित स्थिती/आकार.

postMessage API

तुमचा विस्तार लोड झाल्यावर संदर्भ डेटा आपोआप प्राप्त करतो. या कार्यक्रमांची अंमलबजावणी करा:

प्रत्येक संदेशासाठी अचूक 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चॅट संदेश (पुशर चॅनेलद्वारे)
read:clips/api/clips/{slug} द्वारे चॅनल क्लिप
read:tournaments/api/active-match/{id} द्वारे सक्रिय जुळणी माहिती
read:channelचॅनल प्रोफाइल, फॉलोअर्स, वेळापत्रक

सुरक्षा आवश्यकता

विस्तार sandbox="allow-scripts" सह सँडबॉक्स्ड iframe मध्ये चालतात. तुमचा विस्तार करू शकत नाही कुकीज, लोकल स्टोरेजमध्ये प्रवेश करू शकतो किंवा d1arena.com वर प्रमाणीकृत विनंत्या करा.
  • सार्वजनिक HTTPS आवश्यक — तुमच्या iframe URL ने TLS वापरणे आवश्यक आहे आणि फक्त सार्वजनिक नेटवर्क पत्त्यांचे निराकरण करणे आवश्यक आहे.
  • मानवी वाचनीय स्त्रोत — कोणतीही अस्पष्ट किंवा लहान-मात्र JavaScript नाही. समीक्षक तुमचा कोड वाचण्यास सक्षम असणे आवश्यक आहे.
  • बाह्य स्क्रिप्ट लोड होत नाही तुमच्या सबमिशनमध्ये घोषित केल्याशिवाय. CDN लायब्ररी (jQuery, Chart.js, इ.) ठीक आहेत.
  • डेटा एक्सफिल्टेशन नाही — विस्तारांनी दर्शक डेटा तृतीय-पक्ष विश्लेषण किंवा ट्रॅकिंग सेवांना पाठवू नये.
  • सामग्री धोरण — कोणत्याही जाहिराती, NSFW सामग्री, क्रिप्टोकरन्सी खाण, किंवा दुर्भावनापूर्ण वर्तन नाही.

पुनरावलोकन प्रक्रिया

स्थितीअर्थ
pendingसबमिट केले, प्रशासक पुनरावलोकनाची प्रतीक्षा करत आहे (सामान्यत: 1-3 व्यवसाय दिवस).
approvedएक्स्टेंशन मार्केटप्लेसमध्ये मंजूर आणि दृश्यमान.
rejectedकारण देऊन नाकारले. समस्यांचे निराकरण करा आणि पुन्हा सबमिट करा.
suspendedधोरण उल्लंघनासाठी तात्पुरते काढले. समर्थनाशी संपर्क साधा.

आवृत्ती अद्यतने

मंजूर विस्तार अपडेट करण्यासाठी, वर्तमान आवृत्ती हटवा आणि वाढीव आवृत्ती क्रमांकासह नवीन सबमिट करा. नवीन आवृत्ती पुन्हा पुनरावलोकनातून जाते.

चेंजलॉग

API बदल आणि नवीन वैशिष्ट्यांचा मागोवा घ्या. आम्ही सिमेंटिक आवृत्तीचे अनुसरण करतो आणि ब्रेकिंग बदल किमान 30 दिवस अगोदर घोषित करतो.

v1.0मार्च 2026
  • API की प्रमाणीकरणासह प्रारंभिक सार्वजनिक API प्रकाशन.
  • प्रवाह: थेट प्रवाहांची सूची करा, स्लगद्वारे स्ट्रीमर तपशील मिळवा.
  • श्रेण्या: सर्व गेम श्रेणी शोधा आणि सूचीबद्ध करा.
  • वापरकर्ते: स्पर्धात्मक आकडेवारी, ELO रेटिंग आणि पदकांच्या संख्येसह सार्वजनिक प्रोफाइल.
  • क्लिप: स्ट्रीमर/निर्माता माहितीसह क्लिप तपशील ब्राउझ करा आणि पुनर्प्राप्त करा.
  • स्पर्धा: सूची, स्थिती/लीगनुसार फिल्टर करा, सहभागी संख्या मिळवा.
  • ELO लीडरबोर्ड: जागतिक आणि प्रति-श्रेणी रँक केलेले लीडरबोर्ड.
  • लीग: स्टँडिंग आणि पॉइंट ब्रेकडाउनसह लीगची यादी करा.
  • D1 उन्माद: कोणत्याही स्ट्रीमरसाठी रिअल-टाइम उन्माद स्थिती.
  • वेबहुक्स (इव्हेंटसब): प्रवाह, चॅनेल, टूर्नामेंट, क्लिप आणि उन्माद इव्हेंटसह 12 इव्हेंट प्रकार.
  • दर मर्यादा

मदत हवी आहे?

API बद्दल प्रश्न? आमच्याशी संपर्क साधा.