Skip to content

Users

GET /api/v1/me

Returns the authenticated user’s profile.

Headers: Authorization: Bearer <token>

Response 200 OK:

{
"id": 1,
"username": "alice",
"email": "alice@example.com",
"bio": "Hello!",
"avatar_url": "https://cdn.example.com/avatar.png",
"profile_background_url": ""
}
PATCH /api/v1/me

Update the authenticated user’s profile fields.

Headers: Authorization: Bearer <token>

Request body (all fields optional):

{
"username": "alice_updated",
"bio": "New bio text"
}

Response 200 OK: Returns the updated user object.

GET /api/v1/me/layout

Returns the user’s saved guild and channel ordering.

Headers: Authorization: Bearer <token>

Response 200 OK:

{
"guild_order": [1, 3, 2],
"channel_order": {
"1": [10, 11, 12],
"3": [30, 31]
}
}
PUT /api/v1/me/layout

Save the user’s guild and channel ordering.

Headers: Authorization: Bearer <token>

Request body:

{
"guild_order": [1, 3, 2],
"channel_order": {
"1": [10, 11, 12]
}
}

Response 200 OK: Returns the saved layout object.

POST /api/v1/me/avatar-upload

Upload a new avatar image. Requires multipart/form-data with a file field. Max 10MB, max 1000x1000px.

Headers: Authorization: Bearer <token>

Response 200 OK:

{
"avatar_url": "https://cdn.example.com/new-avatar.png"
}
POST /api/v1/me/profile-background-upload

Upload a profile background image. Same format as avatar upload.

Headers: Authorization: Bearer <token>

Response 200 OK:

{
"profile_background_url": "https://cdn.example.com/bg.png"
}
GET /api/v1/users

List all registered users. Supports search with the q query parameter.

Headers: Authorization: Bearer <token>

Query parameters:

ParameterDescription
qSearch by username (optional)
limitMax results to return (optional)

Response 200 OK:

[
{
"id": 1,
"username": "alice",
"avatar_url": "https://cdn.example.com/avatar.png"
}
]
GET /api/v1/users/:id/profile

Fetch a specific user’s public profile.

Headers: Authorization: Bearer <token>

Query parameters:

ParameterDescription
guild_idOptional guild context for member info

Response 200 OK:

{
"id": 1,
"username": "alice",
"bio": "Hello!",
"avatar_url": "https://cdn.example.com/avatar.png",
"profile_background_url": ""
}