Skip to main content

Projects

Project endpoints are subject to stricter rate limits than others.

Get Current Project

GET

v1/projects/@me

Gets the project associated with this token.

Response Body

FieldTypeDescription
idSnowflakeThe unique Top.gg-sourced identifier.
namestringName of the project sourced from the external platform.
platformPlatformThe platform this project originates from.
typeTypeThe type we classify this project as.
headlinestringThe short description provided during project creation.
tagsstring[]A list of all tag IDs.
votesnumberThe current number of votes which count towards ranking.
votes_totalnumberThe total number of votes this project has had.
review_scorenumberThe average score of all reviews summed.
review_countnumberThe total number of reviews left on this project.

Example Response

{
"id": "218109768489992192",
"name": "Miki",
"type": "bot",
"platform": "discord",
"headline": "A great bot with tons of features! language | admin | cards | fun | levels | roles | marriage | currency | custom commands!",
"tags": [
"anime",
"customizable-behavior",
"economy",
"fun",
"game",
"leveling",
"multifunctional",
"role-management",
"roleplay",
"social"
],
"votes": 1120,
"votes_total": 313389,
"review_score": 4.38,
"review_count": 62245
}

Update Discord Bot Commands

POST

v1/projects/@me/commands

Updates the commands for a specific bot.

Post Body

This endpoint accepts an array of objects following Discord's application command structure.

Here's the documentation for your new endpoint:


Get Votes

GET

v1/projects/@me/votes

Gets a cursor-based paginated list of votes for the authenticated project, ordered by creation date.

Query Parameters

ParameterTypeDescription
cursor?stringPagination cursor from a previous response. If provided, startDate is ignored.
startDate?DateISO 8601 timestamp to start fetching votes from. Required if cursor is not provided. Maximum 1 year in the past.

Note: Either cursor or startDate must be provided.

Response Body

FieldTypeDescription
cursorstringCursor for fetching the next page of results.
data[Vote](/Models/v1/project#Vote)[]Array of vote records for the current token's project.

Example Response

{
"cursor": "<cursor-token>",
"data": [
{
"user_id": "1234567890",
"platform_id": "1234567890",
"weight": 1,
"created_at": "2026-01-28T02:19:19.145733Z",
"expires_at": "2026-01-28T14:19:19.145733Z"
},
...
]
}

Get Vote Status By User

GET

v1/projects/@me/votes/:user_id

Gets the vote status for an individual user.

Query Parameters

ParameterTypeDescription
source?SourceThe source where the user ID is coming from.

Response Body

FieldTypeDescription
created_atDateThe timestamp of when the user last voted.
expires_atDateThe timestamp of when the user can vote again.
weightnumberThe amount of votes this vote counted for.

Example Response

{
"created_at": "2023-10-01T12:34:56.789Z",
"expires_at": "2023-10-01T18:34:56.789Z",
"weight": 1
}