Skip to main content

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 formData as a map keyed by language code ({ "en_US": [ … ] }). The SDK unwraps it to the fields of the requested langCode, so you get a flat IAuthFormData[].

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().