Skip to content
Gamatek edited this page May 21, 2026 · 4 revisions

Welcome to the rigel-server-rs wiki!

📄 Rigel API Documentation (old)

1. Instance

GET Get Instance Info

/ping

Returns information about the Rigel instance.

Response
{
"ping": "pong!",
"instance": {
"name": "My Rigel Instance",
"description": "A self-hosted Rigel server",
"image": "https://example.com/logo.png",
"correspondenceEmail": "contact@example.com",
"correspondenceUserID": "123456789012345678",
"frontPage": "https://example.com",
"tosPage": "https://example.com/tos"
} }

2. Authentication

GET Discord Callback

/auth/discord-callback

Authenticates a user via Discord OAuth2 and returns a session token.

Query Parameters
ParameterTypeRequiredDescription
codestringOAuth2 authorization code
redirect_uristringOAuth2 redirect URI (must be valid URL)
Response
{
"token": "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXX"
}

GET Get Auth Sessions

/auth/sessions

Returns all active sessions for the authenticated user.

Headers
HeaderTypeRequiredDescription
AuthorizationstringUser token
Response
{
"user_sessions": [
{
"id_hash": "abc123",
"approx_last_used_time": 1701878400000,
"client_info": {
"os": "Windows",
"platform": "Desktop",
"location": "France"
}
}
]
}

POST Logout Auth Sessions

/auth/sessions/logout

Logs out one or more sessions by their ID hashes.

Headers
HeaderTypeRequiredDescription
AuthorizationstringUser token
Request Body
{
"session_id_hashes": ["abc123", "def456"]
}
FieldTypeRequiredDescription
session_id_hashesstring[]Array of session IDs to logout (1-100)
Response

204 No Content


3. Gateway

GET Get Gateway

/gateway

Returns the WebSocket URL for connecting to the gateway.

Response
{
"url": "wss://gateway.example.com/gateway"
}

GET Get Gateway Bot

/gateway/bot

Returns the WebSocket URL and sharding information for bots.

Response
{
"url": "wss://gateway.example.com/gateway",
"shards": 1,
"session_start_limit": {
"remaining": 0,
"total": 1,
"max_concurrency": 1,
"reset_after": 14400000
}
}

4. Discovery

GET Get Discoverable Guilds

/discoverable-guilds

Returns a list of all discoverable guilds.

Headers
HeaderTypeRequiredDescription
AuthorizationstringUser token
Response
{
"guilds": [
{
"id": "123456789012345678",
"name": "My Server",
"icon": "a_1234567890abcdef",
"banner": null,
"description": "A cool server",
"vanity_url_code": "myserver",
"approximate_member_count": 150,
"approximate_presence_count": 42
}
],
"offset": 0,
"limit": 10,
"total": 1
}

5. Guilds

POST Create Guild

/guilds

Creates a new guild. Requires Staff flag.

Request Body
{
"name": "My New Server",
"icon": "data:image/png;base64,..."
}
FieldTypeRequiredDescription
namestringGuild name (2-100 characters)
iconstring?Base64 encoded image (png/jpg/gif/webp)
Response

Returns a complete Guild object with channels, roles, and members.


PATCH Modify Guild

/guilds/{guild.id}

Modifies a guild's settings. Requires MANAGE_GUILD permission.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
Request Body
{
"name": "New Name",
"icon": "data:image/png;base64,...",
"banner": null,
"description": "A cool server description",
"system_channel_id": "123456789012345678",
"rules_channel_id": null
}
FieldTypeRequiredDescription
namestringGuild name (2-100 characters)
iconstring?Base64 image or null to remove
bannerstring?Base64 image or null to remove
descriptionstring?Guild description (max 1000 chars)
system_channel_idsnowflake?System messages channel ID
rules_channel_idsnowflake?Rules channel ID

POST Delete Guild

/guilds/{guild.id}/delete

Permanently deletes a guild. Must be the guild owner.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
Response

204 No Content


DELETE Kick Guild Member

/guilds/{guild.id}/members/{user.id}

Kicks a member from the guild. Requires KICK_MEMBERS permission.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
user.idsnowflakeUser ID to kick
Response

204 No Content


PUT Add Guild Member Role

/guilds/{guild.id}/members/{user.id}/roles/{role.id}

Adds a role to a guild member. Requires MANAGE_ROLES permission.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
user.idsnowflakeUser ID
role.idsnowflakeRole ID
Response

204 No Content


DELETE Remove Guild Member Role

/guilds/{guild.id}/members/{user.id}/roles/{role.id}

Removes a role from a guild member. Requires MANAGE_ROLES permission.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
user.idsnowflakeUser ID
role.idsnowflakeRole ID
Response

204 No Content


POST Create Guild Role

/guilds/{guild.id}/roles

Creates a new role in the guild. Requires MANAGE_ROLES permission.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
Request Body
{
"name": "Moderators",
"color": 3447003,
"hoist": true,
"unicode_emoji": "🛡️",
"permissions": "1099511627775",
"mentionable": true
}
FieldTypeRequiredDescription
namestringRole name (default: "new role")
colorintegerRGB color value
hoistbooleanDisplay separately in sidebar
unicode_emojistring?Unicode emoji for role icon
permissionsstringPermission bit set as string
mentionablebooleanAllow anyone to @mention role

PATCH Modify Guild Role Positions

/guilds/{guild.id}/roles

Modifies the positions of roles in the guild. Requires MANAGE_ROLES permission.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
Request Body
[
{ "id": "123456789012345678", "position": 1 },
{ "id": "234567890123456789", "position": 2 }
]

PATCH Modify Guild Role

/guilds/{guild.id}/roles/{role.id}

Modifies a role's settings. Requires MANAGE_ROLES permission.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
role.idsnowflakeRole ID
Request Body

Same as Create Guild Role.


6. Invites

POST Accept Invite

/invites/{invite.code}

Joins a guild using its vanity URL code.

Path Parameters
ParameterTypeDescription
invite.codestringVanity URL code (1-32 chars)
Request Body
{
"session_id": "abc123def456"
}
FieldTypeRequiredDescription
session_idstringGateway session ID
Response
{
"id": 0,
"type": 0,
"code": "myserver",
"expires_at": null,
"flags": 0,
"guild_id": "123456789012345678",
"guild": null,
"channel": null,
"new_member": true
}

7. Messages

GET Get Channel Messages

/channels/{channel.id}/messages

Returns messages from a channel. Requires VIEW_CHANNEL and READ_MESSAGE_HISTORY permissions.

Path Parameters
ParameterTypeDescription
channel.idsnowflakeChannel ID
Query Parameters
ParameterTypeRequiredDescription
limitintegerNumber of messages (1-100, default: 50)
beforesnowflakeGet messages before this ID
aftersnowflakeGet messages after this ID
aroundsnowflakeGet messages around this ID
Response
[
{
"id": "123456789012345678",
"type": 0,
"timestamp": "2024-12-06T12:00:00.000Z",
"edited_timestamp": null,
"channel_id": "234567890123456789",
"content": "Hello, world!",
"flags": 0,
"author": {
"id": "345678901234567890",
"username": "User",
"global_name": "Display Name",
"avatar": "a_1234567890abcdef",
"banner": null,
"public_flags": 0
}
}
]

POST Create Message

/channels/{channel.id}/messages

Sends a message to a channel. Requires VIEW_CHANNEL and SEND_MESSAGES permissions.

Path Parameters
ParameterTypeDescription
channel.idsnowflakeChannel ID
Request Body
{
"content": "Hello, world!",
"nonce": "unique-id-123",
"tts": false
}
FieldTypeRequiredDescription
contentstringMessage content (1-4000 chars)
noncestringNonce for message deduplication
ttsbooleanText-to-speech (default: false)
Response

Returns a Message object.


PATCH Edit Message

/channels/{channel.id}/messages/{message.id}

Edits a previously sent message. Only the author can edit their messages.

Path Parameters
ParameterTypeDescription
channel.idsnowflakeChannel ID
message.idsnowflakeMessage ID
Request Body
{
"content": "Edited message content"
}
FieldTypeRequiredDescription
contentstringNew message content (1-4000 chars)

DELETE Delete Message

/channels/{channel.id}/messages/{message.id}

Deletes a message. Authors can delete their own messages, or requires MANAGE_MESSAGES permission.

Path Parameters
ParameterTypeDescription
channel.idsnowflakeChannel ID
message.idsnowflakeMessage ID
Response

204 No Content


8. Users

DELETE Leave Guild

/users/@me/guilds/{guild.id}

Leaves a guild. Cannot leave if you are the owner.

Path Parameters
ParameterTypeDescription
guild.idsnowflakeGuild ID
Response

204 No Content


PATCH Modify User Settings

/users/@me/settings

Updates the authenticated user's settings.

Request Body
{
"status": "online",
"locale": "fr",
"theme": "dark",
"developer_mode": true,
"background_gradient_preset": "midnight-blurple"
}
FieldTypeRequiredDescription
statusstringonline, idle, dnd, invisible
localestringUser locale (2-6 chars)
themestringdark or light
developer_modebooleanEnable developer mode
background_gradient_presetstring?Background gradient preset name
Available Gradient Presets

mint-apple · citrus-sherbert · retro-raincloud · hanami · sunrise · cotton-candy · lofi-vibes · desert-khaki · sunset · chroma-glow · forest · crimson-moon · midnight-blurple · mars · dusk · under-the-sea · retro-storm · neon-nights · strawberry-lemonade · aurora · sepia · blurple-twilight


GET Get User Profile

/users/{user.id}/profile

Returns a user's profile information.

Path Parameters
ParameterTypeDescription
user.idsnowflakeUser ID
Response
{
"user_profile": {
"bio": "Hello, I'm a cool user!",
"pronouns": "they/them",
"accent_color": 16711680,
"theme_colors": [16711680, 255]
}
}

9. Bots

⚠️Staff Only - These endpoints require the Staff user flag.

POST Create Bot

/bots

Creates a new bot account.

Request Body
{
"username": "MyBot",
"avatar": "data:image/png;base64,...",
"banner": null
}
FieldTypeRequiredDescription
usernamestringBot username (2-32 characters)
avatarstring?Base64 encoded avatar image
bannerstring?Base64 encoded banner image
Response
{
"id": "123456789012345678",
"username": "MyBot",
"discriminator": "0",
"avatar": null,
"banner": null,
"bot": true,
"public_flags": 0,
"token": "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.XXXXXX.XXXXXXXXXXXXXXXXXXXXXXXX"
}

POST Reset Bot Token

/bots/{bot.id}/reset

Regenerates the token for a bot.

Path Parameters
ParameterTypeDescription
bot.idsnowflakeBot ID
Response
{
"token": "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.YYYYYY.YYYYYYYYYYYYYYYYYYYYYYYY"
}

GET Get Bot

/bots/{bot.id}

Returns information about a bot.

Path Parameters
ParameterTypeDescription
bot.idsnowflakeBot ID
Response
{
"id": "123456789012345678",
"username": "MyBot",
"discriminator": "0",
"avatar": null,
"banner": null,
"bot": true,
"public_flags": 0
}

DELETE Delete Bot

/bots/{bot.id}

Permanently deletes a bot account.

Path Parameters
ParameterTypeDescription
bot.idsnowflakeBot ID
Response

204 No Content


PUT Add Bot to Guild

/bots/{bot.id}/guilds/{guild.id}

Adds a bot to a guild.

Path Parameters
ParameterTypeDescription
bot.idsnowflakeBot ID
guild.idsnowflakeGuild ID
Response

204 No Content


Made with ❤️ by the Rigel Team