> For the complete documentation index, see [llms.txt](https://www.center.daxium-air.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.center.daxium-air.com/api-reference/users.md).

# Users

Manage users, licenses and access

## GET /users

> List all users of the company

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"Pagination":{"description":"Envelope shared by every paginated collection, alongside the collection itself.","properties":{"server_time":{"description":"Server timestamp at the moment the response was built.","type":"integer"},"total_count":{"description":"Total number of items matching the request, across all pages.","type":"integer"},"total_pages":{"type":"integer"},"next_page":{"description":"Index of the next page. Absent on the last one.","type":"integer"}},"type":"object"},"User":{"properties":{"id":{"type":"integer"},"email":{"description":"Email address, which is also the login.","type":"string"},"email_canonical":{"description":"Normalized form of the email, used for lookups.","type":"string"},"active":{"description":"Whether the account is active and holds a valid licence.","type":"boolean"},"first_name":{"type":"string"},"last_name":{"type":"string"},"last_login_at":{"type":"string","format":"date-time"},"last_login_mobile_at":{"description":"Last login from a mobile application.","type":"string","format":"date-time"},"settings":{"description":"Additional per-user settings, such as the locale.","properties":{"locale":{"type":"string"}},"type":"object"},"created_at":{"type":"integer"},"updated_at":{"type":"integer"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/users":{"get":{"tags":["users"],"summary":"List all users of the company","operationId":"listAllUsers","parameters":[{"name":"page","in":"query","description":"Page of the overview.","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"0","pattern":"\\d+"}},{"name":"per_page","in":"query","description":"Number of result by page (Max 100)","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"10","pattern":"-?\\d+"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"Paginated list of users","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Pagination"},{"properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/User"}}},"type":"object"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## GET /users/me

> Get the authenticated user

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"CurrentUserResponse":{"properties":{"company":{"$ref":"#/components/schemas/Company"},"user":{"$ref":"#/components/schemas/User"}},"type":"object"},"Company":{"properties":{"id":{"type":"integer"},"title":{"type":"string"},"sync_settings":{"type":"object"},"created_at":{"type":"integer"},"updated_at":{"type":"integer"}},"type":"object"},"User":{"properties":{"id":{"type":"integer"},"email":{"description":"Email address, which is also the login.","type":"string"},"email_canonical":{"description":"Normalized form of the email, used for lookups.","type":"string"},"active":{"description":"Whether the account is active and holds a valid licence.","type":"boolean"},"first_name":{"type":"string"},"last_name":{"type":"string"},"last_login_at":{"type":"string","format":"date-time"},"last_login_mobile_at":{"description":"Last login from a mobile application.","type":"string","format":"date-time"},"settings":{"description":"Additional per-user settings, such as the locale.","properties":{"locale":{"type":"string"}},"type":"object"},"created_at":{"type":"integer"},"updated_at":{"type":"integer"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/users/me":{"get":{"tags":["users"],"summary":"Get the authenticated user","operationId":"getCurrentUser","parameters":[{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"The authenticated user, together with the company they belong to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentUserResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## POST /users/pushkey

> Register a device push notification key

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"PushKeyInput":{"description":"Push notification key for a device","properties":{"app_version":{"description":"Daxium-Air version","type":"string"},"id":{"description":"Unique device identifier","type":"string"},"key":{"description":"Push key","type":"string"},"name":{"description":"Device name","type":"string"},"os":{"description":"Device OS (Android or iOS)","type":"string"},"os_version":{"description":"OS version","type":"string"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/users/pushkey":{"post":{"tags":["users"],"summary":"Register a device push notification key","operationId":"sendPushKey","parameters":[{"$ref":"#/components/parameters/XAcceptVersion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushKeyInput"}}}},"responses":{"200":{"description":"The push key has been registered."},"400":{"description":"Malformed JSON body, or a required property is missing.","content":{"application/json":{"schema":{"properties":{"error":{"type":"string"}},"type":"object"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## List the users of a workspace

> Set \`username\` to filter the list down to the user(s) matching that email. The response keeps the same paginated shape either way — it is never a single bare user object.

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"UserListResponse":{"properties":{"server_time":{"type":"integer","format":"int64"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"users":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceUser"}}},"type":"object"},"WorkspaceUser":{"properties":{"id":{"type":"integer"},"email":{"description":"Email address, which is also the login.","type":"string"},"active":{"description":"Whether the account is active and holds a valid licence.","type":"boolean"},"first_name":{"type":"string"},"last_name":{"type":"string"},"subscription_id":{"description":"Identifier of the subscription attached to the user. Empty string when none is attached.","type":"string"},"system_groups":{"description":"Identifiers of the system groups the user belongs to (1 = admin, 2 = mobile, 3 = web).","type":"array","items":{"type":"integer"}},"groups":{"description":"Identifiers of the groups the user belongs to.","type":"array","items":{"type":"integer"}},"settings":{"description":"Additional per-user settings, such as the locale.","properties":{"locale":{"type":"string"}},"type":"object"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/users":{"get":{"tags":["users"],"summary":"List the users of a workspace","description":"Set `username` to filter the list down to the user(s) matching that email. The response keeps the same paginated shape either way — it is never a single bare user object.","operationId":"listWorkspaceUsers","parameters":[{"name":"page","in":"query","description":"Page of the overview.","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"0","pattern":"\\d+"}},{"name":"per_page","in":"query","description":"Number of result by page (Max 100)","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"10","pattern":"-?\\d+"}},{"name":"username","in":"query","description":"Username to seek","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":""}},{"name":"only_active","in":"query","description":"Return only active users with a valid licence","required":false,"allowEmptyValue":false,"schema":{"type":"string","default":"false","pattern":"(true|false|1|0)"}},{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"Paginated list of users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## POST /{app\_short}/users

> Create a user in the workspace

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"UserInput":{"description":"Body for creating or updating a user. Provide `plainPassword` for Daxium\nauthentication, or `ssoProvider` for SSO authentication.\n","required":["username","system_groups"],"properties":{"active":{"description":"Status (active / inactive)","type":"boolean"},"firstName":{"description":"First name","type":"string"},"force_login_password":{"description":"[SSO companies only] 0 to deactivate, 1 to force Daxium login/password authentication","type":"integer","enum":[0,1]},"groups":{"description":"Group identifiers (see the `/{app_short}/groups` API)","type":"array","items":{"type":"integer"}},"lastName":{"description":"Last name","type":"string"},"locale":{"description":"User language","type":"string","enum":["en","fr"]},"plainPassword":{"description":"Password. The `first` and `second` keys are mandatory and must be identical.\nRules: at least 1 uppercase, 1 lowercase, 1 digit, 8 characters total.\n","properties":{"first":{"type":"string","format":"password"},"second":{"type":"string","format":"password"}},"type":"object"},"ssoProvider":{"description":"[SSO companies only] Identifier of the SSO provider to use (provided by Daxium)","type":"integer","nullable":true},"subscription_id":{"description":"Subscription UUID (see the `/subscriptions` API)","type":"string"},"system_groups":{"description":"System groups: 1 = administrator, 2 = mobile access, 3 = web access","type":"array","items":{"type":"integer"}},"username":{"description":"Email address (login), must be unique","type":"string","format":"email"}},"type":"object"},"WorkspaceUser":{"properties":{"id":{"type":"integer"},"email":{"description":"Email address, which is also the login.","type":"string"},"active":{"description":"Whether the account is active and holds a valid licence.","type":"boolean"},"first_name":{"type":"string"},"last_name":{"type":"string"},"subscription_id":{"description":"Identifier of the subscription attached to the user. Empty string when none is attached.","type":"string"},"system_groups":{"description":"Identifiers of the system groups the user belongs to (1 = admin, 2 = mobile, 3 = web).","type":"array","items":{"type":"integer"}},"groups":{"description":"Identifiers of the groups the user belongs to.","type":"array","items":{"type":"integer"}},"settings":{"description":"Additional per-user settings, such as the locale.","properties":{"locale":{"type":"string"}},"type":"object"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/users":{"post":{"tags":["users"],"summary":"Create a user in the workspace","operationId":"createWorkspaceUser","parameters":[{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInput"}}}},"responses":{"200":{"description":"User created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceUser"}}}},"400":{"description":"The payload is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## Create multiple users (async)

> Poll \`callbackUrl\` for the status of the job.

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"UserInput":{"description":"Body for creating or updating a user. Provide `plainPassword` for Daxium\nauthentication, or `ssoProvider` for SSO authentication.\n","required":["username","system_groups"],"properties":{"active":{"description":"Status (active / inactive)","type":"boolean"},"firstName":{"description":"First name","type":"string"},"force_login_password":{"description":"[SSO companies only] 0 to deactivate, 1 to force Daxium login/password authentication","type":"integer","enum":[0,1]},"groups":{"description":"Group identifiers (see the `/{app_short}/groups` API)","type":"array","items":{"type":"integer"}},"lastName":{"description":"Last name","type":"string"},"locale":{"description":"User language","type":"string","enum":["en","fr"]},"plainPassword":{"description":"Password. The `first` and `second` keys are mandatory and must be identical.\nRules: at least 1 uppercase, 1 lowercase, 1 digit, 8 characters total.\n","properties":{"first":{"type":"string","format":"password"},"second":{"type":"string","format":"password"}},"type":"object"},"ssoProvider":{"description":"[SSO companies only] Identifier of the SSO provider to use (provided by Daxium)","type":"integer","nullable":true},"subscription_id":{"description":"Subscription UUID (see the `/subscriptions` API)","type":"string"},"system_groups":{"description":"System groups: 1 = administrator, 2 = mobile access, 3 = web access","type":"array","items":{"type":"integer"}},"username":{"description":"Email address (login), must be unique","type":"string","format":"email"}},"type":"object"},"CallbackUrlResponse":{"properties":{"callbackUrl":{"description":"URL to poll for async job status","type":"string"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/users/multiple":{"post":{"tags":["users"],"summary":"Create multiple users (async)","description":"Poll `callbackUrl` for the status of the job.","operationId":"createMultipleWorkspaceUsers","parameters":[{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserInput"}}}}},"responses":{"200":{"description":"Async job accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackUrlResponse"}}}},"400":{"description":"Empty payload, or more users than the configured maximum.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## Update multiple users (async)

> Poll \`callbackUrl\` for the status of the job.

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"UserInput":{"description":"Body for creating or updating a user. Provide `plainPassword` for Daxium\nauthentication, or `ssoProvider` for SSO authentication.\n","required":["username","system_groups"],"properties":{"active":{"description":"Status (active / inactive)","type":"boolean"},"firstName":{"description":"First name","type":"string"},"force_login_password":{"description":"[SSO companies only] 0 to deactivate, 1 to force Daxium login/password authentication","type":"integer","enum":[0,1]},"groups":{"description":"Group identifiers (see the `/{app_short}/groups` API)","type":"array","items":{"type":"integer"}},"lastName":{"description":"Last name","type":"string"},"locale":{"description":"User language","type":"string","enum":["en","fr"]},"plainPassword":{"description":"Password. The `first` and `second` keys are mandatory and must be identical.\nRules: at least 1 uppercase, 1 lowercase, 1 digit, 8 characters total.\n","properties":{"first":{"type":"string","format":"password"},"second":{"type":"string","format":"password"}},"type":"object"},"ssoProvider":{"description":"[SSO companies only] Identifier of the SSO provider to use (provided by Daxium)","type":"integer","nullable":true},"subscription_id":{"description":"Subscription UUID (see the `/subscriptions` API)","type":"string"},"system_groups":{"description":"System groups: 1 = administrator, 2 = mobile access, 3 = web access","type":"array","items":{"type":"integer"}},"username":{"description":"Email address (login), must be unique","type":"string","format":"email"}},"type":"object"},"CallbackUrlResponse":{"properties":{"callbackUrl":{"description":"URL to poll for async job status","type":"string"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/users/multiple":{"put":{"tags":["users"],"summary":"Update multiple users (async)","description":"Poll `callbackUrl` for the status of the job.","operationId":"updateMultipleWorkspaceUsers","parameters":[{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserInput"}}}}},"responses":{"200":{"description":"Async job accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackUrlResponse"}}}},"400":{"description":"Empty payload, or more users than the configured maximum.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```

## GET /{app\_short}/users/{user\_id}

> Get a user of the workspace

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"WorkspaceUser":{"properties":{"id":{"type":"integer"},"email":{"description":"Email address, which is also the login.","type":"string"},"active":{"description":"Whether the account is active and holds a valid licence.","type":"boolean"},"first_name":{"type":"string"},"last_name":{"type":"string"},"subscription_id":{"description":"Identifier of the subscription attached to the user. Empty string when none is attached.","type":"string"},"system_groups":{"description":"Identifiers of the system groups the user belongs to (1 = admin, 2 = mobile, 3 = web).","type":"array","items":{"type":"integer"}},"groups":{"description":"Identifiers of the groups the user belongs to.","type":"array","items":{"type":"integer"}},"settings":{"description":"Additional per-user settings, such as the locale.","properties":{"locale":{"type":"string"}},"type":"object"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/users/{user_id}":{"get":{"tags":["users"],"summary":"Get a user of the workspace","operationId":"getWorkspaceUser","parameters":[{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9]+"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"User object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceUser"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"No user with this identifier in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Update a user of the workspace

> Only the properties present in the body are updated.

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"UserInput":{"description":"Body for creating or updating a user. Provide `plainPassword` for Daxium\nauthentication, or `ssoProvider` for SSO authentication.\n","required":["username","system_groups"],"properties":{"active":{"description":"Status (active / inactive)","type":"boolean"},"firstName":{"description":"First name","type":"string"},"force_login_password":{"description":"[SSO companies only] 0 to deactivate, 1 to force Daxium login/password authentication","type":"integer","enum":[0,1]},"groups":{"description":"Group identifiers (see the `/{app_short}/groups` API)","type":"array","items":{"type":"integer"}},"lastName":{"description":"Last name","type":"string"},"locale":{"description":"User language","type":"string","enum":["en","fr"]},"plainPassword":{"description":"Password. The `first` and `second` keys are mandatory and must be identical.\nRules: at least 1 uppercase, 1 lowercase, 1 digit, 8 characters total.\n","properties":{"first":{"type":"string","format":"password"},"second":{"type":"string","format":"password"}},"type":"object"},"ssoProvider":{"description":"[SSO companies only] Identifier of the SSO provider to use (provided by Daxium)","type":"integer","nullable":true},"subscription_id":{"description":"Subscription UUID (see the `/subscriptions` API)","type":"string"},"system_groups":{"description":"System groups: 1 = administrator, 2 = mobile access, 3 = web access","type":"array","items":{"type":"integer"}},"username":{"description":"Email address (login), must be unique","type":"string","format":"email"}},"type":"object"},"WorkspaceUser":{"properties":{"id":{"type":"integer"},"email":{"description":"Email address, which is also the login.","type":"string"},"active":{"description":"Whether the account is active and holds a valid licence.","type":"boolean"},"first_name":{"type":"string"},"last_name":{"type":"string"},"subscription_id":{"description":"Identifier of the subscription attached to the user. Empty string when none is attached.","type":"string"},"system_groups":{"description":"Identifiers of the system groups the user belongs to (1 = admin, 2 = mobile, 3 = web).","type":"array","items":{"type":"integer"}},"groups":{"description":"Identifiers of the groups the user belongs to.","type":"array","items":{"type":"integer"}},"settings":{"description":"Additional per-user settings, such as the locale.","properties":{"locale":{"type":"string"}},"type":"object"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/users/{user_id}":{"patch":{"tags":["users"],"summary":"Update a user of the workspace","description":"Only the properties present in the body are updated.","operationId":"updateWorkspaceUser","parameters":[{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9]+"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInput"}}}},"responses":{"200":{"description":"User updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceUser"}}}},"400":{"description":"The payload is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"No user with this identifier in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## GET /{app\_short}/users/multiple/callback/{callback\_id}

> Poll an async user job

```json
{"openapi":"3.0.0","info":{"title":"Daxium Air API","version":"v1.3"},"tags":[{"name":"users"}],"servers":[{"url":"https://api.daxium-air.com","description":"Production"}],"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"Send the access token as `Authorization: Bearer <token>`.","flows":{"password":{"tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}},"authorizationCode":{"authorizationUrl":"/oauth/v2/auth","tokenUrl":"/oauth/v2/token","refreshUrl":"/oauth/v2/token","scopes":{}}}}},"parameters":{"XAcceptVersion":{"name":"X-Accept-Version","in":"header","description":"API version to apply. Defaults to `v1.0` when omitted; an unknown value falls back to the latest version.","required":false,"schema":{"type":"string","default":"v1.3","enum":["v1.0","v1.1","v1.2","v1.3"]}}},"schemas":{"UsersCallbackResponse":{"properties":{"callbackDetails":{"properties":{"errors":{"description":"Errors per user. Format: {\"<username>\": {\"<field>\": [\"<error>\"]}}","type":"array","items":{"type":"object","additionalProperties":true}},"nbErrors":{"description":"Number of users that failed","type":"integer"},"nbRecordsDone":{"description":"Number of users already processed","type":"integer"},"nbRecordsTodo":{"description":"Number of users to process","type":"integer"},"nbSuccess":{"description":"Number of users processed successfully","type":"integer"},"status":{"description":"Current job status","type":"string","enum":["Planned","Running","Finished","Finished with errors","Failed","In timeout"]},"success":{"description":"Users created/updated successfully. Format: {\"<username>\": {\"id\": <user_id>}}","type":"array","items":{"type":"object","additionalProperties":true}}},"type":"object"}},"type":"object"},"ErrorResponse":{"description":"Standardised error body returned by the REST exception subscriber.","properties":{"code":{"description":"Daxium error code.","type":"string"},"message":{"type":"string"},"url":{"description":"Link to the error code in the error reference.","type":"string"},"api_version":{"type":"string"},"infos":{"description":"Additional context about the error, when the exception carries any.","type":"array","items":{}},"server_time":{"type":"integer"}},"type":"object"}},"responses":{"Unauthorized":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/{app_short}/users/multiple/callback/{callback_id}":{"get":{"tags":["users"],"summary":"Poll an async user job","operationId":"getMultipleUsersCallback","parameters":[{"name":"app_short","in":"path","description":"Short name of the workspace, as found in the URL of the back-office.","required":true,"schema":{"type":"string"}},{"name":"callback_id","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/XAcceptVersion"}],"responses":{"200":{"description":"Job status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersCallbackResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://www.center.daxium-air.com/api-reference/users.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
