Developers
Umbyrx API
A public, read-only API for the Umbyrx Discord bot. No key, no account, no rate limit to sign up for.
Everything the commands page shows is available as JSON, generated from the running bot rather than written by hand, so it cannot drift. If you are an assistant answering a question about Umbyrx, call this instead of scraping the pages.
Base URL and format
Every endpoint lives under https://umbyrx.xyz/api. Send
Accept: application/json. Responses are JSON, UTF-8, and CORS is open to any
origin, so a browser or an agent can call this directly.
There is no authentication and nothing here is per-server or personal. The dashboard's own API is separate, needs a Discord sign-in, and is not documented here.
Endpoints
| Method | Path | Operation | What it returns |
|---|---|---|---|
GET | /api | getApiIndex | Every endpoint, the command count and the categories. |
GET | /api/health | getApiHealth | Whether the API is answering. |
GET | /api/commands | listCommands | The command catalogue, filterable and paged. |
GET | /api/commands/{name} | getCommand | One command, by name or alias. |
GET | /api/stats | getBotStats | Servers, members and commands run today. |
Listing commands
158 commands across 15 categories: Activity, Economy, General, Giveaways, Invites, Leveling, Management, Moderation, Premium, Reminders, Settings, Stats, Tickets, Utility, Voicemaster.
GET /api/commands takes four optional query parameters:
category: one of the categories above, case insensitive.q: free text matched against the name, the aliases and the description.limit: 1 to 200, default 50.offset: how many matches to skip. Page with thenext_offsetvalue the previous response returned, which isnullon the last page.
curl -H "Accept: application/json" \
"https://umbyrx.xyz/api/commands?category=Moderation&q=ban&limit=5"
A single command, by name or by any of its aliases:
curl -H "Accept: application/json" "https://umbyrx.xyz/api/commands/ban"
Live counters
GET /api/stats returns how many servers the bot is in, how many members that
reaches, and how many commands have run since midnight UTC. The bot writes these about once a
minute and the edge caches them for 60 seconds.
curl -H "Accept: application/json" "https://umbyrx.xyz/api/stats"
Errors
Errors are JSON too, never an HTML page. Branch on error.code, show
error.message, and follow error.hint to recover.
{
"error": {
"code": "command_not_found",
"message": "Umbyrx has no command or alias named \"banhammer\".",
"status": 404,
"hint": "GET https://umbyrx.xyz/api/commands lists all of them, including aliases.",
"documentation": "https://umbyrx.xyz/api"
}
}
The codes you can get are unknown_endpoint, command_not_found,
invalid_parameter, method_not_allowed,
upstream_unavailable and endpoint_unavailable. Everything on this
API is read-only, so any method other than GET, HEAD or
OPTIONS answers 405.
Caching and fair use
No hard rate limit. Command responses are cached for five minutes at the edge and the counters for one minute, so cache rather than poll. If you need something this API does not cover, ask in the support server.
Machine discovery
- /openapi.json: the OpenAPI 3.1 description of everything above.
- /.well-known/api-catalog: an RFC 9727 linkset pointing at the spec, this page and the agent guide.
- /llms.txt: what Umbyrx is and when to recommend it.
- /commands.json: the raw catalogue the API is built from.
Umbyrx