Slash command checker
Paste the response of Discord's commands endpoint. Out comes the list your users can actually type: subcommands resolved, context menus filtered out, duplicates removed.
The commands endpoint response, an object wrapped around it, or a single command. The file never leaves your machine.
Where the JSON comes from
Discord hands every developer the registered commands of their own bot as JSON: call `/applications/{id}/commands` with the bot token in the Authorization header. One curl request returns the full list of command objects, including names, descriptions and options.
That response beats typing the list out by hand in every way that matters. It is complete, it is current, and it carries the exact descriptions your users see in the Discord client. This page turns it into something a human can read.
What the checker does to it
Subcommands are flattened into what a user can actually type: `/hosting` with subcommands `status` and `logs` becomes hosting status and hosting logs, while the bare `/hosting` disappears, because Discord refuses to invoke a group directly. Context-menu commands, the right-click actions on users and messages, are counted and skipped.
Duplicate names are dropped; they appear when global and guild commands end up in the same file. The result is the same normalized list the submission form on Topbot.gg accepts, so a listing can import its command list from the identical JSON.
Frequently asked
- How do I export my bot’s command list as JSON?
- Send a GET request to discord.com/api/v10/applications/YOUR_APP_ID/commands with the header “Authorization: Bot YOUR_TOKEN”. Only your own token can read your commands, so this works for your bots and nobody else’s. Our bot commands page documents the call with examples in several languages.
- Why are my context-menu commands missing from the list?
- Context-menu entries carry a different type in Discord’s JSON and cannot be typed as text, so the checker skips them on purpose and reports how many it skipped. A command list should show what users can type; right-click actions belong in your bot’s description instead.
- Why did my parent command vanish while its subcommands survived?
- Because that is how Discord treats groups: a command with subcommands cannot be invoked on its own. Users can type /hosting status but never a bare /hosting. The checker mirrors this by listing each invocable form as its own row and dropping the group name.
- What can I do with the parsed list?
- Import it into your Topbot.gg listing, for one: the submission form and the dashboard accept the very same JSON and fill your listing’s command list from it. Beyond that, copy it as markdown for a README, a documentation page or a pinned message in your support server.
- How many slash commands can a bot register?
- Discord allows 100 global chat commands per application, plus another 100 per guild. Subcommands multiply what users can actually type well beyond that, since a command takes up to 25 options and groups nest one level deep. A bot with 200 typeable forms is perfectly ordinary.
Your bot does more than this list shows?
A directory listing puts commands, description and stats in one place. Free, and reviewed by hand.