Users

This section describes the endpoints for managing users, their profiles, and their relationships with other users.

User Model

The User object represents a user in the system.

User Object
{
    "id": 1,
    "username": "string",
    "display_name": "string",
    "about_me": "string",
    "role": "string",
    "creation_date": 0,
    "last_activity_date": 0,
    "profile_picture_url": "string",
    "profile_banner_url": "string",
    "followers": [0],
    "following": [0],
    "is_banned": false,
    "is_muted": false,
    "is_locked": false,
    "embedded_profiles": ["string"]
}

Endpoints

/users [GET]

Get a list of all users.

Return Example

200 OK
[
    {
        "id": 1,
        "username": "saynedbread",
        "display_name": "SaynedBread",
        "about_me": "Welcome to my profile!",
        "role": "Developer",
        "creation_date": 1752888000,
        "last_activity_date": 1752888000,
        "profile_picture_url": "https://i.imgur.com/1bX5zhE.png",
        "profile_banner_url": "https://i.imgur.com/7zPcU5A.jpeg",
        "followers": [2,3,4],
        "following": [2,5],
        "is_banned": false,
        "is_muted": false,
        "is_locked": false,
        "embedded_profiles": {
            "discord": "saynedbread"
        }
    }
]
/users [POST]

Create a new user account. This endpoint is rate-limited.

Request Example

Body
{
    "username": "string",
    "display_name": "string",
    "password": "string"
}

Return Example

201 Created
{
    "message": "User created successfully",
    "user_id": 11
}
/users/{id} [GET]

Get a single user by their ID.

Return Example

200 OK
{
    "id": 1,
    "username": "saynedbread",
    "display_name": "SaynedBread",
    "about_me": "Welcome to my profile!",
    "role": "Developer",
    "creation_date": 1752888000,
    "last_activity_date": 1752888000,
    "profile_picture_url": "https://i.imgur.com/1bX5zhE.png",
    "profile_banner_url": "https://i.imgur.com/7zPcU5A.jpeg",
    "followers": [2,3,4],
    "following": [2,5],
    "is_banned": false,
    "is_muted": false,
    "is_locked": false,
    "embedded_profiles": {
        "discord": "saynedbread"
    }
}
* /users/{id} [DELETE]

Delete a user by their ID. You can only delete your own account.

/users/{id}/profile-picture [GET]

Get a user's profile picture URL by their user ID.

Return Example

200 OK
{
    "profile_picture_url": "https://i.imgur.com/1bX5zhE.png"
}
/users/{id}/profile-banner [GET]

Get a user's profile banner URL by their user ID.

Return Example

200 OK
{
    "profile_banner_url": "https://i.imgur.com/7zPcU5A.jpeg"
}
/users/{id}/about-me [GET]

Get a user's "about me" text by their user ID.

Return Example

200 OK
{
    "about_me": "Welcome to my profile!"
}
/users/{id}/follower-count [GET]

Get the number of followers for a user by their ID.

Return Example

200 OK
{
    "message": 3
}
/users/{id}/following-count [GET]

Get the number of users a user is following by their ID.

Return Example

200 OK
{
    "message": 2
}
/users/{id}/followers [GET]

Get the follower IDs for a user by their ID.

Return Example

200 OK
{
    "message": [2, 3, 4]
}
/users/{id}/following [GET]

Get the IDs of users a user is following by their ID.

Return Example

200 OK
{
    "message": [2, 5]
}
/users/{id}/embedded-profiles [GET]

Get embedded profiles by user ID.

Return Example

200 OK
{
    "embedded_profiles": {
        "discord": "saynedbread"
    }
}
/users/{id}/role [GET]

Get a user's role by their ID.

Return Example

200 OK
"Developer"
/users/{id}/username [GET]

Get a user's username by their ID.

Return Example

200 OK
"saynedbread"
/user/{username}/id [GET]

Get a user's ID by their username.

Return Example

200 OK
1
* /users/me [PUT]

Update the authenticated user's "about me" section.

Request Example

Body
{
    "about_me": "A new bio"
}
* /users/me/displayname [PUT]

Update the authenticated user's display name.

Request Example

Body
{
    "display_name": "A New Name"
}
* /users/me/profile-picture [PUT]

Update the authenticated user's profile picture URL.

Request Example

Body
{
    "profile_picture_url": "https://new.url/image.png"
}
* /users/me/profile-banner [PUT]

Update the authenticated user's profile banner URL.

Request Example

Body
{
    "profile_banner_url": "https://new.url/banner.png"
}
* /users/{id}/follow [POST]

Follow a user by their user ID.

* /users/{id}/unfollow [POST]

Unfollow a user by their user ID.

* /users/{id}/embedded-profiles [PUT]

Update embedded profiles by user ID.

Request Example

Body
{
    "embedded_profiles": ["steam:12345"]
}
* /users/{id}/embedded-profiles [DELETE]

Delete embedded profiles by user ID.

Request Example

Body
{
    "embedded_profiles": ["steam:12345"]
}
* /users/{id}/ban [POST]

Ban a user by their ID. Requires Moderator or Developer role.

* /users/{id}/mute [POST]

Mute a user by their ID. Requires Moderator or Developer role.

* /users/{id}/lock [POST]

Lock a user's account by their ID. Requires Moderator or Developer role.

* /token/user-id [GET]

Get user ID from a provided JWT token.

Return Example

200 OK
{
    "user_id": 1
}

Last updated