GET /bots
Searches the Top.gg bot directory with optional filtering, sorting, and pagination.Query parameters
Number of bots to return. Maximum
500.Number of bots to skip before returning results. Use with
limit for pagination.Field to sort results by. Prefix with
- to sort in descending order (e.g., -points).Comma-separated list of Bot fields to include in the response. Defaults to all fields.
Response fields
Array of Bot objects matching the query.
The
limit value used for this request.The
offset value used for this request.Number of results returned in this response.
Total number of bots matching the search query.
GET /bots/:bot_id
Returns a single Bot object by its Discord application ID. Returns404 Not Found if no bot with that ID is listed on Top.gg.
GET /bots/:bot_id/votes
Returns the last 1000 unique voters for the specified bot. Each entry includes the voter’s username, Discord user ID, and avatar hash.Response
Returns an array of voter objects:The voter’s Discord username.
The voter’s Discord Snowflake ID.
The voter’s Discord avatar hash.
GET /bots/:bot_id/stats
Returns server and shard statistics for the specified bot.Response fields
Total number of servers the bot is in. May be absent if not posted.
Array of server counts per shard.
Total number of shards. May be absent if not posted.
GET /bots/:bot_id/check
Checks whether a specific user has an active vote for the bot. Safe to call even if your bot has more than 1,000 monthly votes.Query parameters
The Discord Snowflake ID of the user to check.
Response
voted value of 1 means the user has voted in the past 12 hours. A value of 0 means they have not.
POST /bots/:bot_id/stats
Posts updated server count statistics for the specified bot. Call this endpoint whenever your bot’s server count changes, for example when it joins or leaves a guild.Request body
The number of servers your bot is in. Pass an array to post per-shard counts (equivalent to using the
shards field).An array of server counts, one entry per shard.
The zero-indexed ID of the shard posting stats. Used when posting per-shard updates.
The total number of shards your bot is running.
Response
Returns200 OK with an empty body on success.
Bot structure
Every bot endpoint that returns a Bot object uses the following structure:| Field | Type | Description |
|---|---|---|
id | string | Discord application Snowflake ID |
username | string | Bot username |
discriminator | string | Bot discriminator |
avatar | string? | Avatar hash (null if no custom avatar) |
defAvatar | string? | Default CDN avatar hash |
lib | string | Library the bot is built with |
prefix | string | Bot command prefix |
shortdesc | string | Short description shown on listings |
longdesc | string? | Full description (may contain Markdown or HTML) |
tags | string[] | List of category tags |
website | string? | Bot’s website URL |
support | string? | Support server invite code |
github | string? | GitHub repository URL |
owners | string[] | Snowflake IDs of the bot’s owners |
guilds | string[] | Snowflake IDs of featured guilds |
invite | string? | Custom invite URL |
date | string | ISO 8601 date the bot was added to Top.gg |
server_count | number? | Current server count (if posted) |
shard_count | number? | Current shard count (if posted) |
certifiedBot | boolean | Whether the bot is Top.gg certified |
vanity | string? | Vanity URL slug |
points | number | All-time vote count |
monthlyPoints | number | Vote count for the current month |
donatebotguildid | string | Guild ID for Donatebot integration (empty if unused) |