signUp
Register a user. For providers with user activation, an activation code is sent through the user's notification method.
Description
Resolves to an ISignUpEntity.
.signUp(
,
,
);
Parameters schema
Schema
marker(required): string
Marker of the auth provider.
example: "email"
body(required): ISignUpData
Request body.
example:
{
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
"formData": [
{
"marker": "last_name",
"type": "string",
"value": "Name"
}
],
"notificationData": {
"email": "john@example.com",
"phonePush": [
"fcm_token_1234567890abcdefg"
],
"phoneSMS": "+12025550147"
}
}
body.formIdentifier(required): string
Marker of the registration form.
example: "reg"
body.langCode: string
Language code. Default: the langCode passed to defineOneEntry ("en_US" if none).
body.authData(required): Array
Authentication fields, each with a marker and a value.
body.formData(required): FormDataType | FormDataType[]
Registration form fields. Field values: FormDataType — a value shaped by the field type (a string, a date object, a text object, a list, a file descriptor), not only a string. A file goes in as the descriptor FileUploading.upload returns: these methods do not upload a File/Blob themselves.
body.notificationData(required): INotificationData
Notification contacts: email, phonePush and phoneSMS.
notificationData.email(required): string
User email used for notifications.
example: "john@example.com"
notificationData.phonePush(required): string[]
FCM device tokens registered for push notifications.
example:
[
"fcm_token_1234567890abcdefg"
]
notificationData.phoneSMS: string
Phone number used for SMS notifications.
example: "+12025550147"
langCode: string
Language code. Default: the langCode passed to defineOneEntry ("en_US" if none).
example: "en_US"
Examples
Minimal example
const body = { , { , }, { , } ], { , , } ], , "fcm-token" ], }};
const response = await AuthProvider.signUp('email', body);
Example with formData of simple types: "string", "integer", "float"
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
"formData": [
{
"marker": "last_name",
"type": "string",
"value": "Smith"
},
{
"marker": "age",
"type": "integer",
"value": 30
},
{
"marker": "height",
"type": "float",
"value": 1.82
}
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example with a "date" attribute
dateTime and time fields take the same value shape.
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
"formData": [
{
"marker": "birthday",
"type": "date",
"value": {
"fullDate": "2024-05-07T21:02:00.000Z",
"formattedValue": "08-05-2024 00:02",
"formatString": "DD-MM-YYYY HH:mm"
}
}
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example with a "text" attribute
Provide exactly one of htmlValue (HTML), plainValue (plain text) or mdValue (Markdown).
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
"formData": [
{
"marker": "about",
"type": "text",
"value": {
"htmlValue": "<p>This is me</p>",
// "plainValue": "",
// "mdValue": ""
}
}
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example with a "textWithHeader" attribute
In value, next to header, provide exactly one of htmlValue (HTML), plainValue (plain text) or mdValue (Markdown).
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
"formData": [
{
"marker": "about",
"type": "textWithHeader",
"value": {
"header": "Header",
"htmlValue": "<p>This is me</p>",
// "plainValue": "",
// "mdValue": ""
}
}
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example with "image" and "groupOfImages" attributes
signUp doesn't upload files. Upload the file first with FileUploading.upload() and pass what it returns as the field value.
See the file form scenario in the sandbox.
// The file the user picked, e.g. from <input type="file">.
const input = document.querySelector('input[type="file"]');
if (!(input instanceof HTMLInputElement) || !input.files?.length) throw new Error('No file selected');
const file = input.files[0];
const uploaded = await FileUploading.upload(file, {
type: "page",
entity: "editor",
id: 3492,
});
if ('statusCode' in uploaded) throw new Error(uploaded.message);
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
formData: [
{
marker: "image",
type: "image",
value: uploaded,
},
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example with a "file" attribute
signUp doesn't upload files. Upload the file first with FileUploading.upload() and pass what it returns as the field value.
See the file form scenario in the sandbox.
// The file the user picked, e.g. from <input type="file">.
const input = document.querySelector('input[type="file"]');
if (!(input instanceof HTMLInputElement) || !input.files?.length) throw new Error('No file selected');
const file = input.files[0];
const uploaded = await FileUploading.upload(file, {
type: "page",
entity: "editor",
id: 3492,
});
if ('statusCode' in uploaded) throw new Error(uploaded.message);
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
formData: [
{
marker: "file",
type: "file",
value: uploaded,
},
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example with a "list" attribute
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
formData: [
{
marker: "list",
type: "list",
value: ["1"],
},
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example with an "entity" attribute (nested list)
const body = {
"formIdentifier": "reg",
"authData": [
{
"marker": "login",
"value": "john@example.com"
},
{
"marker": "password",
"value": "12345"
}
],
formData: [
{
marker: "entity",
type: "entity",
value: [2954, 2957],
},
],
"notificationData": {
"email": "john@example.com",
"phonePush": [],
"phoneSMS": "+12025550147"
}
};
const response = await AuthProvider.signUp('email', body);
Example response
{
"id": 1764,
"identifier": "john@example.com",
"isActive": false,
"isDeleted": false,
"deletedAt": null,
"createdDate": "2026-10-27T10:00:00.000Z",
"updatedDate": "2026-10-27T10:00:00.000Z",
"version": 0,
"locale": "en_US",
"formData": [
{
"marker": "last_name",
"type": "string",
"value": "Smith"
}
],
"notificationData": {
"email": "john@example.com",
"phonePush": ["fcm-token"],
"phoneSMS": "+12025550147"
},
"state": {},
"rating": {},
"attributesSets": {}
}
identifier is the login value from authData. isActive is false when the auth provider requires code confirmation (isCheckCode); otherwise the user is active right away.
The API returns
formDataas a map keyed by language code ({ "en_US": [ … ] }). The SDK unwraps it to the fields of the requestedlangCode, so you get a flatIAuthFormData[].
Response schema
Schema: ISignUpEntity
id: number
ID of the user created by sign-up.
example: 12345
updatedDate: string
Date the user was last updated.
example: "2023-10-01T12:00:00Z"
version: number
Version number of the user; changes with each update.
example: 1
identifier: string
Marker of the user created by sign-up.
example: "signup_12345"
isActive: boolean
Whether the user account is active.
example: true
formData: IAuthFormData[]
Form fields.
example:
[
{
"marker": "first_name",
"value": "John"
}
]
formData.marker: string
Marker of the form field.
example: "email"
formData.type: string
Type of the form field, for example "string" or "email".
example: "string"
formData.value: string
The value entered in the form field.
example: "john@example.com"
notificationData: INotificationData
Notification contacts: email, phonePush and phoneSMS.
example:
{
"email": "john@example.com",
"phonePush": [
"fcm_token_1234567890abcdefg"
],
"phoneSMS": "+12025550147"
}
notificationData.email: string
User email used for notifications.
example: "john@example.com"
notificationData.phonePush: string[]
FCM device tokens registered for push notifications.
example:
[
"fcm_token_1234567890abcdefg"
]
notificationData.phoneSMS: string
Phone number used for SMS notifications.
example: "+12025550147"
locale: string
Locale of the user created by sign-up.
example: "en_US"
createdDate: string
Creation date of the user record.
example: "2023-10-01T12:00:00Z"
importId: unknown
Import identifier.
example: null
deletedAt: string | null
Deletion date, or null.
example: null
isDeleted: boolean
Whether the user account is deleted.
example: false
state: Record<string, unknown>
Custom key-value data stored with the user.
example:
{}
rating: IRating
Rating data: average value, likes and dislikes, and the calculation method.
attributeSetId: number | null
ID of the attribute set attached to the user, or null when none is attached.
example: null
attributesSets: Record<string, unknown>
Attribute sets attached to the user, keyed by marker; an empty object when there are none.
example:
{}
Usage examples
Step-by-step walkthrough in the documentation:
- Register user: fetch a sign-up form, collect the user data, and register the account via
AuthProvider.signUp().
Try it live
Run this method in the JS SDK sandbox. Connect your Project URL and App Token on first visit, then open:
- Register user: fetch a sign-up form, collect the user data, and register the account via
AuthProvider.signUp().