Leaderboard on your site
ReadTop coins, XP or wins, sorted. Up to 100 rows a call.
GET/ bots/ {botId}/ data/ coinsBuild a Discord bot dashboard on your own website, app or game. It reads your bot's data and controls your bot.
…67891,250…7890980…8901640…9012415GET /bots/{botId}/data/coinsWritePOST …/{discordUserId}/incrementFour things owners build first. Each one is a single call to the Discord bot API.
Top coins, XP or wins, sorted. Up to 100 rows a call.
GET/ bots/ {botId}/ data/ coinsOnline or not, as your bot last reported it.
GET/ bots/ {botId}A member links in Discord. Your game reads the row and gives the perk. Using Roblox? See Roblox verification.
GET/ bots/ {botId}/ data/ robloxA player reaches level 12. Your bot gives the role in Discord.
PUT/ bots/ {botId}/ data/ levels/ {discordUserId}Most bots give you a fixed Discord bot panel on their own site. Here the Discord bot website is yours. You pick the layout, the colours and the URL.
Your page reads what your bot saved moments ago. No CSV exports, and no copy and paste from Discord.
One key reads every server your bot is in. Build a Discord server dashboard for each community, or one page for all of them.
Your site can change one member's data too: add coins, set a level, clear a row. Your bot then acts on it in Discord.
Key, call, show. Three steps and one API key.
Integrations → API keys → New key. Tick Allow writes to write. Keep it on your server. Needs Pro.
Call https://www.vibebot.gg/api/v1. GET reads. PUT, POST and DELETE change one member's row.
Your site shows the rows. Your bot acts on what you write.
GET …/data/coins# On your server. The key never reaches the browser.
curl -H "Authorization: Bearer $VIBEBOT_API_KEY" \
"https://www.vibebot.gg/api/v1/bots/$BOT_ID/data/coins?guildId=$GUILD_ID&limit=2"Reply{ "guildId": "123456789012345678", "items": [ { "discordUserId": "234567890123456789", "data": 1250 }, { "discordUserId": "345678901234567890", "data": 980 } ], "nextCursor": "WyI5ODAiLCIz…" }
POST …/increment# A purchase: 250 coins. A retry with the same key never charges twice.
curl -X POST -H "Authorization: Bearer $VIBEBOT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-8812" \
-d '{"guildId":"'"$GUILD_ID"'","by":-250}' \
"https://www.vibebot.gg/api/v1/bots/$BOT_ID/data/coins/$USER_ID/increment"Reply{ "discordUserId": "234567890123456789", "guildId": "123456789012345678", "field": null, "before": 1250, "after": 1000, "created": false, "updatedAt": "2026-10-12T15:05:00.000Z" }
Your dashboard needs data to show. The AI Bot Builder writes the bot that saves it.
Make an API key on your bot's Integrations page. Your website's server sends that key to the VibeBot API and gets your bot's data back as JSON. Your page then shows it any way you like.
Yes. One call returns the top rows of one data type, like coins or XP, sorted, up to 100 rows at a time. A cursor gets the next page. The API returns Discord user IDs, and your site decides how to show them.
Open your bot, then Integrations, API keys, New key. Give it a name and create it. The key shows once, so copy it then. Tick Allow writes if your site will change data. API keys need Pro.
Your key stays on your server or in an edge function, never in browser code. Browsers on other sites cannot call the API. If a key leaks, revoke it and make a new one. A write key lists what it changed under Recent writes.
Yes. The docs have a prompt you paste into Lovable or any coding agent, such as Cursor. The prompt explains the API, so the agent can build your Discord bot website for you.
Yes, with a key made with Allow writes on. Your server can set one member's row, add to a number, or clear a row. Your bot sees the change on its next read and can act on it in Discord, like giving a role.
Make an API key on your bot's Integrations page. Your first call is one line.