---
title: "Create an Identity"
method: POST
path: "/admin/identities"
tags: ["v0alpha2"]
---

# Create an Identity

`POST /admin/identities`

This endpoint creates an identity. It is NOT possible to set an identity's credentials (password, ...)
using this method! A way to achieve that will be introduced in the future.

Learn how identities work in [Ory Kratos' User And Identity Model Documentation](https://www.ory.sh/docs/next/kratos/concepts/identity-user-model).

## Request body

- AdminCreateIdentityBody
  - `credentials` AdminIdentityImportCredentials
    - `oidc` AdminCreateIdentityImportCredentialsOidc
      - `config` AdminCreateIdentityImportCredentialsOidcConfig
        - `config` AdminCreateIdentityImportCredentialsPasswordConfig
          - `hashed_password` string — The hashed password in [PHC format]( https://www.ory.sh/docs/kratos/concepts/credentials/username-email-password#hashed-password-format)
          - `password` string — The password in plain text if no hash is available.
        - `providers` AdminCreateIdentityImportCredentialsOidcProvider[] — 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.
    - `password` AdminCreateIdentityImportCredentialsPassword
      - `config` AdminCreateIdentityImportCredentialsPasswordConfig
        - `hashed_password` string — The hashed password in [PHC format]( https://www.ory.sh/docs/kratos/concepts/credentials/username-email-password#hashed-password-format)
        - `password` string — The password in plain text if no hash is available.
  - `recovery_addresses` RecoveryAddress[] — 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, uuid4, 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' — The state can either be `active` or `inactive`.
  - `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, uuid4, required
    - `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` string, required — VerifiableAddressType must not exceed 16 characters as that is the limitation in the SQL Schema

## Response `201`

identity

- Identity — An identity can be a real human, a service, an IoT device - everything that can be described as an "actor" in a system.
  - `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, uuid4, required
  - `recovery_addresses` RecoveryAddress[] — 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, uuid4, 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' — The state can either be `active` or `inactive`.
  - `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, uuid4, required
    - `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` string, required — VerifiableAddressType must not exceed 16 characters as that is the limitation in the SQL Schema

## Other responses

- `400` — jsonError
- `409` — jsonError
- `500` — jsonError

## Changes

- **2022-03-22** `028a4cf83c15` — 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/post.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/028a4cf83c15/schema)
