1. Docs
  2. API Reference
  3. Update an identity

Update an identity

PATCH/portal/v1/accounts/{accountSlug}/applications/{appSlug}/identities/{id}

Authentication

  • Bearer Token Authorization

    JWT access token

Path Parameters

Name Required Type Description
idRequiredstring

Request body

  • first_namestring
  • last_namestring
  • is_activeboolean
  • external_idstring
  • metadataany object

Code samples

cURLJavaScriptPythonGo
curl -X PATCH "https://api.canopy.dev/portal/v1/accounts/{accountSlug}/applications/{appSlug}/identities/value" \
  -H "Authorization: Bearer $CANOPY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "first_name": "string",
    "last_name": "string",
    "is_active": false,
    "external_id": "string",
    "metadata": {}
  }'

Responses

200 Identity updated
{
  "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"
}

application/json

  • idstring*
  • emailstring*
  • first_namestring*
  • last_namestring*
  • avatar_urlstring
  • external_idstring
  • is_activeboolean*
  • created_atstring (date-time)*
401 Invalid or expired token
403 This token is not authorized for this endpoint (wrong principal type — e.g., admin token on identity-only endpoint, or vice versa)
404 Identity not found

Returned object

On this page

Related endpoints

GETList identities in Application
POSTCreate an identity
GETList identities with their role assignments
GETGet Application identities summary
POSTBulk-create identities
POSTRecord a bulk-import wizard completion
GETGet an identity
DELETERemove an identity
GETGet identity detail with role assignments
POSTActivate an identity
POSTDeactivate an identity
GETGet identity's role assignments
GETGet identity's effective permissions