---
title: "Update current user profile"
method: PATCH
path: "/auth/profile"
tags: ["Auth"]
---

# Update current user profile

`PATCH /auth/profile`

## Request

- Base URL: `https://app.openpo.st/api/v1`
- URL: `https://app.openpo.st/api/v1/auth/profile`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `openpost_session`

## Request body

- UpdateProfileInputBody
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `avatar_url` string: Profile avatar URL
  - `composer_experience` 'specialized' | 'unified': Preferred composer experience
  - `display_name` string: User display name
  - `public_profile_enabled` boolean: Whether the public activity profile is visible
  - `public_profile_visible_fields` string[]: Optional public-profile fields: display_name, avatar, joined_at, activity, platforms, workspaces, plan
  - `username` string: Unique public username

## Response `200`

OK

- UserProfile
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `avatar_url` string, required: Profile avatar URL
  - `composer_experience` 'specialized' | 'unified', required: Preferred composer experience
  - `created_at` string, date-time, required: Account creation time
  - `display_name` string, required: User display name
  - `email` string, required: User email address
  - `email_verified` boolean, required: Whether the account email address is verified
  - `has_password` boolean, required: Whether this account has a local password credential
  - `id` string, required: User ID
  - `is_admin` boolean, required: Whether this user can manage instance-level settings
  - `is_managed` boolean, required: Whether this account was provisioned by an organization identity provider
  - `legal_acceptance_required` boolean, required: Whether the current hosted policy still needs acceptance
  - `legal_accepted_at` string, date-time: When the current account policy was accepted
  - `managed_organization_name` string: Organization managing this account
  - `password_usable` boolean, required: Whether the local password can currently be used for sign-in and sensitive-action reauthentication
  - `privacy_version` string: Privacy version acknowledged by the user
  - `public_profile_enabled` boolean, required: Whether the public activity profile is visible
  - `public_profile_visible_fields` string[], nullable, required: Optional account fields visible while the public profile is enabled
  - `terms_version` string: Terms version accepted by the user
  - `username` string, required: Unique public username

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

[API](https://skmtc.dev/openpo/apis/openpost-api.md) · [All operations](https://skmtc.dev/openpo/apis/openpost-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openpo/apis/openpost-api/revisions/67d3964458a7?raw)
