REST API v1 · למפתחים · מדריך עיון ל-API

מדריך עיון ל-API: הזמנות ותגמולים

כל 3 נקודות הקצה של הזמנות ותגמולים ב-REST API v1 של BotGG: הרשאות, פרמטרים, שדות, שגיאות ודוגמאות מוכנות ב-curl, JavaScript ו-Python.

תיעוד למפתחים
בעמוד הזה

נקודות קצה

הנתיבים יחסיים ל-https://console.botgg.app/api/v1. שלחו את מפתח ה-API בכותרת Authorization: Bearer botgg_…; מזהים הם מחרוזות.

נקודות קצה: הזמנות ותגמולים
נקודת קצההרשאהתיאור
GET/guilds/{guildId}/invites/members/{userId}invites:readGet a member’s invites
GET/guilds/{guildId}/invites/leaderboardinvites:readInvites leaderboard
POST/guilds/{guildId}/invites/members/{userId}/bonusinvites:writeAdd or remove bonus invites

מלבד השגיאות הייחודיות שלה (בהמשך), כל נקודת קצה יכולה להחזיר את השגיאות הכלליות האלה:

Get a member’s invites

GET/guilds/{guildId}/invites/members/{userId}

הרשאה: invites:read

Invite counters, all-time rank and the active season’s count and rank. Members who invited nobody get zeros.

נדרש שהפיצ׳ר הזה יהיה מופעל בשרת: הזמנות ותגמולים

פרמטרים
שםמיקוםסוגחובהתיאור
guildIdנתיבstringכןהמזהה של השרת שלכם · מזהה דיסקורד (מחרוזת)
userIdנתיבstringכןמזהה הדיסקורד של החבר/ה · מזהה דיסקורד (מחרוזת)

תשובה

שדות התשובה · 200
שדהסוגחובהתיאור
userIdstringכן
invitesintegerכןverified + bonus (never below 0) — what milestones and the leaderboard use
verifiedintegerכן
pendingintegerכן
leftintegerכן
fakeintegerכן
bonusintegerכן
totalintegerכן
rankinteger | nullכן
seasonobject | nullכןThe active season, if any
season.idintegerכן
season.numberintegerכן
season.namestring | nullכן
season.startsAtstring | nullכן
season.endsAtstring | nullכן
season.invitesintegerכן
season.rankinteger | nullכן
תשובה · 200
{
  "userId": "876543210987654321",
  "invites": 10,
  "verified": 10,
  "pending": 10,
  "left": 10,
  "fake": 10,
  "bonus": 10,
  "total": 10,
  "rank": 1,
  "season": {
    "id": 98765,
    "number": 7,
    "name": "Example",
    "startsAt": "2026-10-07T12:00:00.000Z",
    "endsAt": "2026-10-07T12:00:00.000Z",
    "invites": 10,
    "rank": 1
  }
}

דוגמאות

curl
curl -s "https://console.botgg.app/api/v1/guilds/123456789012345678/invites/members/876543210987654321" \
  -H "Authorization: Bearer $BOTGG_API_KEY"
JavaScript (fetch)
// Node.js 18+ (built-in fetch) — on your server, never in a browser
const res = await fetch('https://console.botgg.app/api/v1/guilds/123456789012345678/invites/members/876543210987654321', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.BOTGG_API_KEY}`,
  },
});
const data = await res.json();
if (!res.ok) throw new Error(`${res.status} ${data.error}: ${data.message}`);
console.log(data);
Python (requests)
import os
import requests

res = requests.get(
    "https://console.botgg.app/api/v1/guilds/123456789012345678/invites/members/876543210987654321",
    headers={
        "Authorization": f"Bearer {os.environ['BOTGG_API_KEY']}",
    },
    timeout=10,
)
data = res.json()
if not res.ok:
    raise RuntimeError(f"{res.status_code} {data['error']}: {data['message']}")
print(data)

שגיאות

שגיאות
HTTPקודים
409FEATURE_DISABLED
503SERVICE_UNAVAILABLE

Invites leaderboard

GET/guilds/{guildId}/invites/leaderboard

הרשאה: invites:read

period=all ranks by invites (verified + bonus), period=season by the active season’s invites (empty without a season). Pass cursor=<nextCursor> for the next page.

נדרש שהפיצ׳ר הזה יהיה מופעל בשרת: הזמנות ותגמולים

פרמטרים
שםמיקוםסוגחובהתיאור
guildIdנתיבstringכןהמזהה של השרת שלכם · מזהה דיסקורד (מחרוזת)
periodquerystringלאאחד מ: all, season · ברירת מחדל "all"
limitqueryintegerלא1–100 · ברירת מחדל 25
cursorqueryintegerלא0–10,000,000 · ברירת מחדל 0

תשובה

שדות התשובה · 200
שדהסוגחובהתיאור
periodstringכןאחד מ: all, season
seasonobject | nullכן
season.idintegerכן
season.numberintegerכן
season.namestring | nullכן
season.startsAtstring | nullכן
season.endsAtstring | nullכן
itemsarray of objectכן
items[].rankintegerכן
items[].userIdstringכן
items[].scoreintegerכן
items[].invitesintegerכן
items[].verifiedintegerכן
items[].bonusintegerכן
totalintegerכן
nextCursorstring | nullכן
תשובה · 200
{
  "period": "all",
  "season": {
    "id": 98765,
    "number": 7,
    "name": "Example",
    "startsAt": "2026-10-07T12:00:00.000Z",
    "endsAt": "2026-10-07T12:00:00.000Z"
  },
  "items": [
    {
      "rank": 1,
      "userId": "876543210987654321",
      "score": 10,
      "invites": 10,
      "verified": 10,
      "bonus": 10
    }
  ],
  "total": 10,
  "nextCursor": "98700"
}

דוגמאות

curl
curl -s "https://console.botgg.app/api/v1/guilds/123456789012345678/invites/leaderboard?period=all&limit=25&cursor=0" \
  -H "Authorization: Bearer $BOTGG_API_KEY"
JavaScript (fetch)
// Node.js 18+ (built-in fetch) — on your server, never in a browser
const res = await fetch('https://console.botgg.app/api/v1/guilds/123456789012345678/invites/leaderboard?period=all&limit=25&cursor=0', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.BOTGG_API_KEY}`,
  },
});
const data = await res.json();
if (!res.ok) throw new Error(`${res.status} ${data.error}: ${data.message}`);
console.log(data);
Python (requests)
import os
import requests

res = requests.get(
    "https://console.botgg.app/api/v1/guilds/123456789012345678/invites/leaderboard",
    headers={
        "Authorization": f"Bearer {os.environ['BOTGG_API_KEY']}",
    },
    params={
        "period": "all",
        "limit": 25,
        "cursor": 0,
    },
    timeout=10,
)
data = res.json()
if not res.ok:
    raise RuntimeError(f"{res.status_code} {data['error']}: {data['message']}")
print(data)

שגיאות

שגיאות
HTTPקודים
409FEATURE_DISABLED
503SERVICE_UNAVAILABLE

Add or remove bonus invites

POST/guilds/{guildId}/invites/members/{userId}/bonus

הרשאה: invites:writeIdempotency-Key

Same as /invites add|remove. Counts toward the active season; milestone rewards for additions are granted by the bot within a minute. Written to the audit log.

נדרש שהפיצ׳ר הזה יהיה מופעל בשרת: הזמנות ותגמולים

פרמטרים
שםמיקוםסוגחובהתיאור
guildIdנתיבstringכןהמזהה של השרת שלכם · מזהה דיסקורד (מחרוזת)
userIdנתיבstringכןמזהה הדיסקורד של החבר/ה · מזהה דיסקורד (מחרוזת)
Idempotency-Keyכותרתstringלאלא חובה. שלחו ערך ייחודי (UUID) והשתמשו בו שוב בניסיונות חוזרים — השינוי יקרה פעם אחת בלבד. איך זה עובד

גוף הבקשה

גוף הבקשה
שדהסוגחובהתיאור
amountintegerכןPositive = add bonus invites, negative = remove
‎-100,000–100,000
reasonstring | nullלאShown in the audit log
עד 200 תווים

תשובה

שדות התשובה · 201
שדהסוגחובהתיאור
userIdstringכן
amountintegerכן
previousBonusintegerכן
bonusintegerכן
invitesintegerכן
verifiedintegerכן
תשובה · 201
{
  "userId": "876543210987654321",
  "amount": 100,
  "previousBonus": 10,
  "bonus": 10,
  "invites": 10,
  "verified": 10
}

דוגמאות

curl
curl -s -X POST "https://console.botgg.app/api/v1/guilds/123456789012345678/invites/members/876543210987654321/bonus" \
  -H "Authorization: Bearer $BOTGG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"amount":100,"reason":"Tournament prize"}'
JavaScript (fetch)
// Node.js 18+ (built-in fetch) — on your server, never in a browser
const res = await fetch('https://console.botgg.app/api/v1/guilds/123456789012345678/invites/members/876543210987654321/bonus', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.BOTGG_API_KEY}`,
    'Content-Type': 'application/json',
    'Idempotency-Key': crypto.randomUUID(), // reuse it when you retry this request
  },
  body: JSON.stringify({
    amount: 100,
    reason: 'Tournament prize',
  }),
});
const data = await res.json();
if (!res.ok) throw new Error(`${res.status} ${data.error}: ${data.message}`);
console.log(data);
Python (requests)
import os, uuid
import requests

res = requests.post(
    "https://console.botgg.app/api/v1/guilds/123456789012345678/invites/members/876543210987654321/bonus",
    headers={
        "Authorization": f"Bearer {os.environ['BOTGG_API_KEY']}",
        "Idempotency-Key": str(uuid.uuid4()),  # reuse it when you retry this request
    },
    json={
        "amount": 100,
        "reason": "Tournament prize",
    },
    timeout=10,
)
data = res.json()
if not res.ok:
    raise RuntimeError(f"{res.status_code} {data['error']}: {data['message']}")
print(data)

שגיאות

מוכנים לשדרג את השרת?

מוסיפים את BotGG בחינם ומפעילים יכולות בקונסולת הווב.