Appearance
User Management Examples
Explore operations for creating, updating, and managing user accounts.
1. Register a New User
Create a new student account. This is the primary entrypoint for the registration funnel.
Send an Idempotency-Key header with a value that is unique per registration attempt (for example a UUID generated when the form is submitted). If the request is retried — a network timeout, a double click — the same key returns the original result instead of creating a duplicate account. Reuse the same key only when retrying the exact same payload.
Idempotency-Key: 3f6b0a3e-9d5f-4d5c-a6b7-1c2d3e4f5a6bgraphql
mutation RegisterUser($input: CreateUserInput!) {
auth {
createUser(input: $input) {
success
token
expiresAt
user {
id
email
firstName
}
profileProgress {
completionPercentage
}
eligibleScholarshipsCount
}
}
}Variables:
json
{
"input": {
"email": "new.student@example.com",
"password": "secure-password",
"firstName": "John",
"lastName": "Doe",
"dateOfBirth": "2000-01-01T00:00:00Z"
}
}Optional registration inputs. CreateUserInput also accepts:
coregs(JSON) — co-registration offers the user opted into during signup, keyed by offer name:{ "Toluna": { "id": 1, "checked": 1 } }. Unchecked entries are ignored; some offers (for exampleBerecruited) require anextraobject with additional fields and are rejected with a validation error when incomplete.redemptionCode(String) — a prepaid order code. When valid and unused it activates the associated subscription on the new account. An invalid or already-used code never fails the registration.referrer(String) — the account id of the user who referred this signup, used by the referral rewards program.
2. Update User Profile
Update the currently authenticated user's profile and account settings.
graphql
mutation UpdateProfile($input: UpdateUserInput!) {
viewer {
updateUser(input: $input) {
success
user {
phone
gender
}
updatedFields
}
}
}Variables:
json
{
"input": {
"phone": "+1234567890",
"gender": "male"
}
}3. Upload a Document
Upload a document (like a resume or transcript) to the user's profile. Note: File uploads in GraphQL use the Upload scalar and typically require a multipart/form-data request.
graphql
mutation UploadUserDocument($type: String!, $file: Upload!) {
auth {
uploadDocument(type: $type, file: $file) {
id
name
url
mimeType
}
}
}4. Password Management
Request Password Reset
Triggers a password reset email.
graphql
mutation RequestPasswordReset($input: PasswordResetInput!) {
auth {
requestPasswordReset(input: $input)
}
}Change Password
Change the password for the currently authenticated user.
graphql
mutation ChangePassword($input: PasswordChangeInput!) {
auth {
changePassword(input: $input)
}
}5. Social Accounts
Link a social media account to the current user's profile.
graphql
mutation ConnectSocial($input: ConnectSocialAccountInput!) {
auth {
connectSocialAccount(input: $input) {
user {
socialAccounts {
provider
}
}
}
}
}