Skip to main content

Bulk-import identities from other providers

To import multiple identities into Ory Identites, use the Identity Import API.

A maximum of 2000 identities can be created in a single request. If you need to import more identities, you can split the import into multiple requests.

The endpoint accepts a JSON array of identities, each of which must have a create propery which holds the identity that should be created. Optionally, you can specify a patch_id property which will be returned in the response. This can be used to correlate the response with the patch.

The following example shows how to import two identities. It will create two identities with the email addresses foo@example.com and bar@example.com and the passwords foopassword and barpassword respectively.

curl --location --request PATCH 'https://${YOUR_PROJECT_SLUG}.projects.oryapis.com/admin/identities' \
--header 'Authorization: Bearer ${YOUR_ORY_ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"identities": [
{
"create": {
"credentials": {
"password": {
"config": {
"password": "foopassword"
}
}
},
"state": "active",
"traits": {
"email": "foo@example.com"
},
"schema_id": "preset://email"
}
},
{
"create": {
"credentials": {
"password": {
"config": {
"password": "barpassword"
}
}
},
"state": "active",
"traits": {
"email": "bar@example.com"
},
"schema_id": "preset://email"
}
}
]
}'

The service will respond with the two identity IDs created:

{
"identities": [
{
"action": "create",
"identity": "55f93ea4-09ff-4273-8b88-082cc70d6d44"
},
{
"action": "create",
"identity": "f70c9b29-4790-4330-90dc-920db16a4b85"
}
]
}