Create a user
Creates a new user.
This function should only be called on a server. Never expose your service_role
key in the browser.
- To confirm the user's email address or phone number, set
email_confirm
orphone_confirm
to true. Both arguments default to false.
Parameters
- attributesREQUIREDAdminUserAttributesapp_metadataOptionalobject
A custom data object to store the user's application specific metadata. This maps to the `auth.users.app_metadata` column. Only a service role can modify. The `app_metadata` should be a JSON object that includes app-specific info, such as identity providers, roles, and other access control information.
ban_durationOptionalstringDetermines how long a user is banned for. The format for the ban duration follows a strict sequence of decimal numbers with a unit suffix. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". For example, some possible durations include: '300ms', '2h45m'. Setting the ban duration to 'none' lifts the ban on the user.
dataOptionalobjectA custom data object to store the user's metadata. This maps to the `auth.users.user_metadata` column. The `data` should be a JSON object that includes user-specific info, such as their first and last name.
emailOptionalstringThe user's email.
email_confirmOptionalbooleanConfirms the user's email address if set to true. Only a service role can modify.
passwordOptionalstringThe user's password.
phoneOptionalstringThe user's phone.
phone_confirmOptionalbooleanConfirms the user's phone number if set to true. Only a service role can modify.
user_metadataOptionalobjectA custom data object to store the user's metadata. This maps to the `auth.users.user_metadata` column. Only a service role can modify. The `user_metadata` should be a JSON object that includes user-specific info, such as their first and last name. Note: When using the GoTrueAdminApi and wanting to modify a user's metadata, this attribute is used instead of UserAttributes data.
const { data, error } = await supabase.auth.admin.createUser({
email: 'user@email.com',
password: 'password',
user_metadata: { name: 'Yoda' }
})