Update an identity
/api/v1/identities/{id}Updates an identity's mutable profile fields (first_name, last_name, metadata) in the current Environment. email and external_id are immutable here — external_id is owned by the SSO/SCIM provisioning path and cannot be re-pointed through this endpoint. The account-wide is_active switch is not settable from an Environment; to cut off access here, remove the identity from the Environment. Returns the updated identity and writes an identity.updated audit row. Returns 404 when the identity has no membership in this Environment.
Authentication
Authorization Option A JWT access token. Never send alongside X-API-Key: a request carrying both is refused.
X-API-Key Option B API key for management-tier access. Never send alongside an Authorization header: a request carrying both is refused.
Path Parameters
idstring Required Request body
application/json
first_namestring Optional last_namestring Optional metadataobject Optional Responses
application/json
data *IdentityResponseDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Returned object
curl -X PATCH "https://auth.canopy-io.com/api/v1/identities/value" \ -H "X-API-Key: $CANOPY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "first_name": "string", "last_name": "string", "metadata": {} }'
{ "data": { "id": "string", "email": "string", "first_name": "string", "last_name": "string", "avatar_url": "string", "external_id": "string", "is_active": false, "created_at": "2026-04-20T12:00:00.000Z" } }
Tell us how we can improve this guide.