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
Parameter Type Required Description
code string OAuth2 authorization code
redirect_uri string OAuth2 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
Header Type Required Description
Authorization string User 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
Header Type Required Description
Authorization string User token
Request Body
{
  "session_id_hashes": ["abc123", "def456"]
}
Field Type Required Description
session_id_hashes string[] 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
Header Type Required Description
Authorization string User 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,..."
}
Field Type Required Description
name string Guild name (2-100 characters)
icon string? 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
Parameter Type Description
guild.id snowflake Guild 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
}
Field Type Required Description
name string Guild name (2-100 characters)
icon string? Base64 image or null to remove
banner string? Base64 image or null to remove
description string? Guild description (max 1000 chars)
system_channel_id snowflake? System messages channel ID
rules_channel_id snowflake? Rules channel ID

POST Delete Guild

/guilds/{guild.id}/delete

Permanently deletes a guild. Must be the guild owner.

Path Parameters
Parameter Type Description
guild.id snowflake Guild 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
Parameter Type Description
guild.id snowflake Guild ID
user.id snowflake User 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
Parameter Type Description
guild.id snowflake Guild ID
user.id snowflake User ID
role.id snowflake Role 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
Parameter Type Description
guild.id snowflake Guild ID
user.id snowflake User ID
role.id snowflake Role 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
Parameter Type Description
guild.id snowflake Guild ID
Request Body
{
  "name": "Moderators",
  "color": 3447003,
  "hoist": true,
  "unicode_emoji": "🛡️",
  "permissions": "1099511627775",
  "mentionable": true
}
Field Type Required Description
name string Role name (default: "new role")
color integer RGB color value
hoist boolean Display separately in sidebar
unicode_emoji string? Unicode emoji for role icon
permissions string Permission bit set as string
mentionable boolean Allow 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
Parameter Type Description
guild.id snowflake Guild 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
Parameter Type Description
guild.id snowflake Guild ID
role.id snowflake Role 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
Parameter Type Description
invite.code string Vanity URL code (1-32 chars)
Request Body
{
  "session_id": "abc123def456"
}
Field Type Required Description
session_id string Gateway 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
Parameter Type Description
channel.id snowflake Channel ID
Query Parameters
Parameter Type Required Description
limit integer Number of messages (1-100, default: 50)
before snowflake Get messages before this ID
after snowflake Get messages after this ID
around snowflake Get 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
Parameter Type Description
channel.id snowflake Channel ID
Request Body
{
  "content": "Hello, world!",
  "nonce": "unique-id-123",
  "tts": false
}
Field Type Required Description
content string Message content (1-4000 chars)
nonce string Nonce for message deduplication
tts boolean Text-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
Parameter Type Description
channel.id snowflake Channel ID
message.id snowflake Message ID
Request Body
{
  "content": "Edited message content"
}
Field Type Required Description
content string New 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
Parameter Type Description
channel.id snowflake Channel ID
message.id snowflake Message 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
Parameter Type Description
guild.id snowflake Guild 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"
}
Field Type Required Description
status string online, idle, dnd, invisible
locale string User locale (2-6 chars)
theme string dark or light
developer_mode boolean Enable developer mode
background_gradient_preset string? 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
Parameter Type Description
user.id snowflake User 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
}
Field Type Required Description
username string Bot username (2-32 characters)
avatar string? Base64 encoded avatar image
banner string? 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
Parameter Type Description
bot.id snowflake Bot ID
Response
{
  "token": "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.YYYYYY.YYYYYYYYYYYYYYYYYYYYYYYY"
}

GET Get Bot

/bots/{bot.id}

Returns information about a bot.

Path Parameters
Parameter Type Description
bot.id snowflake Bot 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
Parameter Type Description
bot.id snowflake Bot ID
Response

204 No Content


PUT Add Bot to Guild

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

Adds a bot to a guild.

Path Parameters
Parameter Type Description
bot.id snowflake Bot ID
guild.id snowflake Guild ID
Response

204 No Content


Made with ❤️ by the Rigel Team