Overview
The Users endpoints provide access to public user profiles, allow users to manage their own accounts, and enable bot management. User profiles include forecasting statistics, bio information, and social links.Get Current User
GET /api/users/me/
Retrieve the authenticated user’s complete profile, including private information.
Response
integer
User ID
string
Username
string
Email address (private)
string (datetime)
When the user registered
string
User bio in markdown
string
Personal website URL
boolean
Whether this is a bot account
boolean
Whether the user is Metaculus staff
boolean
Whether the user has admin privileges
string
Profile picture URL
string
Geographic location
string
Professional occupation
string
Twitter handle
string
LinkedIn profile URL
string
GitHub username
boolean
Whether to hide community predictions by default
boolean
Whether the user has completed onboarding
number
Default forecast auto-withdrawal percentage
string
UI theme preference:
light, dark, or autostring
Preferred language code
string
API access tier level
array
List of email notification types the user has unsubscribed from
array
Previous usernames
object
Additional user metadata
Get User Profile
GET /api/users/{userId}/
Retrieve a public user profile.
Path Parameters
integer
required
The user ID
Response
Returns the same fields as/api/users/me/ but excludes private information:
- Email address
- Unsubscribed mailing tags
- Private metadata fields
List Users
GET /api/users/
Retrieve a paginated list of user profiles.
Query Parameters
integer
default:"20"
Number of users to return
integer
default:"0"
Pagination offset
Update Profile
PATCH /api/users/me/update/
Update the authenticated user’s profile.
Request Body
All fields are optional. Only include fields you want to update.string
User bio (supports markdown)
string
Personal website URL
string
Geographic location
string
Professional occupation
string
Twitter handle
string
LinkedIn profile URL
string
GitHub username
string
Profile picture URL
boolean
Hide community predictions by default
string
UI theme:
light, dark, or autostring
Preferred language code (e.g., “en”, “es”)
Change Username
POST /api/users/change-username/
Change the authenticated user’s username.
Request Body
string
required
New username. Must be unique and meet format requirements.
Username Change Restrictions
- Can only change username once every 180 days
- Username must be 1-30 characters
- Can only contain letters, numbers, and @/./+/-/_ characters
- Cannot be a reserved username (e.g., “admin”, “moderator”)
Change Password
POST /api/users/me/password/
Change the authenticated user’s password.
Request Body
string
required
Current password
string
required
New password (must meet security requirements)
Bot Management
List My Bots
GET /api/users/me/bots/
Retrieve all bots created by the authenticated user.
Response
array
Array of bot user objects
Create Bot
POST /api/users/me/bots/create/
Create a new bot account.
Request Body
string
required
Bot username
string
Bot description
Response
Returns the created bot user object.Get Bot Token
GET /api/users/me/bots/{botId}/token/
Retrieve or generate an API token for a bot.
Path Parameters
integer
required
The bot’s user ID
Response
string
The bot’s API authentication token
Update Bot Profile
PATCH /api/users/me/bots/{botId}/update/
Update a bot’s profile information.
Path Parameters
integer
required
The bot’s user ID
Request Body
Same fields as user profile update, plus:string
Update bot username (bots can change username without time restrictions)
