# ClientData

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Reference](https://developer.m-files.com/APIs/gRPC-API/Reference/index.md) > [Messages](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/index.md)

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

Describes the client software that logs in.

- **Full name:** `MFiles.ClientData`
- **Proto file:** [`mfiles/structs.proto`](https://developer.m-files.com/APIs/gRPC-API/downloads/proto/mfiles/structs.proto)

<a id="fields"></a>

## Fields

| Field | Type | Number | Description |
|---|---|---|---|
| <a id="f-version"></a>`version` | `uint64` | 1 | The client's version, packed like `QueryVersionResponse.server_version` (`major << 48 \| minor << 32 \| build << 16 \| patch`). May be 0. If the server administrator has set a minimum client version, older clients are refused with `E_MFILES_INCOMPATIBLE_SERVER_VERSION`. |
| <a id="f-capabilities"></a>`capabilities` | [`ClientCapabilities`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.ClientCapabilities/index.md) | 2 | Features the client software handles. The server adapts some responses to them, so set only the flags your code implements; leave the rest false. |
| <a id="f-language"></a>`language` | `string` | 3 | The client's language, for example `en`. For [LogInWithSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/LogInWithSession/index.md), empty means the language of the existing session. |
| <a id="f-type"></a>`type` | [`ClientType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.ClientType/index.md) | 4 | The kind of client. Applications use `CLIENT_TYPE_SERVER_API`. |
| <a id="f-type_specifier"></a>`type_specifier` | `string` | 5 | Optional free-form name of the client application. |

<a id="used-by-methods"></a>

## Used by methods

- [IRPCLogin.LogIn](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/LogIn/index.md): Authenticates the caller and opens a session to a vault, or to the server when the vault GUID is all zeros.
- [IRPCLogin.LogInRemote](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/LogInRemote/index.md): Logs in (with authentication) to a remote server.
- [IRPCLogin.LogInWithSession](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/LogInWithSession/index.md): Opens a new session to a vault (or the server) for the user of an existing session, without authenticating again.
- [IRPCLogin.Relogin](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/Relogin/index.md): Logs in again by using the current session ID. Used by M-Files' own clients.

<a id="used-in-fields"></a>

## Used in fields

- [`LogInWithSessionRequest.client_data`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/LogInWithSession/index.md#request): Describes the client software, as in `LogIn`.
- [`LogInRemoteRequest.client_data`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/LogInRemote/index.md#request): Description of the client.
- [`ReloginRequest.client_data`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/Relogin/index.md#request): Describes the client software, as in `LogIn`.
- [`LogInRequest.client_data`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCLogin/LogIn/index.md#request): Describes the client software. Set `type` (for example `CLIENT_TYPE_SERVER_API`) and `language`; set `capabilities` only for features your code handles.
