---
title: "Create a user"
method: POST
path: "/gdc/account/domains/{domainId}/users"
tags: ["webapp-users"]
---

# Create a user

`POST /gdc/account/domains/{domainId}/users`

## Request

- Base URL: `https://secure.gooddata.com`
- URL: `https://secure.gooddata.com/gdc/account/domains/{domainId}/users`
- Auth: none declared

Users exist in a domain and are provisioned to projects within that domain.


Only a domain admin can call this resource. **NOTE:** You must be a domain admin to create a user.


In the request body, specify the following **mandatory** parameters:


- **login** (string in the format of an email address) is the user login. Once created, this property cannot be updated.

	The login must be a string in the format of an email address but does not have to be an actual working email address.

	You can generate logins from unique user IDs used on your site (for example, `123456@gd.example.com`, `234567@gd.example.com`, and so on).
	For receiving emails sent by GoodData (such as notifications or scheduled emails), set the user's email via the optional `email` parameter (see further in this section).

	The login is case-sensitive and must be written in lowercase.

	- Correct: `john.doe@example.com`

	- Incorrect: `John.Doe@example.com`


- **firstName** (string) is the user's first name.


- **lastName** (string) is the user's last name.




Additionally, you can specify the following **optional** parameters:


- **email** (string) is the user's contact email. The email can (but does not have to) be the same as the login. If the email is not specified, it will be filled by the `login` parameter. The email does not have to be unique within the domain.


- **ssoProvider** (string) is the identifier of the user's authentication provider. It can contain a single value or a comma-separated list of values (for example, `"ssoProvider": "sso_provider_1, sso_provider_2"`).

	The identifier that you are providing must exist in the GoodData platform (see [Set up User Authentication and SSO](https://help.gooddata.com/display/doc/Set+up+User+Authentication+and+SSO)).
Otherwise, the API call fails.


- **authenticationModes** (array of strings) is authentication mode (`SSO`, `PASSWORD`, or both) allowed for the user. If specified, the value of this field overrides authentication mode set globally for the domain.


- **companyName** (string) is the name of the company where the user works.


- **position** (string) is the user's job position in the company.


- **country** (string) is the country where the user is located.


- **phoneNumber** (string) is the user's phone number.


- **timezoneName** (string) is the timezone where the user belongs to. The timezone must be in the format specified in the [IANA Time Zone Database](https://www.iana.org/time-zones).
If set, the user's timezone overrides the [timezone set for the project](https://help.gooddata.com/pages/viewpage.action?pageId=86796802).

	**NOTE:** The `timezone` property is deprecated and not used.


- **language** (string in the format of the IETF language tags) is the language used in the embedded dashboards that the user can view. If not set, defaults to English (`en-US`). Other available languages are Dutch (`nl-NL`), Spanish (`es-ES`), Portuguese/Brazil (`pt-BR`), Portuguese/Portugal (`pt-PT`), French (`fr-FR`), German (`de-DE`), Japanese (`ja-JP`), and Simplified Chinese (`zh-Hans`).


- **ipWhitelist** (array of strings in the CIDR format) is the IP address ranges, from which the user is allowed to access the GoodData platform.

	 - When set to an array of IP addresses, `ipWhitelist` overrides any domain IP whitelist settings that may have been set.

	 - When set to `null` or not set, the domain IP whitelist settings are applied.

	 - When set to an empty array (`[]`), the user has no access to the GoodData platform.


- **password** (string) and **verifyPassword** (string) are the user's password; must be used together and set to the same password.

	You do **not** have to provide passwords, and we do not recommend that you provide them.

	When not provided, the password is generated automatically, and either the user can change it when logging in to the GoodData platform for the first time, or the password can be set with SSO.

	If you want to set the password for the user, specify both the `password` and `verifyPassword` and set both of them to the same password.

	For more information about passwords, see [Password Policy](https://help.gooddata.com/display/doc/Password+Policy).


For detailed information about all user properties, see [User Properties](#section/User-Properties).

This resource is an alias of `/gdc/domains/{domainId}/users`.

## Path parameters

- `domainId` string, required

## Request body

- AccountSetting1
  - `accountSetting` AccountSettingTypeCommon, required
    - `login` string, email, nullable: The user login. This property is assigned when a user is created. This property is read-only and cannot be updated. The login does not have to be an actual working email address but must follow the email format.
    - `email` string, email, nullable: The user's contact email. The email can (but does not have to) be the same as the login. Only a domain admin can update this property.
    - `firstName` string, required: The user's first name.
    - `lastName` string, required: The user's last name.
    - `companyName` string, nullable: The name of the company where the user works.
    - `position` string, nullable: The user’s job position in the company.
    - `created` string: Date and time string in the format `YYYY-MM-DD hh:mm:ss`
    - `updated` string: Date and time string in the format `YYYY-MM-DD hh:mm:ss`
    - `timezone` integer, nullable: This parameter is deprecated and not used.
    - `timezoneName` string, nullable: The timezone where the user belongs to. The timezone must be in the format specified in the [IANA Time Zone Database](https://www.iana.org/time-zones). If set, the user’s timezone overrides the [timezone set for the project](https://help.gooddata.com/pages/viewpage.action?pageId=86796802).
    - `country` string, nullable: The country where the user is located.
    - `phoneNumber` string, nullable: The user's phone number.
    - `old_password` string: The user's current password; used only when updating the user's password.
    - `password` string, nullable: The user's current password (when creating a user) or the user's new password (when updating the user's password).
    - `verifyPassword` string, nullable: The user's current password (when creating a user) or the user's new password (when updating the user's password) entered for verification.
    - `authenticationModes` string[]: Is authentication mode (`SSO`, `PASSWORD`, or both) allowed for the user. The value of this field overrides the global settings for the domain. Only a domain admin can update this property.
    - `ssoProvider` string, nullable: The identifier of the user's authentication provider. It can contain a single value or a comma-separated list of values (for example, `"ssoProvider"&#58; "sso_provider_1, sso_provider_2"`). Only a domain admin can update this property.
    - `language` string: The language used in the embedded dashboards that the user can view. If not set, defaults to English (`en-US`). Other available languages are Dutch (`nl-NL`), Spanish (`es-ES`), Portuguese/Brazil (`pt-BR`), Portuguese/Portugal (`pt-PT`), French (`fr-FR`), German (`de-DE`), Japanese (`ja-JP`), and Simplified Chinese (`zh-Hans`). **NOTE:** You can also apply the set language to the other parts of the GoodData Portal&#58; Dashboards, Reports, KPI dashboards, Analytical Designer, Manage, and user menu. To do so, contact GoodData Support.
    - `ipWhitelist` string[], nullable: An array of the IP address ranges (in the CIDR format), from which the user is allowed to access the GoodData platform. This property is a user-specific setting, and it overrides the domain IP whitelist settings, if any has been set. Only a domain admin can update this property. <ul><li>When set to <code>null</code>, the user has access to the GoodData platform regardless of their IP address.</li> <li>When set to an empty array (<code>[]</code>), the user has no access to the GoodData platform.</li> <li>When not set, the property defaults to <code>null</code>.</li></ul>
    - `links` LinksCommon
      - `projects` string, uri: Link to projects where the user is assigned to
      - `self` string, uri: Link to this account settings

## Response `201`

User created

- Uri: URI containing mandatory root key
  - `uri` string, uri, required

## Other responses

- `400`: The API call failed due to a validation error. The provided data is incomplete or incorrect (for example, the login already exists, the passwords in the `password` and `verifyPassword` parameters do not match, the number of users in the domain has reached the limit, the provided SSO provider name does not exist, and so on). Check the input data, and then re-issue the call.
- `403`: The API call failed because you are not a domain admin. Log in as a domain admin, and then re-issue the call.
- `default`: Common error

---

[API](https://skmtc.dev/gooddata/apis/gooddata-api-documentation.md) - [All operations](https://skmtc.dev/gooddata/apis/gooddata-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/gooddata/apis/gooddata-api-documentation/revisions/e5dc0ee6ab00?raw)
