TopStats.gg
Discord

Bots

Monthly votes have changed!

GET
/discord/bots/{id}

Authorization

ApiKeyAuth
authorization<token>

In: header

Path Parameters

id*string

Discord snowflake ID

Match^[0-9]{17,19}$

Response Body

application/json

application/json

curl -X GET "https://api.topstats.gg/discord/bots/583807014896140293"
{
  "id": "432610292342587392",
  "topGGId": "432610292342587392",
  "certified": false,
  "owners": [
    "275748765166469120"
  ],
  "deleted": false,
  "name": "Mudae",
  "def_avatar": "1.png",
  "avatar": "https://cdn.discordapp.com/avatars/432610292342587392/29cb28fbf65a3958105026ab03abd306.png",
  "short_desc": "Database of 110,000 anime/game characters: make and customize the best collection in your server. 400 commands, multiplayer games and more!",
  "lib": "",
  "prefix": "$",
  "website": "https://www.patreon.com/mudae",
  "approved_at": "2018-04-21T21:17:57.793Z",
  "monthly_votes": 24852,
  "server_count": 3371839,
  "total_votes": 221182027,
  "monthly_votes_rank": 1,
  "server_count_rank": 15,
  "total_votes_rank": 1,
  "timestamp": "2025-05-01T08:00:00Z",
  "unix_timestamp": "1746086400000",
  "tags": [
    "anime",
    "fun",
    "game"
  ],
  "avg_review_rating": 4.526118704362479,
  "review_count": 10682,
  "percentage_changes": {
    "daily": 11.11,
    "monthly": 0.97
  }
}
{
  "code": 404,
  "message": "Resource not found"
}
GET
/discord/bots/{id}/historical

Authorization

ApiKeyAuth
authorization<token>

In: header

Path Parameters

id*string

Discord snowflake ID

Match^[0-9]{17,19}$

Query Parameters

type*|||

Type of graph data to fetch

timeFrame*||||||||||||

Timeframe for historical data

unlisted?boolean
unlisted_reason?string

Response Body

application/json

application/json

curl -X GET "https://api.topstats.gg/discord/bots/583807014896140293/historical?type=monthly_votes&timeFrame=alltime"
{
  "data": [
    {
      "time": "2025-04-30T00:00:00.000Z",
      "id": "432610292342587392",
      "monthly_votes": 24852,
      "total_votes": 221182027,
      "server_count": 3371839,
      "review_count": 10682
    },
    {
      "time": "2025-04-29T00:00:00.000Z",
      "id": "432610292342587392",
      "monthly_votes": 24710,
      "total_votes": 221100000,
      "server_count": 3370000,
      "review_count": 10680
    }
  ]
}
{
  "code": 404,
  "message": "Resource not found"
}
GET
/discord/bots/{id}/recent

Authorization

ApiKeyAuth
authorization<token>

In: header

Path Parameters

id*string

Discord snowflake ID

Match^[0-9]{17,19}$

Response Body

application/json

application/json

curl -X GET "https://api.topstats.gg/discord/bots/583807014896140293/recent"
{
  "hourlyData": [
    {
      "time": "2025-05-01T08:00:00.000Z",
      "monthly_votes": 24852,
      "total_votes": 221182027,
      "server_count": 3371839,
      "review_count": 10682,
      "monthly_votes_change": 142,
      "monthly_votes_change_perc": 0.57,
      "server_count_change": 1839,
      "total_votes_change": 82027,
      "review_count_change": 2
    }
  ],
  "dailyData": [
    {
      "time": "2025-05-01T00:00:00.000Z",
      "monthly_votes": 24852,
      "total_votes": 221182027,
      "server_count": 3371839,
      "review_count": 10682,
      "monthly_votes_change": 142,
      "monthly_votes_change_perc": 0.57,
      "server_count_change": 1839,
      "total_votes_change": 82027,
      "review_count_change": 2
    }
  ]
}
{
  "code": 404,
  "message": "Resource not found"
}
GET
/discord/bots/{id}/leaderboard

Authorization

ApiKeyAuth
authorization<token>

In: header

Path Parameters

id*string

Discord snowflake ID

Match^[0-9]{17,19}$
limit*number

Maximum number of results to return

Default100
Range1 <= value <= 500
offset*number

Offset for pagination

Default0
Range0 <= value

Response Body

application/json

application/json

curl -X GET "https://api.topstats.gg/discord/bots/583807014896140293/leaderboard"
{
  "code": 200,
  "data": {
    "total": 150,
    "leaderboard": [
      {
        "position": "1",
        "connectionId": "809106054496370688",
        "userId": "3323278129891049472",
        "voteCount": 542,
        "totalVotesByWeight": 1625,
        "streakCount": 12,
        "lastVote": "2025-05-01T08:15:00.245Z",
        "user": {
          "topggId": "3323278129891049472",
          "discordId": "205680187394752512",
          "username": "Xignotic",
          "avatar": "https://cdn.discordapp.com/avatars/205680187394752512/9d9214191caa8969d907c91444261755.png"
        }
      }
    ]
  }
}
{
  "code": 404,
  "message": "Resource not found"
}
GET
/discord/bots/{id}/leaderboard/{userId}

Authorization

ApiKeyAuth
authorization<token>

In: header

Path Parameters

id*string

Discord snowflake ID

Match^[0-9]{17,19}$
userId*string

Discord snowflake ID

Match^[0-9]{17,19}$

Response Body

application/json

application/json

curl -X GET "https://api.topstats.gg/discord/bots/583807014896140293/leaderboard/583807014896140293"
{
  "code": 200,
  "total": "150",
  "data": {
    "position": "1",
    "connectionId": "809106054496370688",
    "userId": "3323278129891049472",
    "voteCount": 542,
    "totalVotesByWeight": 1625,
    "streakCount": 12,
    "lastVote": "2025-05-01T08:15:00.245Z",
    "user": {
      "topggId": "3323278129891049472",
      "discordId": "205680187394752512",
      "username": "Xignotic",
      "avatar": "https://cdn.discordapp.com/avatars/205680187394752512/9d9214191caa8969d907c91444261755.png"
    }
  }
}
{
  "code": 404,
  "message": "Resource not found"
}