---
title: "Create and deletes multiple identities"
method: PATCH
path: "/admin/identities"
tags: ["identity"]
---

# Create and deletes multiple identities

`PATCH /admin/identities`

Creates or delete multiple
[identities](https://www.ory.sh/docs/kratos/concepts/identity-user-model).
This endpoint can also be used to [import
credentials](https://www.ory.sh/docs/kratos/manage-identities/import-user-accounts-identities)
for instance passwords, social sign in configurations or multifactor methods.

## Request body

- PatchIdentitiesBody — Patch Identities Body
  - `identities` IdentityPatch[] — Identities holds the list of patches to apply required
    - `create` CreateIdentityBody — Create 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
              - …
            - `providers` IdentityWithCredentialsOidcConfigProvider[] — A list of OpenID Connect Providers
              - …
        - `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.
      - `metadata_admin` unknown
      - `metadata_public` unknown
      - `recovery_addresses` RecoveryIdentityAddress[] — RecoveryAddresses contains all the addresses that can be used to recover an identity. Use this structure to import recovery addresses for an identity. Please keep in mind that the address needs to be represented in the Identity Schema or this field will be overwritten on the next identity update.
        - `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.
      - `state` 'active' | 'inactive' — 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_url`.
      - `verifiable_addresses` VerifiableIdentityAddress[] — VerifiableAddresses contains all the addresses that can be verified by the user. Use this structure to import verified addresses for an identity. Please keep in mind that the address needs to be represented in the Identity Schema or this field will be overwritten on the next identity update.
        - `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
    - `patch_id` string, uuid — The ID of this patch. The patch ID is optional. If specified, the ID will be returned in the response, so consumers of this API can correlate the response with the patch.

## Response `200`

batchPatchIdentitiesResponse

- BatchPatchIdentitiesResponse — Patch identities response
  - `identities` IdentityPatchResponse[] — The patch responses for the individual identities.
    - `action` 'create' — The action for this specific patch create ActionCreate Create this identity.
    - `identity` string, uuid — The identity ID payload of this patch
    - `patch_id` string, uuid — The ID of this patch response, if an ID was specified in the patch.

## Other responses

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

## Changes

- **2024-02-20** `4f071812f3ea` — 1 breaking, 2 info
  - request property `identities/items/create/verifiable_addresses/items/via` was restricted to a list of enum values
  - added the new `email` enum value to the request property `identities/items/create/verifiable_addresses/items/via`
  - added the new `sms` enum value to the request property `identities/items/create/verifiable_addresses/items/via`
- **2023-04-29** `2e602390c3aa` — 1 info
  - endpoint added
- **2021-05-05** `381c760af46e` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/ory/apis/ory-identities-api/changes/admin/identities/patch.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/4f071812f3ea/schema)
