Start here
Getting started
Create an application, copy its bot token, add the bot to a server and run a first bot against the Voidcom API.
What the platform is
Voidcom's bot API is a documented subset of the Discord bot API v10: the same REST paths under https://api.voidcom.app/api/v10, the same gateway opcodes and JSON shapes at wss://api.voidcom.app/ws, Bot token auth and Discord's rate-limit headers. A Discord bot moves over by changing its base URL; a library written for Discord needs no fork.
The subset is exactly what the API reference lists and what the gateway events table lists. Anything else answers 501 with a JSON body. Bots are text only — there is no voice for bots — and the boundaries are spelled out on Differences from Discord. Nothing on these pages describes an endpoint or event that is not live today.
1. Create an application
Sign in at https://developers.voidcom.app with your normal Voidcom account (email + password, plus your second factor if you have one). Open Applications → New application, give it a name (1–64 characters) and an optional description. Creating an application also creates its bot user — the account your bot acts as, with its own snowflake id.
2. Copy the bot token
The token is shown exactly once, right after creating the application. Copy it into your bot's configuration; the server keeps no copy and the page will not show it again. If you lose it, Rotate on the application page mints a new one — the old token stops working on the next request, on every server replica.
Send the token on every REST request:
Authorization: Bot YOUR_VOIDCOM_BOT_TOKEN The gateway takes the same token inside IDENTIFY. Details on tokens, intents and rotation are on Authentication & applications.
3. Add the bot to a server
There is no OAuth2 authorize URL. On the application page, copy the install link (https://developers.voidcom.app/install/<application id>) and open it, or hand it to a server admin. Whoever opens it signs in, picks a server they have Manage Server on, and clicks Add. The bot then appears as a member and your gateway session receives GUILD_CREATE.
A bot cannot join a server on its own, create servers, or create invites.
4. Run a bot
The base URLs are https://api.voidcom.app/api/v10 for REST and wss://api.voidcom.app/ws for the gateway. GET /gateway/bot returns the gateway URL, so libraries that discover the gateway through REST only need the REST base changed.
Works today — discord.js with the Voidcom base URL
import { Client, GatewayIntentBits } from 'discord.js';
const client = new Client({
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent],
rest: { api: 'https://api.voidcom.app/api', version: '10' },
});
client.on('messageCreate', async (msg) => {
if (msg.content === '!ping') await msg.reply('Pong!');
});
await client.login(process.env.VOIDCOM_BOT_TOKEN); Works today — discord.py with the REST base overridden
discord.py has no setting for the API host, but the host lives in one class attribute. Override it before the client starts; the gateway URL is then taken from GET /gateway/bot.
import os
import discord
discord.http.Route.BASE = 'https://api.voidcom.app/api/v10'
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_message(msg):
if msg.content == '!ping':
await msg.reply('Pong!')
client.run(os.environ['VOIDCOM_BOT_TOKEN']) After the SDK packages are published — voidcom.py and voidcom.js
voidcom.py (PyPI) and voidcom.js (npm) are thin, rebase-able patch sets on discord.py and discord.js with the Voidcom URLs, the snowflake epoch and the unsupported endpoints pre-configured. They are not published yet. Once they are, the quickstart becomes:
pip install voidcom.py # after publish
npm install voidcom.js # after publish import voidcom # after publish — same API as discord.py, Voidcom defaults Until then, use the base-URL variants above.
Where to go next
- Authentication & applications — tokens, rotation, intents, the install link.
- Gateway — connection flow, heartbeats, RESUME, the events table.
- Interactions — slash commands, buttons, select menus, embeds.
- Migrate a Discord bot in 10 minutes — the checklist.