Users
Manage user profiles, social links, follows, and user content.
Base Endpoint
Section titled “Base Endpoint”All user endpoints are prefixed with /users
User Profile
Section titled “User Profile”Get My Profile
Section titled “Get My Profile”GET /users/meGet the current authenticated user’s profile.
Authentication: Required
Response:
{ "id": "user-id", "username": "username", "displayName": "Display Name", "email": "user@example.com", "bio": "User bio", "image": "https://...", "bannerUrl": "https://...", "role": "USER", "badges": [...], "createdAt": "2024-01-01T00:00:00Z"}Update My Profile
Section titled “Update My Profile”PATCH /users/meUpdate the current user’s profile.
Authentication: Required
Request Body: (all fields optional)
{ "displayName": "New Display Name", "bio": "Updated bio", "location": "City, Country", "website": "https://example.com"}Upload Profile Image
Section titled “Upload Profile Image”POST /users/me/imageUpload a profile image.
Authentication: Required
Content-Type: multipart/form-data
Form Data:
image(file) - Image file (PNG, JPG, WEBP)
Response:
{ "imageUrl": "https://cdn.orbis.place/profile-images/..."}Delete Profile Image
Section titled “Delete Profile Image”DELETE /users/me/imageDelete the profile image (reverts to default).
Authentication: Required
Upload Profile Banner
Section titled “Upload Profile Banner”POST /users/me/bannerUpload a profile banner.
Authentication: Required
Content-Type: multipart/form-data
Form Data:
banner(file) - Image file (PNG, JPG, WEBP)
Delete Profile Banner
Section titled “Delete Profile Banner”DELETE /users/me/bannerDelete the profile banner.
Authentication: Required
Get My Servers
Section titled “Get My Servers”GET /users/me/serversGet all servers owned by the current user.
Authentication: Required
Response:
{ "servers": [...]}User Lookup
Section titled “User Lookup”Get User by Username
Section titled “Get User by Username”GET /users/username/:usernameGet a user’s public profile by username.
Authentication: Optional
URL Parameters:
username(string) - Username
Response:
{ "id": "user-id", "username": "username", "displayName": "Display Name", "bio": "User bio", "image": "https://...", "bannerUrl": "https://...", "badges": [...], "socialLinks": [...], "followerCount": 50, "followingCount": 30, "isFollowing": false, "createdAt": "2024-01-01T00:00:00Z"}Get User by ID
Section titled “Get User by ID”GET /users/:userIdGet a user’s public profile by ID.
Authentication: Not required
URL Parameters:
userId(string) - User ID
Response: Same as get by username
Search Users
Section titled “Search Users”GET /users/searchSearch for users by username or display name.
Authentication: Required
Query Parameters:
q(string, required) - Search querylimit(number, optional) - Maximum results (default: 20)
Response:
{ "users": [ { "id": "user-id", "username": "username", "displayName": "Display Name", "image": "https://...", "badges": [...] } ]}Following System
Section titled “Following System”Follow User
Section titled “Follow User”POST /users/:userId/followFollow a user.
Authentication: Required
URL Parameters:
userId(string) - User ID to follow
Response:
{ "message": "User followed successfully", "followerCount": 51}Unfollow User
Section titled “Unfollow User”DELETE /users/:userId/followUnfollow a user.
Authentication: Required
URL Parameters:
userId(string) - User ID to unfollow
Response:
{ "message": "User unfollowed successfully", "followerCount": 50}Get User Followers
Section titled “Get User Followers”GET /users/:userId/followersGet a list of users following this user.
Authentication: Not required
URL Parameters:
userId(string) - User ID
Response:
{ "followers": [ { "id": "follower-id", "username": "follower", "displayName": "Follower Name", "image": "https://...", "followedAt": "2024-01-01T00:00:00Z" } ], "total": 50}Get User Following
Section titled “Get User Following”GET /users/:userId/followingGet a list of users that this user is following.
Authentication: Not required
URL Parameters:
userId(string) - User ID
Response:
{ "following": [ { "id": "user-id", "username": "username", "displayName": "Display Name", "image": "https://...", "followedAt": "2024-01-01T00:00:00Z" } ], "total": 30}Social Links
Section titled “Social Links”Get My Social Links
Section titled “Get My Social Links”GET /users/me/social-linksGet the current user’s social links.
Authentication: Required
Response:
{ "socialLinks": [ { "id": "link-id", "platform": "TWITTER", "url": "https://twitter.com/username", "order": 0 } ]}Platforms: TWITTER, YOUTUBE, TWITCH, GITHUB, DISCORD, WEBSITE, OTHER
Create Social Link
Section titled “Create Social Link”POST /users/me/social-linksAdd a social link to your profile.
Authentication: Required
Request Body:
{ "platform": "TWITTER", "url": "https://twitter.com/username"}Response:
{ "id": "link-id", "platform": "TWITTER", "url": "https://twitter.com/username", "order": 0}Update Social Link
Section titled “Update Social Link”PATCH /users/me/social-links/:idUpdate a social link.
Authentication: Required
URL Parameters:
id(string) - Social link ID
Request Body:
{ "platform": "TWITTER", "url": "https://twitter.com/new-username"}Delete Social Link
Section titled “Delete Social Link”DELETE /users/me/social-links/:idDelete a social link.
Authentication: Required
URL Parameters:
id(string) - Social link ID
Reorder Social Links
Section titled “Reorder Social Links”PATCH /users/me/social-links/reorderReorder social links on your profile.
Authentication: Required
Request Body:
{ "linkIds": ["link-id-1", "link-id-2", "link-id-3"]}Response:
{ "message": "Social links reordered successfully"}