Create User
This endpoint allows organizations to import their existing users’ information into Humanos, for better management and control.
- Between 1 and 100 users can be created per request.
- A user is identified by a Humanos-verified contact (email or phone); if it does not exist, it will be created.
- Optionally, additional identity information (KYC) to allow mapping users within your own system.
- Optionally, additional contact emails or phone numbers can be provided to allow mapping users within your own system.
- Optionally, an internal ID can be provided to allow mapping users within your own system.
- Optionally, provide an ‘Idempotency-Key’ header to safely retry the same request without creating duplicate users.
Headers
Optional key used to safely retry the same create/initiate request without duplicating side effects.
"a96d14c5-8e60-4f6b-9d80-5c18c0e4202a"
Pin request, response, and webhook shapes to a specific dated API version (YYYY-MM-DD). Omit to use the version pinned to your API key (set when the key is created; new keys default to the latest version). New integrations should target the latest version.
^\d{4}-\d{2}-\d{2}$"2026-07-06"
Body
Array of subjects to create. Each subject represents a user to be imported into Humanos
The verified contact (email or phone number) that identifies this subject.
This becomes a Contact row with a DID — Humanos can OTP it, route webhooks
to it, and use it to participate in credential signing flows.
See extraContacts for non-verified per-issuer metadata strings.
"john.doe@example.com"
Identifier to help you identify the user in your own system. We recommend using a unique value.
"internal-12345"
Array of contact emails or phone numbers. Any update will fully replace the existing extra contacts. These contacts only live within your organization, and are therefore not verified by Humanos. You will not be able to use them to contact the user.
Identity information to be assigned to the user Only mandatory fields are {fullName, birth, docId, countryAlpha3}. Any extra field can be provided for visualization
Any update will fully replace the existing identity.
This identity only lives within your organization, therefore is not verified by Humanos.
Response
Returns an array of feedback objects, one for each subject in the request. The order in the response will match the order of of the request body.
Possible status codes for each subject:
- 201: Subject created or updated
- 400: Invalid body payload. Information will be at the message field
- 409: Duplicate contact within the request body
- 410: This subject (subjectId) has more than one contact in this request body
- 500: Unknown error
HTTP status code indicating the result of the operation for this specific subject:
- 201: Success — subject created or updated (the message distinguishes: "Subject created" vs updated)
- 400: Invalid body payload. Information will be at the message field
- 409: Duplicate contact within the request body
- 410: Contact maps to a subject with inconsistent references (the same subject appears through more than one contact in this request)
- 500: Unexpected processing error
201, 400, 409, 410, 500 201
Success or error message
"Subject created"
User information. When the operation fails, only the identifying fields that were submitted (such as contact, internalId, and id) are echoed back.