# User

**Summary:** Endpoints for User

- Role: [Developers](https://www.subrite.no/developers)
- Source: https://www.subrite.no/developers/user
- Updated: 2026-10-12
- Markdown index: https://www.subrite.no/developers/llms.txt

<a id="get-api-v1-users"></a>
## Get all users of the tenant

`GET /api/v1/users`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `page` | query | `number` | Default: `1` · `minimum`: `1` |
| `take` | query | `number` | Default: `10` · `minimum`: `1`, `maximum`: `50` |
| `orderBy` | query | `string` | Allowed values: `"createdAt"`, `"id"`, `"updatedAt"` · Default: `"createdAt"` |
| `orderDirection` | query | `string` | Allowed values: `"asc"`, `"desc"` · Default: `"desc"` |
| `search` | query | `string` | Search users by name or email (minimum 3 characters) · `minLength`: `3`, `maxLength`: `100` |

### Responses

#### 200

Content type: `application/json` · `UserResponsePaginated`

| Name | Type | Description |
| --- | --- | --- |
| `items` (Required) | `array of UserResponse` |   |
| `items[].isCompany` | `boolean` |   |
| `items[].companyName` | `string` |   |
| `items[].organizationNo` | `string` |   |
| `items[].role` | `Role` |   |
| `items[].role.name` (Required when parent is present) | `string` |   |
| `items[].role.tenantId` (Required when parent is present) | `number` |   |
| `items[].role.isActive` (Required when parent is present) | `boolean` |   |
| `items[].role.userRoles` (Required when parent is present) | `array of UserRole` | Nested fields omitted: depth limit. |
| `items[].role.rolePermissions` (Required when parent is present) | `array of RolePermission` | Nested fields omitted: depth limit. |
| `items[].role.tenant` (Required when parent is present) | `Tenant` | Nested fields omitted: depth limit. |
| `items[].role.id` (Required when parent is present) | `number` |   |
| `items[].role.createdAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].role.updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].role.deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].role.metaData` (Required when parent is present) | `object` |   |
| `items[].permissions` | `array of SectionPermission` |   |
| `items[].permissions[].sectionId` (Required when parent is present) | `string` | `maxLength`: `255` |
| `items[].permissions[].sectionName` | `string` | `maxLength`: `255` |
| `items[].permissions[].readPermission` (Required when parent is present) | `boolean` |   |
| `items[].permissions[].updatePermission` (Required when parent is present) | `boolean` |   |
| `items[].userSettings` | `UserSettings` |   |
| `items[].userSettings.notification` (Required when parent is present) | `NotificationPreferencesDto` | Can be null · Nested fields omitted: depth limit. |
| `items[].userSettings.id` (Required when parent is present) | `number` |   |
| `items[].userSettings.createdAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].userSettings.updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].userSettings.deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].userSettings.receiveAdminEmails` (Required when parent is present) | `boolean` |   |
| `items[].userSettings.twoFactorAuth` (Required when parent is present) | `boolean` |   |
| `items[].userSettings.hasSignedDPA` (Required when parent is present) | `boolean` |   |
| `items[].userSettings.language` (Required when parent is present) | `string` | Allowed values: `"en"`, `"no"`, `"sv"`, `"da"` |
| `items[].userSettings.metaData` (Required when parent is present) | `object` |   |
| `items[].userSettings.user` (Required when parent is present) | `User` | Nested fields omitted: depth limit. |
| `items[].nickname` | `string` |   |
| `items[].avatar` | `string` |   |
| `items[].hasActiveSubscription` | `boolean` |   |
| `items[].userType` (Required when parent is present) | `string` | Allowed values: `"system_admin"`, `"tenant_admin"`, `"member"`, `"not_set"` |
| `items[].tenantId` (Required when parent is present) | `number` |   |
| `items[].email` (Required when parent is present) | `string` | Can be null |
| `items[].fullName` (Required when parent is present) | `string` |   |
| `items[].phone` (Required when parent is present) | `string` |   |
| `items[].emailVerified` (Required when parent is present) | `string` | Can be null |
| `items[].phoneVerified` (Required when parent is present) | `boolean` |   |
| `items[].isOwner` (Required when parent is present) | `boolean` |   |
| `items[].isTestUser` (Required when parent is present) | `boolean` |   |
| `items[].image` (Required when parent is present) | `string` |   |
| `items[].createdInCheckoutUuid` (Required when parent is present) | `string` |   |
| `items[].userRoles` | `array of UserRole` |   |
| `items[].userRoles[].userId` (Required when parent is present) | `number` |   |
| `items[].userRoles[].roleId` (Required when parent is present) | `number` |   |
| `items[].userRoles[].user` (Required when parent is present) | `User` | Nested fields omitted: depth limit. |
| `items[].userRoles[].role` (Required when parent is present) | `Role` | Nested fields omitted: depth limit. |
| `items[].userRoles[].id` (Required when parent is present) | `number` |   |
| `items[].userRoles[].createdAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].userRoles[].updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].userRoles[].deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].userRoles[].metaData` (Required when parent is present) | `object` |   |
| `items[].notes` (Required when parent is present) | `array of Note` | Nested fields omitted: field limit. |
| `items[].exportHistory` (Required when parent is present) | `array of ExportHistory` | Nested fields omitted: field limit. |
| `items[].member` | `Member` | Nested fields omitted: field limit. |
| `items[].tenant` (Required when parent is present) | `Tenant` | Nested fields omitted: field limit. |
| `items[].userAccounts` (Required when parent is present) | `array of UserAccount` | Nested fields omitted: field limit. |
| `items[].userSessions` (Required when parent is present) | `array of UserSession` |   |
| `items[].userSessions[].id` (Required when parent is present) | `string` |   |
| `items[].userSessions[].expires` (Required when parent is present) | `string` |   |
| `items[].userSessions[].sessionToken` (Required when parent is present) | `string` |   |
| `items[].userSessions[].userId` (Required when parent is present) | `number` |   |
| `items[].userSessions[].user` (Required when parent is present) | `User` | Nested fields omitted: depth limit. |
| `items[].id` (Required when parent is present) | `number` |   |
| `items[].createdAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `items[].metaData` (Required when parent is present) | `object` |   |
| `meta` (Required) | `PageMeta` |   |
| `meta.page` (Required) | `number` |   |
| `meta.take` (Required) | `number` |   |
| `meta.count` (Required) | `number` |   |
| `meta.pageCount` (Required) | `number` |   |
| `meta.hasPreviousPage` (Required) | `boolean` |   |
| `meta.hasNextPage` (Required) | `boolean` |   |

#### 400

Content type: `application/json` · `ErrorResponse`

badRequest, internalServerError (validation); field codes in errors\[\]

| Name | Type | Description |
| --- | --- | --- |
| `messageCode` (Required) | `string` | Allowed values: `"badRequest"`, `"internalServerError"` |
| `message` | `string` |   |
| `errors` (Required) | `array of FieldError` |   |
| `errors[].field` (Required when parent is present) | `string` |   |
| `errors[].fieldValue` (Required when parent is present) | `string` |   |
| `errors[].identifier` (Required when parent is present) | `string` |   |
| `errors[].identifierValue` (Required when parent is present) | `string` |   |
| `errors[].messageCode` (Required when parent is present) | `string` |   |
| `errors[].message` | `string` |   |
| `errors[].errorType` (Required when parent is present) | `string` |   |

**Example response**

`application/json`

```json
{
  "messageCode": "badRequest",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

unauthorized

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

| Name | Type | Description |
| --- | --- | --- |
| `messageCode` (Required) | `string` |   |
| `message` | `string` |   |
| `errors` (Required) | `array of FieldError` |   |
| `errors[].field` (Required when parent is present) | `string` |   |
| `errors[].fieldValue` (Required when parent is present) | `string` |   |
| `errors[].identifier` (Required when parent is present) | `string` |   |
| `errors[].identifierValue` (Required when parent is present) | `string` |   |
| `errors[].messageCode` (Required when parent is present) | `string` |   |
| `errors[].message` | `string` |   |
| `errors[].errorType` (Required when parent is present) | `string` |   |

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

### Example request

```bash
curl https://api.subrite.no/api/v1/users \
  --header 'Authorization: Bearer <token>'
```

### Example response

200 · `application/json`

```json
{
  "items": [
    {
      "permissions": [],
      "userRoles": [],
      "notes": [],
      "exportHistory": [],
      "userAccounts": [],
      "userSessions": [],
      "metaData": {}
    }
  ],
  "meta": {
    "page": 0,
    "take": 0,
    "count": 0,
    "pageCount": 0,
    "hasPreviousPage": true,
    "hasNextPage": true
  }
}
```

<a id="post-api-v1-users"></a>
## Create a new user

`POST /api/v1/users`

**Authentication:** Bearer token (JWT)

### Request body

Content type: `application/json` · Required · `CreateUserDto`

| Name | Type | Description |
| --- | --- | --- |
| `fullName` (Required) | `string` |   |
| `email` | `string (email)` | `maxLength`: `255` · Can be null |
| `phone` | `string` | `maxLength`: `20` |
| `roleId` (Required) | `number` | `minimum`: `1` |

**Example request body**

`application/json`

```json
{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "phone": "<phone>",
  "roleId": 1
}
```

### Responses

#### 201

Content type: `application/json` · `UserResponse`

| Name | Type | Description |
| --- | --- | --- |
| `isCompany` | `boolean` |   |
| `companyName` | `string` |   |
| `organizationNo` | `string` |   |
| `role` | `Role` |   |
| `role.name` (Required when parent is present) | `string` |   |
| `role.tenantId` (Required when parent is present) | `number` |   |
| `role.isActive` (Required when parent is present) | `boolean` |   |
| `role.userRoles` (Required when parent is present) | `array of UserRole` | Nested fields omitted: field limit. |
| `role.rolePermissions` (Required when parent is present) | `array of RolePermission` | Nested fields omitted: field limit. |
| `role.tenant` (Required when parent is present) | `Tenant` | Nested fields omitted: field limit. |
| `role.id` (Required when parent is present) | `number` |   |
| `role.createdAt` (Required when parent is present) | `string (date-time)` |   |
| `role.updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `role.deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `role.metaData` (Required when parent is present) | `object` |   |
| `permissions` | `array of SectionPermission` |   |
| `permissions[].sectionId` (Required when parent is present) | `string` | `maxLength`: `255` |
| `permissions[].sectionName` | `string` | `maxLength`: `255` |
| `permissions[].readPermission` (Required when parent is present) | `boolean` |   |
| `permissions[].updatePermission` (Required when parent is present) | `boolean` |   |
| `userSettings` | `UserSettings` |   |
| `userSettings.notification` (Required when parent is present) | `NotificationPreferencesDto` | Can be null · Nested fields omitted: field limit. |
| `userSettings.id` (Required when parent is present) | `number` |   |
| `userSettings.createdAt` (Required when parent is present) | `string (date-time)` |   |
| `userSettings.updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `userSettings.deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `userSettings.receiveAdminEmails` (Required when parent is present) | `boolean` |   |
| `userSettings.twoFactorAuth` (Required when parent is present) | `boolean` |   |
| `userSettings.hasSignedDPA` (Required when parent is present) | `boolean` |   |
| `userSettings.language` (Required when parent is present) | `string` | Allowed values: `"en"`, `"no"`, `"sv"`, `"da"` |
| `userSettings.metaData` (Required when parent is present) | `object` |   |
| `userSettings.user` (Required when parent is present) | `User` | Nested fields omitted: field limit. |
| `nickname` | `string` |   |
| `avatar` | `string` |   |
| `hasActiveSubscription` | `boolean` |   |
| `userType` (Required) | `string` | Allowed values: `"system_admin"`, `"tenant_admin"`, `"member"`, `"not_set"` |
| `tenantId` (Required) | `number` |   |
| `email` (Required) | `string` | Can be null |
| `fullName` (Required) | `string` |   |
| `phone` (Required) | `string` |   |
| `emailVerified` (Required) | `string` | Can be null |
| `phoneVerified` (Required) | `boolean` |   |
| `isOwner` (Required) | `boolean` |   |
| `isTestUser` (Required) | `boolean` |   |
| `image` (Required) | `string` |   |
| `createdInCheckoutUuid` (Required) | `string` |   |
| `userRoles` | `array of UserRole` |   |
| `userRoles[].userId` (Required when parent is present) | `number` |   |
| `userRoles[].roleId` (Required when parent is present) | `number` |   |
| `userRoles[].user` (Required when parent is present) | `User` | Nested fields omitted: field limit. |
| `userRoles[].role` (Required when parent is present) | `Role` | Nested fields omitted: field limit. |
| `userRoles[].id` (Required when parent is present) | `number` |   |
| `userRoles[].createdAt` (Required when parent is present) | `string (date-time)` |   |
| `userRoles[].updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `userRoles[].deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `userRoles[].metaData` (Required when parent is present) | `object` |   |
| `notes` (Required) | `array of Note` |   |
| `notes[].note` (Required when parent is present) | `string` |   |
| `notes[].memberId` (Required when parent is present) | `string` |   |
| `notes[].adminUserId` (Required when parent is present) | `number` |   |
| `notes[].member` (Required when parent is present) | `Member` | Nested fields omitted: field limit. |
| `notes[].adminUser` (Required when parent is present) | `User` | Nested fields omitted: field limit. |
| `notes[].tenantId` (Required when parent is present) | `number` |   |
| `notes[].tenant` (Required when parent is present) | `Tenant` | Nested fields omitted: field limit. |
| `notes[].id` (Required when parent is present) | `number` |   |
| `notes[].createdAt` (Required when parent is present) | `string (date-time)` |   |
| `notes[].updatedAt` (Required when parent is present) | `string (date-time)` |   |
| `notes[].deletedAt` (Required when parent is present) | `string (date-time)` |   |
| `notes[].metaData` (Required when parent is present) | `object` |   |
| `exportHistory` (Required) | `array of ExportHistory` | Nested fields omitted: field limit. |
| `member` | `Member` | Nested fields omitted: field limit. |
| `tenant` (Required) | `Tenant` | Nested fields omitted: field limit. |
| `userAccounts` (Required) | `array of UserAccount` | Nested fields omitted: field limit. |
| `userSessions` (Required) | `array of UserSession` | Nested fields omitted: field limit. |
| `id` (Required) | `number` |   |
| `createdAt` (Required) | `string (date-time)` |   |
| `updatedAt` (Required) | `string (date-time)` |   |
| `deletedAt` (Required) | `string (date-time)` |   |
| `metaData` (Required) | `object` |   |

#### 400

Content type: `application/json` · `ErrorResponse`

badRequest, internalServerError (validation); field codes in errors\[\]

Same fields as [Get all users of the tenant (400)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "badRequest",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

unauthorized

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 404

Content type: `application/json` · `ErrorResponse`

roleNotFound

| Name | Type | Description |
| --- | --- | --- |
| `messageCode` (Required) | `string` | Allowed values: `"roleNotFound"` |
| `message` | `string` |   |
| `errors` (Required) | `array of FieldError` |   |
| `errors[].field` (Required when parent is present) | `string` |   |
| `errors[].fieldValue` (Required when parent is present) | `string` |   |
| `errors[].identifier` (Required when parent is present) | `string` |   |
| `errors[].identifierValue` (Required when parent is present) | `string` |   |
| `errors[].messageCode` (Required when parent is present) | `string` |   |
| `errors[].message` | `string` |   |
| `errors[].errorType` (Required when parent is present) | `string` |   |

**Example response**

`application/json`

```json
{
  "messageCode": "roleNotFound",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

### Example request

```bash
curl https://api.subrite.no/api/v1/users \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "phone": "<phone>",
  "roleId": 1
}'
```

### Example response

201 · `application/json`

```json
{
  "isCompany": true,
  "companyName": "string",
  "organizationNo": "string",
  "role": {
    "name": "string",
    "tenantId": 0,
    "isActive": true,
    "userRoles": [],
    "rolePermissions": [],
    "tenant": {
      "additionalFeatures": [],
      "disabledFeatures": [],
      "taxRates": [],
      "products": [],
      "users": [],
      "members": [],
      "roles": [],
      "subscriptionPlans": [],
      "packages": [],
      "invoices": [],
      "orders": [],
      "paymentProviders": [],
      "newslettersProviderConfig": [],
      "paymentProviderConfigs": [],
      "oidcClients": [],
      "oauthProviders": [],
      "activityLogs": [],
      "m2m_api_clients": [],
      "customProperties": [],
      "consents": [],
      "communicationTemplates": [],
      "additionalHostnames": [],
      "exportHistory": [],
      "arReportHistory": [],
      "mypageCardsSettings": [],
      "webhooks": [],
      "customOrders": [],
      "customOrderSources": [],
      "brandKits": [],
      "communicationReceivers": [],
      "metaData": {}
    },
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "permissions": [
    {}
  ],
  "userSettings": {
    "notification": {},
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "receiveAdminEmails": true,
    "twoFactorAuth": true,
    "hasSignedDPA": true,
    "language": "en",
    "metaData": {},
    "user": {
      "userRoles": [],
      "notes": [],
      "exportHistory": [],
      "userAccounts": [],
      "userSessions": [],
      "metaData": {}
    }
  },
  "nickname": "string",
  "avatar": "string",
  "hasActiveSubscription": true,
  "userType": "system_admin",
  "tenantId": 0,
  "email": "string",
  "fullName": "<fullName>",
  "phone": "<phone>",
  "emailVerified": "string",
  "phoneVerified": true,
  "isOwner": true,
  "isTestUser": true,
  "image": "string",
  "createdInCheckoutUuid": "string",
  "userRoles": [
    {
      "metaData": {}
    }
  ],
  "notes": [
    {
      "metaData": {}
    }
  ],
  "exportHistory": [
    {
      "metaData": {}
    }
  ],
  "member": {
    "userId": 0,
    "memberNumber": 0,
    "tenantId": 0,
    "externalId": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "avatar": "string",
    "email": "string",
    "birthDate": "<birthDate>",
    "phone": "<phone>",
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "deleteAfterExpiration": true,
    "customPropertyValues": {},
    "productRecipients": [],
    "id": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "tenant": {
    "market": "NO",
    "productName": "enterprise",
    "additionalFeatures": [],
    "disabledFeatures": [],
    "name": "string",
    "isActive": true,
    "defaultLanguage": "en",
    "hostName": "string",
    "logo": "string",
    "favicon": "string",
    "authLogo": "string",
    "authLogoHeight": 0,
    "siteUrl": "string",
    "termsUrl": "string",
    "privacyUrl": "string",
    "gtm": "string",
    "taxRates": [],
    "smsOtp": true,
    "emailProvider": "brevo",
    "tenantContact": "string",
    "registeredBusinessNo": "string",
    "bankAccountNo": "string",
    "swiftCode": "string",
    "iban": "<iban>",
    "defaultLogoutURL": "string",
    "postalAddress": "<postalAddress>",
    "otpTemplateId": {},
    "smsSenderId": 0,
    "emailSenderId": 0,
    "smsSender": {
      "metaData": {}
    },
    "emailSender": {
      "metaData": {}
    },
    "products": [],
    "users": [],
    "members": [],
    "roles": [],
    "subscriptionPlans": [],
    "packages": [],
    "invoices": [],
    "orders": [],
    "paymentProviders": [],
    "newslettersProviderConfig": [],
    "paymentProviderConfigs": [],
    "oidcClients": [],
    "oauthProviders": [],
    "activityLogs": [],
    "m2m_api_clients": [],
    "customProperties": [],
    "consents": [],
    "preference": {
      "inputFieldConfig": [],
      "customFieldsOnMemberCard": [],
      "customFieldsOnInvoice": [],
      "visibleAdditionalFieldsOnMypage": [],
      "metaData": {}
    },
    "settings": {
      "aiResidency": {},
      "metaData": {}
    },
    "communicationTemplates": [],
    "additionalHostnames": [],
    "exportHistory": [],
    "arReportHistory": [],
    "mypageCardsSettings": [],
    "webhooks": [],
    "customOrders": [],
    "customOrderSources": [],
    "brandKits": [],
    "communicationReceivers": [],
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "userAccounts": [
    {}
  ],
  "userSessions": [
    {}
  ],
  "id": 0,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "deletedAt": "2019-08-24T14:15:22Z",
  "metaData": {}
}
```

<a id="get-api-v1-users-exists-by-email"></a>
## Check if user exists by email

`GET /api/v1/users/exists-by-email`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `email` (Required) | query | `string (email)` | `maxLength`: `255` |

### Responses

#### 200

Content type: `application/json` · `UserExistResponse`

| Name | Type | Description |
| --- | --- | --- |
| `exists` (Required) | `boolean` | Whether the user exists |

#### 400

Content type: `application/json` · `ErrorResponse`

badRequest, internalServerError (validation); field codes in errors\[\]

Same fields as [Get all users of the tenant (400)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "badRequest",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

unauthorized

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/users/exists-by-email?email=%3Cemail%3E' \
  --header 'Authorization: Bearer <token>'
```

### Example response

200 · `application/json`

```json
{
  "exists": true
}
```

<a id="get-api-v1-users-id"></a>
## Get user by id

`GET /api/v1/users/{id}`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `id` (Required) | path | `number` |   |

### Responses

#### 200

Content type: `application/json` · `UserResponse`

Same fields as [Create a new user (201)](https://www.subrite.no/developers/user?md=true#post-api-v1-users).

#### 400

Content type: `application/json` · `ErrorResponse`

badRequest

| Name | Type | Description |
| --- | --- | --- |
| `messageCode` (Required) | `string` | Allowed values: `"badRequest"` |
| `message` | `string` |   |
| `errors` (Required) | `array of FieldError` |   |
| `errors[].field` (Required when parent is present) | `string` |   |
| `errors[].fieldValue` (Required when parent is present) | `string` |   |
| `errors[].identifier` (Required when parent is present) | `string` |   |
| `errors[].identifierValue` (Required when parent is present) | `string` |   |
| `errors[].messageCode` (Required when parent is present) | `string` |   |
| `errors[].message` | `string` |   |
| `errors[].errorType` (Required when parent is present) | `string` |   |

**Example response**

`application/json`

```json
{
  "messageCode": "badRequest",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

unauthorized

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 404

Content type: `application/json` · `ErrorResponse`

userNotFound

| Name | Type | Description |
| --- | --- | --- |
| `messageCode` (Required) | `string` | Allowed values: `"userNotFound"` |
| `message` | `string` |   |
| `errors` (Required) | `array of FieldError` |   |
| `errors[].field` (Required when parent is present) | `string` |   |
| `errors[].fieldValue` (Required when parent is present) | `string` |   |
| `errors[].identifier` (Required when parent is present) | `string` |   |
| `errors[].identifierValue` (Required when parent is present) | `string` |   |
| `errors[].messageCode` (Required when parent is present) | `string` |   |
| `errors[].message` | `string` |   |
| `errors[].errorType` (Required when parent is present) | `string` |   |

**Example response**

`application/json`

```json
{
  "messageCode": "userNotFound",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/users/{id}' \
  --header 'Authorization: Bearer <token>'
```

### Example response

200 · `application/json`

```json
{
  "isCompany": true,
  "companyName": "string",
  "organizationNo": "string",
  "role": {
    "name": "string",
    "tenantId": 0,
    "isActive": true,
    "userRoles": [],
    "rolePermissions": [],
    "tenant": {
      "additionalFeatures": [],
      "disabledFeatures": [],
      "taxRates": [],
      "products": [],
      "users": [],
      "members": [],
      "roles": [],
      "subscriptionPlans": [],
      "packages": [],
      "invoices": [],
      "orders": [],
      "paymentProviders": [],
      "newslettersProviderConfig": [],
      "paymentProviderConfigs": [],
      "oidcClients": [],
      "oauthProviders": [],
      "activityLogs": [],
      "m2m_api_clients": [],
      "customProperties": [],
      "consents": [],
      "communicationTemplates": [],
      "additionalHostnames": [],
      "exportHistory": [],
      "arReportHistory": [],
      "mypageCardsSettings": [],
      "webhooks": [],
      "customOrders": [],
      "customOrderSources": [],
      "brandKits": [],
      "communicationReceivers": [],
      "metaData": {}
    },
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "permissions": [
    {}
  ],
  "userSettings": {
    "notification": {},
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "receiveAdminEmails": true,
    "twoFactorAuth": true,
    "hasSignedDPA": true,
    "language": "en",
    "metaData": {},
    "user": {
      "userRoles": [],
      "notes": [],
      "exportHistory": [],
      "userAccounts": [],
      "userSessions": [],
      "metaData": {}
    }
  },
  "nickname": "string",
  "avatar": "string",
  "hasActiveSubscription": true,
  "userType": "system_admin",
  "tenantId": 0,
  "email": "string",
  "fullName": "<fullName>",
  "phone": "<phone>",
  "emailVerified": "string",
  "phoneVerified": true,
  "isOwner": true,
  "isTestUser": true,
  "image": "string",
  "createdInCheckoutUuid": "string",
  "userRoles": [
    {
      "metaData": {}
    }
  ],
  "notes": [
    {
      "metaData": {}
    }
  ],
  "exportHistory": [
    {
      "metaData": {}
    }
  ],
  "member": {
    "userId": 0,
    "memberNumber": 0,
    "tenantId": 0,
    "externalId": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "avatar": "string",
    "email": "string",
    "birthDate": "<birthDate>",
    "phone": "<phone>",
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "deleteAfterExpiration": true,
    "customPropertyValues": {},
    "productRecipients": [],
    "id": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "tenant": {
    "market": "NO",
    "productName": "enterprise",
    "additionalFeatures": [],
    "disabledFeatures": [],
    "name": "string",
    "isActive": true,
    "defaultLanguage": "en",
    "hostName": "string",
    "logo": "string",
    "favicon": "string",
    "authLogo": "string",
    "authLogoHeight": 0,
    "siteUrl": "string",
    "termsUrl": "string",
    "privacyUrl": "string",
    "gtm": "string",
    "taxRates": [],
    "smsOtp": true,
    "emailProvider": "brevo",
    "tenantContact": "string",
    "registeredBusinessNo": "string",
    "bankAccountNo": "string",
    "swiftCode": "string",
    "iban": "<iban>",
    "defaultLogoutURL": "string",
    "postalAddress": "<postalAddress>",
    "otpTemplateId": {},
    "smsSenderId": 0,
    "emailSenderId": 0,
    "smsSender": {
      "metaData": {}
    },
    "emailSender": {
      "metaData": {}
    },
    "products": [],
    "users": [],
    "members": [],
    "roles": [],
    "subscriptionPlans": [],
    "packages": [],
    "invoices": [],
    "orders": [],
    "paymentProviders": [],
    "newslettersProviderConfig": [],
    "paymentProviderConfigs": [],
    "oidcClients": [],
    "oauthProviders": [],
    "activityLogs": [],
    "m2m_api_clients": [],
    "customProperties": [],
    "consents": [],
    "preference": {
      "inputFieldConfig": [],
      "customFieldsOnMemberCard": [],
      "customFieldsOnInvoice": [],
      "visibleAdditionalFieldsOnMypage": [],
      "metaData": {}
    },
    "settings": {
      "aiResidency": {},
      "metaData": {}
    },
    "communicationTemplates": [],
    "additionalHostnames": [],
    "exportHistory": [],
    "arReportHistory": [],
    "mypageCardsSettings": [],
    "webhooks": [],
    "customOrders": [],
    "customOrderSources": [],
    "brandKits": [],
    "communicationReceivers": [],
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "userAccounts": [
    {}
  ],
  "userSessions": [
    {}
  ],
  "id": 0,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "deletedAt": "2019-08-24T14:15:22Z",
  "metaData": {}
}
```

<a id="delete-api-v1-users-id"></a>
## Delete user

`DELETE /api/v1/users/{id}`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `id` (Required) | path | `number` |   |

### Responses

#### 200

#### 400

Content type: `application/json` · `ErrorResponse`

badRequest

Same fields as [Get user by id (400)](https://www.subrite.no/developers/user?md=true#get-api-v1-users-id).

**Example response**

`application/json`

```json
{
  "messageCode": "badRequest",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

unauthorized

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 404

Content type: `application/json` · `ErrorResponse`

userNotFound

Same fields as [Get user by id (404)](https://www.subrite.no/developers/user?md=true#get-api-v1-users-id).

**Example response**

`application/json`

```json
{
  "messageCode": "userNotFound",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/users/{id}' \
  --request DELETE \
  --header 'Authorization: Bearer <token>'
```

<a id="patch-api-v1-users-id"></a>
## Update user

`PATCH /api/v1/users/{id}`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `id` (Required) | path | `number` |   |

### Request body

Content type: `application/json` · Required · `UpdateUserDto`

| Name | Type | Description |
| --- | --- | --- |
| `fullName` | `string` |   |
| `email` | `string (email)` | `maxLength`: `255` · Can be null |
| `phone` | `string` | `maxLength`: `20` |
| `roleId` | `number` | `minimum`: `1` |
| `userSettings` | `UserSettingsDto` |   |
| `userSettings.receiveAdminEmails` | `boolean` |   |
| `userSettings.twoFactorAuth` | `boolean` |   |
| `userSettings.hasSignedDPA` | `boolean` |   |
| `userSettings.language` | `string` | Allowed values: `"en"`, `"no"`, `"sv"`, `"da"` |
| `userSettings.notification` | `NotificationPreferencesDto` |   |
| `userSettings.notification.productUpdates` (Required when parent is present) | `boolean` |   |
| `userSettings.notification.incidentAlerts` (Required when parent is present) | `boolean` |   |

**Example request body**

`application/json`

```json
{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "phone": "<phone>",
  "roleId": 1,
  "userSettings": {
    "receiveAdminEmails": true,
    "twoFactorAuth": true,
    "hasSignedDPA": true,
    "language": "en"
  }
}
```

### Responses

#### 200

Content type: `application/json` · `UserResponse`

Same fields as [Create a new user (201)](https://www.subrite.no/developers/user?md=true#post-api-v1-users).

#### 400

Content type: `application/json` · `ErrorResponse`

badRequest (incl. phoneAlreadyVerified in errors\[\]), internalServerError (validation)

Same fields as [Get all users of the tenant (400)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "badRequest",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

unauthorized

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 404

Content type: `application/json` · `ErrorResponse`

userNotFound, roleNotFound

| Name | Type | Description |
| --- | --- | --- |
| `messageCode` (Required) | `string` | Allowed values: `"userNotFound"`, `"roleNotFound"` |
| `message` | `string` |   |
| `errors` (Required) | `array of FieldError` |   |
| `errors[].field` (Required when parent is present) | `string` |   |
| `errors[].fieldValue` (Required when parent is present) | `string` |   |
| `errors[].identifier` (Required when parent is present) | `string` |   |
| `errors[].identifierValue` (Required when parent is present) | `string` |   |
| `errors[].messageCode` (Required when parent is present) | `string` |   |
| `errors[].message` | `string` |   |
| `errors[].errorType` (Required when parent is present) | `string` |   |

**Example response**

`application/json`

```json
{
  "messageCode": "userNotFound",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get all users of the tenant (403)](https://www.subrite.no/developers/user?md=true#get-api-v1-users).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/users/{id}' \
  --request PATCH \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "phone": "<phone>",
  "roleId": 1,
  "userSettings": {
    "receiveAdminEmails": true,
    "twoFactorAuth": true,
    "hasSignedDPA": true,
    "language": "en",
    "notification": {}
  }
}'
```

### Example response

200 · `application/json`

```json
{
  "isCompany": true,
  "companyName": "string",
  "organizationNo": "string",
  "role": {
    "name": "string",
    "tenantId": 0,
    "isActive": true,
    "userRoles": [],
    "rolePermissions": [],
    "tenant": {
      "additionalFeatures": [],
      "disabledFeatures": [],
      "taxRates": [],
      "products": [],
      "users": [],
      "members": [],
      "roles": [],
      "subscriptionPlans": [],
      "packages": [],
      "invoices": [],
      "orders": [],
      "paymentProviders": [],
      "newslettersProviderConfig": [],
      "paymentProviderConfigs": [],
      "oidcClients": [],
      "oauthProviders": [],
      "activityLogs": [],
      "m2m_api_clients": [],
      "customProperties": [],
      "consents": [],
      "communicationTemplates": [],
      "additionalHostnames": [],
      "exportHistory": [],
      "arReportHistory": [],
      "mypageCardsSettings": [],
      "webhooks": [],
      "customOrders": [],
      "customOrderSources": [],
      "brandKits": [],
      "communicationReceivers": [],
      "metaData": {}
    },
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "permissions": [
    {}
  ],
  "userSettings": {
    "notification": {},
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "receiveAdminEmails": true,
    "twoFactorAuth": true,
    "hasSignedDPA": true,
    "language": "en",
    "metaData": {},
    "user": {
      "userRoles": [],
      "notes": [],
      "exportHistory": [],
      "userAccounts": [],
      "userSessions": [],
      "metaData": {}
    }
  },
  "nickname": "string",
  "avatar": "string",
  "hasActiveSubscription": true,
  "userType": "system_admin",
  "tenantId": 0,
  "email": "string",
  "fullName": "<fullName>",
  "phone": "<phone>",
  "emailVerified": "string",
  "phoneVerified": true,
  "isOwner": true,
  "isTestUser": true,
  "image": "string",
  "createdInCheckoutUuid": "string",
  "userRoles": [
    {
      "metaData": {}
    }
  ],
  "notes": [
    {
      "metaData": {}
    }
  ],
  "exportHistory": [
    {
      "metaData": {}
    }
  ],
  "member": {
    "userId": 0,
    "memberNumber": 0,
    "tenantId": 0,
    "externalId": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "avatar": "string",
    "email": "string",
    "birthDate": "<birthDate>",
    "phone": "<phone>",
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "deleteAfterExpiration": true,
    "customPropertyValues": {},
    "productRecipients": [],
    "id": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "tenant": {
    "market": "NO",
    "productName": "enterprise",
    "additionalFeatures": [],
    "disabledFeatures": [],
    "name": "string",
    "isActive": true,
    "defaultLanguage": "en",
    "hostName": "string",
    "logo": "string",
    "favicon": "string",
    "authLogo": "string",
    "authLogoHeight": 0,
    "siteUrl": "string",
    "termsUrl": "string",
    "privacyUrl": "string",
    "gtm": "string",
    "taxRates": [],
    "smsOtp": true,
    "emailProvider": "brevo",
    "tenantContact": "string",
    "registeredBusinessNo": "string",
    "bankAccountNo": "string",
    "swiftCode": "string",
    "iban": "<iban>",
    "defaultLogoutURL": "string",
    "postalAddress": "<postalAddress>",
    "otpTemplateId": {},
    "smsSenderId": 0,
    "emailSenderId": 0,
    "smsSender": {
      "metaData": {}
    },
    "emailSender": {
      "metaData": {}
    },
    "products": [],
    "users": [],
    "members": [],
    "roles": [],
    "subscriptionPlans": [],
    "packages": [],
    "invoices": [],
    "orders": [],
    "paymentProviders": [],
    "newslettersProviderConfig": [],
    "paymentProviderConfigs": [],
    "oidcClients": [],
    "oauthProviders": [],
    "activityLogs": [],
    "m2m_api_clients": [],
    "customProperties": [],
    "consents": [],
    "preference": {
      "inputFieldConfig": [],
      "customFieldsOnMemberCard": [],
      "customFieldsOnInvoice": [],
      "visibleAdditionalFieldsOnMypage": [],
      "metaData": {}
    },
    "settings": {
      "aiResidency": {},
      "metaData": {}
    },
    "communicationTemplates": [],
    "additionalHostnames": [],
    "exportHistory": [],
    "arReportHistory": [],
    "mypageCardsSettings": [],
    "webhooks": [],
    "customOrders": [],
    "customOrderSources": [],
    "brandKits": [],
    "communicationReceivers": [],
    "id": 0,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z",
    "deletedAt": "2019-08-24T14:15:22Z",
    "metaData": {}
  },
  "userAccounts": [
    {}
  ],
  "userSessions": [
    {}
  ],
  "id": 0,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "deletedAt": "2019-08-24T14:15:22Z",
  "metaData": {}
}
```
