---
title: "Update an Identity"
method: PUT
path: "/admin/identities/{id}"
tags: ["identity"]
---

# Update an Identity

`PUT /admin/identities/{id}`

This endpoint updates an [identity](https://www.ory.sh/docs/kratos/concepts/identity-user-model). The full identity
payload (except credentials) is expected. It is possible to update the identity's credentials as well.

## Path parameters

- `id` string, required

## Request body

- UpdateIdentityBody — Update Identity Body
  - `credentials` IdentityWithCredentials — Create Identity and Import Credentials
    - `oidc` IdentityWithCredentialsOidc — Create Identity and Import Social Sign In Credentials
      - `config` IdentityWithCredentialsOidcConfig
        - `config` IdentityWithCredentialsPasswordConfig — Create Identity and Import Password Credentials Configuration
          - `hashed_password` string — The hashed password in [PHC format](https://www.ory.sh/docs/kratos/manage-identities/import-user-accounts-identities#hashed-passwords)
          - `password` string — The password in plain text if no hash is available.
          - `use_password_migration_hook` boolean — If set to true, the password will be migrated using the password migration hook.
        - `providers` IdentityWithCredentialsOidcConfigProvider[] — A list of OpenID Connect Providers
          - `provider` string, required — The OpenID Connect provider to link the subject to. Usually something like `google` or `github`.
          - `subject` string, required — The subject (`sub`) of the OpenID Connect connection. Usually the `sub` field of the ID Token.
          - `use_auto_link` boolean — If set, this credential allows the user to sign in using the OpenID Connect provider without setting the subject first.
    - `password` IdentityWithCredentialsPassword — Create Identity and Import Password Credentials
      - `config` IdentityWithCredentialsPasswordConfig — Create Identity and Import Password Credentials Configuration
        - `hashed_password` string — The hashed password in [PHC format](https://www.ory.sh/docs/kratos/manage-identities/import-user-accounts-identities#hashed-passwords)
        - `password` string — The password in plain text if no hash is available.
        - `use_password_migration_hook` boolean — If set to true, the password will be migrated using the password migration hook.
  - `metadata_admin` unknown
  - `metadata_public` unknown
  - `schema_id` string, required — SchemaID is the ID of the JSON Schema to be used for validating the identity's traits. If set will update the Identity's SchemaID.
  - `state` 'active' | 'inactive', required — State is the identity's state. active StateActive inactive StateInactive
  - `traits` object, required — Traits represent an identity's traits. The identity is able to create, modify, and delete traits in a self-service manner. The input will always be validated against the JSON Schema defined in `schema_id`.

## Response `200`

identity

- Identity — An [identity](https://www.ory.sh/docs/kratos/concepts/identity-user-model) represents a (human) user in Ory.
  - `created_at` string, date-time — CreatedAt is a helper struct field for gobuffalo.pop.
  - `credentials` object — Credentials represents all credentials that can be used for authenticating this identity.
  - `id` string, uuid, required — ID is the identity's unique identifier. The Identity ID can not be changed and can not be chosen. This ensures future compatibility and optimization for distributed stores such as CockroachDB.
  - `metadata_admin` unknown
  - `metadata_public` unknown
  - `organization_id` string, uuid4, nullable
  - `recovery_addresses` RecoveryIdentityAddress[] — RecoveryAddresses contains all the addresses that can be used to recover an identity.
    - `created_at` string, date-time — CreatedAt is a helper struct field for gobuffalo.pop.
    - `id` string, uuid, required
    - `updated_at` string, date-time — UpdatedAt is a helper struct field for gobuffalo.pop.
    - `value` string, required
    - `via` string, required
  - `schema_id` string, required — SchemaID is the ID of the JSON Schema to be used for validating the identity's traits.
  - `schema_url` string, required — SchemaURL is the URL of the endpoint where the identity's traits schema can be fetched from. format: url
  - `state` 'active' | 'inactive' — State is the identity's state. This value has currently no effect. active StateActive inactive StateInactive
  - `state_changed_at` string, date-time
  - `traits` unknown, required
  - `updated_at` string, date-time — UpdatedAt is a helper struct field for gobuffalo.pop.
  - `verifiable_addresses` VerifiableIdentityAddress[] — VerifiableAddresses contains all the addresses that can be verified by the user.
    - `created_at` string, date-time — When this entry was created
    - `id` string, uuid — The ID
    - `status` string, required — VerifiableAddressStatus must not exceed 16 characters as that is the limitation in the SQL Schema
    - `updated_at` string, date-time — When this entry was last updated
    - `value` string, required — The address value example foo@user.com
    - `verified` boolean, required — Indicates if the address has already been verified
    - `verified_at` string, date-time
    - `via` 'email' | 'sms', required — The delivery method

## Other responses

- `400` — errorGeneric
- `404` — errorGeneric
- `409` — errorGeneric
- `default` — errorGeneric

## Changes

- **2025-02-25** `df2fe8db7397` — 1 warning, 3 info
  - added the new `saml` enum value to the `credentials/additionalProperties/type` response property for the response status `200`
  - added the new optional request property `credentials/oidc/config/config/use_password_migration_hook`
  - added the new optional request property `credentials/oidc/config/providers/items/use_auto_link`
  - added the new optional request property `credentials/password/config/use_password_migration_hook`
- **2024-06-05** `344e70f3542d` — 2 warning
  - added the new `passkey` enum value to the `credentials/additionalProperties/type` response property for the response status `200`
  - added the new `profile` enum value to the `credentials/additionalProperties/type` response property for the response status `200`
- **2024-02-20** `4f071812f3ea` — 5 warning, 1 info
  - added the new `code` enum value to the `credentials/additionalProperties/type` response property for the response status `200`
  - added the new `code_recovery` enum value to the `credentials/additionalProperties/type` response property for the response status `200`
  - added the new `email` enum value to the `verifiable_addresses/items/via` response property for the response status `200`
  - added the new `link_recovery` enum value to the `credentials/additionalProperties/type` response property for the response status `200`
  - …2 more
- …earlier changes not shown

[Full history](https://skmtc.dev/ory/apis/ory-identities-api/changes/admin/identities/:id/put.md)

---

[API](https://skmtc.dev/ory/apis/ory-identities-api.md) · [All operations](https://skmtc.dev/ory/apis/ory-identities-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ory/ory-identities-api/revisions/df2fe8db7397/schema)
