Create Account
Accounts can be used to access the enterprise API or the user interface (UI) using an email address and password.
Create Account (Protected Route)
Use the protected route /v1/admin/account/register to provision accounts. This endpoint is always available (assuming
you have administrator credentials) and is the expected way to create accounts in production environments, especially if
you have disabled public signup.
Please make sure to use a Super Admin when using this endpoint.
Endpoint:/v1/admin/account/register | API Reference
Example Request
curl -X 'POST' \
'https://enterprise-sandbox.waltid.dev/v1/admin/account/register' \
-H 'accept: */*' \
-H 'Authorization: Bearer {yourToken}' \
-H 'Content-Type: application/json' \
-d '{
"profile": {
"name": "Max Mustermann",
"email": "max.mustermann@example.org",
"addressCountry": "AT",
"address": "Liechtensteinstraße 111/115, 1090 Vienna"
},
"preferences": {
"timeZone": "UTC",
"languagePreference": "EN"
},
"initialAuth": {
"type": "email",
"identifier": {
"type": "email",
"email": "max.mustermann@example.org"
},
"data": {
"type": "email",
"password": "password123456"
}
}
}'
Body
{
"profile": {
"name": "Max Mustermann",
"email": "max.mustermann@example.org",
"addressCountry": "AT",
"address": "Liechtensteinstraße 111/115, 1090 Vienna"
},
"preferences": {
"timeZone": "UTC",
"languagePreference": "EN"
},
"initialAuth": {
"type": "email",
"identifier": {
"type": "email",
"email": "max.mustermann@example.org"
},
"data": {
"type": "email",
"password": "password123456"
}
}
}
Body Parameters
profile: Object - User's personal informationname: String - Full name of the useremail: String - User's email addressaddressCountry: String - Two-letter country codeaddress: String - Full postal address
preferences: Object - User's system preferencestimeZone: String - Preferred time zonelanguagePreference: String - Preferred language code
initialAuth: Object - Authentication informationtype: String -emailidentifier: Object - Authentication identifier detailstype: String -emailemail: String - Email used for identification
data: Object - Authentication credentialstype: String -emailpassword: String - User's password
Response
{
"_id": "5e4eb66b-36c3-46bc-bc03-9a5eefc582f0",
"type": "USER",
"profile": {
"name": "Max Mustermann",
"email": "max.mustermann@example.org",
"addressCountry": "AT",
"address": "Liechtensteinstraße 111/115, 1090 Vienna"
},
"accountPreferences": {
"timeZone": "UTC",
"languagePreference": "EN"
},
"flags": [],
"roles": {}
}
Create Account (Unprotected Route)
The unprotected route /v1/account/register exists whenever the account-registration feature flag is enabled (it
defaults to enabled, so new deployments expose it until you turn the flag off). Leave it enabled only when you
intentionally want end users to self-register (for example in sandbox or demo environments), and disable it elsewhere to
prevent unrestricted signups.
Endpoint:/v1/account/register
Example Request
curl -X 'POST' \
'https://enterprise-sandbox.waltid.dev/v1/account/register' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"profile": {
"name": "Max Mustermann",
"email": "max.mustermann@example.org",
"addressCountry": "AT",
"address": "Liechtensteinstraße 111/115, 1090 Vienna"
},
"preferences": {
"timeZone": "UTC",
"languagePreference": "EN"
},
"initialAuth": {
"type": "email",
"identifier": {
"type": "email",
"email": "max.mustermann@example.org"
},
"data": {
"type": "email",
"password": "password123456"
}
}
}'
Body
{
"profile": {
"name": "Max Mustermann",
"email": "max.mustermann@example.org",
"addressCountry": "AT",
"address": "Liechtensteinstraße 111/115, 1090 Vienna"
},
"preferences": {
"timeZone": "UTC",
"languagePreference": "EN"
},
"initialAuth": {
"type": "email",
"identifier": {
"type": "email",
"email": "max.mustermann@example.org"
},
"data": {
"type": "email",
"password": "password123456"
}
}
}
Body Parameters
profile: Object - User's personal informationname: String - Full name of the useremail: String - User's email addressaddressCountry: String - Two-letter country codeaddress: String - Full postal address
preferences: Object - User's system preferencestimeZone: String - Preferred time zonelanguagePreference: String - Preferred language code
initialAuth: Object - Authentication informationtype: String -emailidentifier: Object - Authentication identifier detailstype: String -emailemail: String - Email used for identification
data: Object - Authentication credentialstype: String -emailpassword: String - User's password
Response Codes
201- Your account has been registered successfully.
