# IRPCLoginsAdmin.AddLogin

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Administration API](https://developer.m-files.com/APIs/gRPC-API/admin/index.md) > [Server login accounts](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLoginsAdmin/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLoginsAdmin/AddLogin/

Badges: `Administration API / specialized` `admin` `session`

Adds a login account to the server.

- **Service:** [Server login accounts](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLoginsAdmin/index.md) `MFiles.IRPCLoginsAdmin`
- **gRPC method:** `/MFiles.IRPCLoginsAdmin/AddLogin`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/add-login`
- **Request:** [`AddLoginRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLoginsAdmin/AddLogin/index.md#request)
- **Response:** [`AddLoginResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLoginsAdmin/AddLogin/index.md#response)
- **Book and level:** Administration API, specialized
- **Kind:** admin
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** no
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

- Requires the system administrator server role (server right `manage_logins`).
- On servers that use vault login accounts, only logins with the system administrator role can
  be added at server level.
- For an M-Files login, provide the password in `password_info`.

<a id="request"></a>

## Request: AddLoginRequest

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `login` | [`Login`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Login/index.md) | The new login. See [Login](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.Login/index.md). |
| `login.account_type` | [`AccountType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.AccountType/index.md) | Account type (e.g. M-Files or Windows). Values: `ACCOUNT_TYPE_UNINITIALIZED` (0), `ACCOUNT_TYPE_MFILES` (1), `ACCOUNT_TYPE_WINDOWS` (2). |
| `login.domain_name` | `string` | Domain name, if acctype is eAccountTypeWindows. Otherwise unset. |
| `login.user_name` | `string` | User name. Cannot be unset. |
| `login.options` | [`SRVROLES`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.SRVROLES/index.md) | Bitmask of the server roles of the login. |
| `login.options.all` | `bool` | Specifies all flags set; Including any future flags. |
| `login.options.system_administrator` | `bool` | System administrator (can perform any operation on the server). [ name( "vaultCreator" ) ] const SRVROLES SRVROLE_VAULT_CREATOR		= ( 1 << 1 );  //!< Can create, modify and delete vaults. Can also restore vaults. [ name( "backupOperator" ) ] const SRVROLES SRVROLE_BACKUP_OPERATOR		= ( 1 << 2 );  //!< Can back up vaults. |
| `login.options.can_log_in` | `bool` | Can log in. A login that does not have this role is disabled and cannot log in even if the login has the sysadmin role. |
| `login.options.invalid_password` | `bool` | This special role indicates that the M-Files login does not yet have a valid password. MFAdmin uses this flag to force the user to define the password. |
| `login.full_name` | `string` | The full name of the user. May be unset. |
| `login.email_address` | `string` | The email address of the user. May be unset. |
| `login.license_type` | [`LicenseType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.LicenseType/index.md) | License type. Values: `LICENSE_TYPE_NONE` (0), `LICENSE_TYPE_NAMED_USER_LICENSE` (1), `LICENSE_TYPE_CONCURRENT_USER_LICENSE` (2), `LICENSE_TYPE_READ_ONLY_LICENSE` (3), `LICENSE_TYPE_VISITOR_LICENSE` (4). |
| `login.credential_type` | [`CredentialType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.CredentialType/index.md) | Credential type. Values: `CREDENTIAL_TYPE_USER` (0), `CREDENTIAL_TYPE_TECHNICAL` (1). |
| `login.client_id` | `string` | Client ID, if credentialtype is eCredentialTypeTechnical. Otherwise unset. |
| `login.external_id` | `string` | The user identity in external system, such as Microsoft Entra (where the identity is a GUID). |
| `password_hash` | `string` | Deprecated; leave empty and use `password_info`. |
| `password_info` | [`PasswordInfo`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.PasswordInfo/index.md) | The encrypted password hash of an M-Files login. |
| `password_info.hash` | `string` | Password hash. |
| `password_info.hash_algorithm` | [`PasswordHashAlgorithm`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.PasswordHashAlgorithm/index.md) | Password hash algorithm. Values: `PASSWORD_HASH_ALGORITHM_MD5` (0), `PASSWORD_HASH_ALGORITHM_UNDEFINED` (1), `PASSWORD_HASH_ALGORITHM_PBKDF2_WITH_SHA512_AND100000_ITERS` (2). |
| `password_info.salt` | `string` | Password salt. |
| `password_info.encryption` | [`PasswordEncryption`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.PasswordEncryption/index.md) | Encryption algorithm used to protect the password hash. Values: `PASSWORD_ENCRYPTION_RC4` (0), `PASSWORD_ENCRYPTION_UNENCRYPTED` (1), `PASSWORD_ENCRYPTION_AES256` (2). |

<a id="response"></a>

## Response: AddLoginResponse

No fields.
