updateUserMetadata()
Updates the metadata for the given user, by merging existing values with the provided parameters.
A "deep" merge will be performed - "deep" means that any nested JSON objects will be merged as well. You can remove metadata keys at any level by setting their value to null.
Returns the updated User.
function updateUserMetadata(userId: string, params: { privateMetadata?: UserPrivateMetadata; publicMetadata?: UserPublicMetadata; unsafeMetadata?: UserUnsafeMetadata }): Promise<User>- Name
userId- Type
string- Description
The ID of the user to update.
- Name
params- Type
{ privateMetadata?: UserPrivateMetadata; publicMetadata?: UserPublicMetadata; unsafeMetadata?: UserUnsafeMetadata; }- Description
The metadata to update.
- Name
params.privateMetadata?- Type
- UserPrivateMetadata
- Description
Metadata that can be read and set only from the Backend API.
- Name
params.publicMetadata?- Type
- UserPublicMetadata
- Description
Metadata that can be read from the Frontend API and Backend API and can be set only from the Backend API.
- Name
params.unsafeMetadata?- Type
- UserUnsafeMetadata
- Description
Metadata that can be read and set from the Frontend API. It's considered unsafe because it can be modified from the Frontend API.
const userId = 'user_123'
const response = await clerkClient.users.updateUserMetadata(userId, {
publicMetadata: {
example: 'metadata',
},
})Backend API (BAPI) endpoint
This method in the SDK is a wrapper around the BAPI endpoint PATCH/users/{user_id}/metadata. See the BAPI reference for more information.
Here's an example of making a request directly to the endpoint using cURL.
Replace YOUR_SECRET_KEY with your Clerk Secret Key. You can find your Secret Key on the API keys page in the Clerk Dashboard.
curl -XPATCH -H 'Authorization: Bearer YOUR_SECRET_KEY' -H "Content-type: application/json" -d '{
"public_metadata": {
"birthday": "1990-01-01"
}
}' 'https://api.clerk.com/v1/users/{user_id}/metadata'Feedback
Last updated on