ప్రధాన కంటెంట్‌కు దాటవేయండి
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
ప్రస్తుతం ప్రత్యక్ష ప్రసారాలను జాబితా చేయండి. pagination మరియు వర్గం వడపోత మద్దతు.
పరామితిటైప్ చేయండివివరణ
category_idintegerగేమ్/కేటగిరీ ID ద్వారా ఫిల్టర్ చేయండి
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స్ట్రీమర్ యూజర్ ID ద్వారా క్లిప్‌లను ఫిల్టర్ చేయండి
category_idintegerగేమ్/కేటగిరీ ID ద్వారా ఫిల్టర్ చేయండి
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లీగ్ ID ద్వారా ఫిల్టర్ చేయండి
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గేమ్/కేటగిరీ ID ద్వారా ఫిల్టర్ చేయండి
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గేమ్/కేటగిరీ ID ద్వారా ఫిల్టర్ చేయండి
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
చెడ్డ అభ్యర్థన — అభ్యర్థన తప్పుగా రూపొందించబడింది లేదా అవసరమైన పారామీటర్‌లు లేవు. Check the error.message for details.
401
అనధికారమైనది — Missing or invalid API key. Ensure you're passing a valid key in the X-API-Key header.
403
నిషేధించబడింది — మీ API కీ నిలిపివేయబడింది లేదా ఈ వనరు కోసం అనుమతి లేదు. మీ తనిఖీ డెవలపర్ సెట్టింగ్‌లు.
404
దొరకలేదు — అభ్యర్థించిన వనరు ఉనికిలో లేదు. స్లగ్, ID లేదా ఎండ్‌పాయింట్ మార్గాన్ని ధృవీకరించండి.
422
ధ్రువీకరణ లోపం — అభ్యర్థన పారామీటర్‌ల ప్రామాణీకరణ విఫలమైంది. error.errors ఆబ్జెక్ట్ ఫీల్డ్ పేర్లను వాటి నిర్దిష్ట సమస్యలకు మ్యాప్ చేస్తుంది.
429
రేట్ లిమిటెడ్ — చాలా ఎక్కువ అభ్యర్థనలు. Retry-After హెడర్ మళ్లీ ప్రయత్నించడానికి ముందు ఎన్ని సెకన్లు వేచి ఉండాలో సూచిస్తుంది.
500
సర్వర్ లోపం — An unexpected error occurred on our end. ఇది ఇలాగే కొనసాగితే, మద్దతును సంప్రదించండి.

ఎర్రర్ కోడ్‌ల సూచన

కోడ్HTTP స్థితివివరణ
invalid_api_key401API కీ లేదు, తప్పుగా రూపొందించబడింది లేదా ఉనికిలో లేదు
api_key_disabled403The API key has been revoked or disabled
not_found404అభ్యర్థించిన వనరు కనుగొనబడలేదు
validation_error422ఒకటి లేదా అంతకంటే ఎక్కువ అభ్యర్థన పరామితులు చెల్లవు
rate_limited429Request rate limit exceeded for this API key
server_error500అంతర్గత సర్వర్ లోపం — దయచేసి మళ్లీ ప్రయత్నించండి లేదా మద్దతును సంప్రదించండి

రేట్ పరిమితులు

API అభ్యర్థనలు API కీకి రేట్-పరిమితం. మీరు పరిమితిని మించిపోయినప్పుడు, అభ్యర్థనలు Retry-After హెడర్‌తో 429 Too Many Requestsని అందిస్తాయి.

టైర్ వారీగా పరిమితులు

టైర్అభ్యర్థనలు / నిమిషం (డిఫాల్ట్)గరిష్ట కీలు
స్టార్టర్ (ఉచిత)605
PRO605
అల్టిమేట్605
భాగస్వామి605

రేట్ పరిమితి శీర్షికలు

API అభ్యర్థనలు API కీకి రేట్-పరిమితం. మీరు పరిమితిని మించిపోయినప్పుడు, అభ్యర్థనలు Retry-After హెడర్‌తో 429 Too Many Requestsని అందిస్తాయి.

హెడర్వివరణ
Retry-Afterమళ్లీ ప్రయత్నించే ముందు వేచి ఉండాల్సిన సెకన్లు (429 ప్రతిస్పందనలలో మాత్రమే ఉన్నాయి)

ఉత్తమ పద్ధతులు

Tips for staying within limits:
  • Cache responses locally — stream and tournament data doesn't change every second.
  • పోలింగ్ ముగింపు పాయింట్‌లకు బదులుగా నిజ-సమయ ఈవెంట్‌ల కోసం webhooksకి సభ్యత్వం పొందండి.
  • సాధ్యమైన చోట బ్యాచ్ అభ్యర్థనలు — తక్కువ కాల్‌లలో మీకు అవసరమైన వాటిని పొందడానికి ఫిల్టర్ పారామితులను ఉపయోగించండి.

Webhooks (EventSub)

పోలింగ్‌కు బదులుగా నిజ-సమయ పుష్ నోటిఫికేషన్‌లకు సభ్యత్వం పొందండి. ఈవెంట్ సంభవించినప్పుడు, D1Arena HMAC-SHA256తో సంతకం చేసిన JSON పేలోడ్‌తో మీ కాల్‌బ్యాక్ URLకి HTTP పోస్ట్‌ను పంపుతుంది.

సెటప్

డెవలపర్ సెట్టింగ్‌లులో webhook సభ్యత్వాలను సృష్టించండి. Each subscription requires:

  • కాల్ బ్యాక్ URL — మీ సర్వర్‌లో పబ్లిక్‌గా యాక్సెస్ చేయగల HTTPS ముగింపు స్థానం.
  • ఈవెంట్స్ — సభ్యత్వం పొందడానికి ఒకటి లేదా అంతకంటే ఎక్కువ ఈవెంట్ రకాలు.

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

పేలోడ్ ఫార్మాట్

ప్రతి webhook డెలివరీ ఈ నిర్మాణంతో 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.startedD1 ఫ్రెంజీ ఒక ఛానెల్‌లో ప్రారంభమైంది
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 } }

డెలివరీ & మళ్లీ ప్రయత్నించే విధానం

ప్రయత్నంఆలస్యంగమనికలు
1వ (ప్రారంభ)వెంటనేఈవెంట్ జరిగిన కొన్ని సెకన్లలో పంపబడింది
2వ (మళ్లీ ప్రయత్నించండి)30 సెకన్లుమొదటి ప్రయత్నం విఫలమైతే లేదా సమయం ముగిసినట్లయితే
3వ (మళ్లీ ప్రయత్నించండి)2 నిమిషాలుఎక్స్‌పోనెన్షియల్ బ్యాక్‌ఆఫ్
4వ (ఫైనల్)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 డెవలపర్ సెట్టింగ్‌లు.

ఉత్తమ పద్ధతులు

  • సంతకాలను ఎల్లప్పుడూ ధృవీకరించండి స్పూఫ్డ్ ఈవెంట్‌లను నిరోధించడానికి పేలోడ్‌లను ప్రాసెస్ చేసే ముందు.
  • డీప్లికేషన్ కోసం డెలివరీ-ఐడిని ఉపయోగించండి — మళ్లీ అదే IDని పంపడానికి ప్రయత్నిస్తుంది, కాబట్టి డబుల్ ప్రాసెసింగ్‌ను నివారించడానికి ప్రాసెస్ చేసిన IDలను నిల్వ చేయండి.
  • త్వరగా ప్రతిస్పందించండి, అసమకాలికంగా ప్రాసెస్ చేయండి — return 200 OK immediately and handle business logic in a background job.
  • Use HTTPS endpoints only — webhook 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 నిమిషాలు.

Extension SDK

Build custom panel and overlay extensions that streamers can install on their channel pages. Extensions run in sandboxed iframes and communicate with the host page via postMessage.

ప్రారంభించడం

  1. డెవలపర్ సెట్టింగ్‌లులో API కీని సృష్టించండి.
  2. మీ డొమైన్‌లో హోస్ట్ చేయబడిన స్వతంత్ర HTML పేజీగా మీ పొడిగింపును రూపొందించండి (HTTPS అవసరం).
  3. దీన్ని నా పొడిగింపులు విభాగంలో సమీక్ష కోసం సమర్పించండి.
  4. Once approved, streamers can install it from the Extension Marketplace.

పొడిగింపు రకాలు

టైప్ చేయండిస్థానంప్రవర్తన
panelస్ట్రీమ్ ప్లేయర్ క్రిందప్రసారం ప్రత్యక్షంగా ఉన్నప్పుడు కనిపిస్తుంది. పూర్తి-వెడల్పు కార్డ్, 300px డిఫాల్ట్ ఎత్తు.
overlayవీడియో ప్లేయర్ మీదుగాప్రత్యక్షంగా ఉన్నప్పుడు కనిపిస్తుంది. ఓవర్‌లే పొజిషనింగ్ టూల్ ద్వారా స్ట్రీమర్ ద్వారా స్థానం/పరిమాణం నియంత్రించబడుతుంది.

postMessage API

మీ పొడిగింపు లోడ్ అయినప్పుడు స్వయంచాలకంగా సందర్భ డేటాను స్వీకరిస్తుంది. Implement these events:

ప్రతి సందేశానికి ఖచ్చితమైన 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. Receive context

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);

Permission Scopes

మీ పొడిగింపుకు ఏ డేటా అవసరమో తెలియజేయండి. Reviewers verify your code matches your declared permissions.

పరిధిGrants Access To
read:streamస్ట్రీమ్ స్థితి, శీర్షిక, వర్గం
read:viewersViewer count and list
read:chatచాట్ సందేశాలు (పుషర్ ఛానెల్ ద్వారా)
read:clipsChannel clips via /api/clips/{slug}
read:tournaments/api/active-match/{id} ద్వారా సక్రియ సరిపోలిక సమాచారం
read:channelఛానెల్ ప్రొఫైల్, అనుచరులు, షెడ్యూల్

Security Requirements

పొడిగింపులు శాండ్‌బాక్స్ చేయబడిన iframeలో sandbox="allow-scripts"తో నడుస్తాయి. Your extension కుదరదు access cookies, localStorage, or make authenticated requests to d1arena.com.
  • పబ్లిక్ HTTPS అవసరం — మీ iframe URL తప్పనిసరిగా TLSని ఉపయోగించాలి మరియు పబ్లిక్ నెట్‌వర్క్ చిరునామాలకు మాత్రమే పరిష్కరించాలి.
  • మానవులు చదవగలిగే మూలం — అస్పష్టమైన లేదా కనిష్టీకరించబడిన-మాత్రమే జావాస్క్రిప్ట్ లేదు. సమీక్షకులు తప్పనిసరిగా మీ కోడ్‌ని చదవగలరు.
  • బాహ్య స్క్రిప్ట్ లోడింగ్ లేదు మీ సమర్పణలో ప్రకటించకపోతే. CDN లైబ్రరీలు (jQuery, Chart.js, మొదలైనవి) బాగానే ఉన్నాయి.
  • డేటా ఎక్స్‌ఫిల్ట్రేషన్ లేదు — పొడిగింపులు వీక్షకుల డేటాను మూడవ పక్ష విశ్లేషణలు లేదా ట్రాకింగ్ సేవలకు పంపకూడదు.
  • కంటెంట్ విధానం — ప్రకటనలు, NSFW కంటెంట్, క్రిప్టోకరెన్సీ మైనింగ్ లేదా హానికరమైన ప్రవర్తన లేదు.

సమీక్ష ప్రక్రియ

స్థితిఅర్థం
pendingసమర్పించబడింది, నిర్వాహక సమీక్ష కోసం వేచి ఉంది (సాధారణంగా 1-3 పని రోజులు).
approvedపొడిగింపు మార్కెట్‌ప్లేస్‌లో ఆమోదించబడింది మరియు కనిపిస్తుంది.
rejectedకారణంతో తిరస్కరించారు. సమస్యలను పరిష్కరించి, మళ్లీ సమర్పించండి.
suspendedవిధాన ఉల్లంఘన కారణంగా తాత్కాలికంగా తీసివేయబడింది. మద్దతును సంప్రదించండి.

సంస్కరణ నవీకరణలు

ఆమోదించబడిన పొడిగింపును నవీకరించడానికి, ప్రస్తుత సంస్కరణను తొలగించి, పెరిగిన సంస్కరణ సంఖ్యతో కొత్తదాన్ని సమర్పించండి. కొత్త వెర్షన్ మళ్లీ సమీక్షకు వెళుతుంది.

చేంజ్లాగ్

API మార్పులు మరియు కొత్త ఫీచర్లను ట్రాక్ చేయండి. మేము సెమాంటిక్ సంస్కరణను అనుసరిస్తాము మరియు కనీసం 30 రోజుల ముందుగానే బ్రేకింగ్ మార్పులను ప్రకటిస్తాము.

v1.0మార్చి 2026
  • API కీ ప్రమాణీకరణతో ప్రారంభ పబ్లిక్ API విడుదల.
  • స్ట్రీమ్‌లు: లైవ్ స్ట్రీమ్‌లను జాబితా చేయండి, స్లగ్ ద్వారా స్ట్రీమర్ వివరాలను పొందండి.
  • వర్గాలు: అన్ని గేమ్ వర్గాలను శోధించండి మరియు జాబితా చేయండి.
  • వినియోగదారులు: పోటీ గణాంకాలు, ELO రేటింగ్ మరియు మెడల్ గణనలతో పబ్లిక్ ప్రొఫైల్‌లు.
  • క్లిప్‌లు: స్ట్రీమర్/క్రియేటర్ సమాచారంతో క్లిప్ వివరాలను బ్రౌజ్ చేయండి మరియు తిరిగి పొందండి.
  • టోర్నమెంట్‌లు: జాబితా, స్థితి/లీగ్ వారీగా ఫిల్టర్ చేయండి, పాల్గొనేవారి గణనలను పొందండి.
  • ELO లీడర్‌బోర్డ్: గ్లోబల్ మరియు ఒక్కో కేటగిరీ ర్యాంక్ లీడర్‌బోర్డ్‌లు.
  • లీగ్‌లు: స్టాండింగ్‌లు మరియు పాయింట్ బ్రేక్‌డౌన్‌లతో లీగ్‌లను జాబితా చేయండి.
  • D1 ఉన్మాదం: ఏదైనా స్ట్రీమర్ కోసం రియల్ టైమ్ ఫ్రెంజీ స్థితి.
  • Webhooks (EventSub): స్ట్రీమ్, ఛానెల్, టోర్నమెంట్, క్లిప్ మరియు ఫ్రెంజీ ఈవెంట్‌లతో సహా 12 ఈవెంట్ రకాలు.
  • రేట్ పరిమితులు

సహాయం కావాలా?

API గురించి ప్రశ్నలు ఉన్నాయా? మమ్మల్ని సంప్రదించండి.