---
title: SCIM Users API
path: reference/api/scim-users
status: published
---

# SCIM Users API

Reference for the `SCIM Users` endpoint group — 6 endpoints.

Generated from the live OpenAPI spec. Re-run `_generate_api_reference.py` after backend changes.

## Authentication

All endpoints require a Bearer JWT in the `Authorization` header unless noted otherwise. See [Concepts → Tokens and scopes](/docs/scaikey/concepts/tokens-and-scopes) and [Reference → OAuth endpoints](/docs/scaikey/reference/oauth-endpoints) for how to obtain one.

## Endpoints

### **GET** `/api/v1/tenants/{tenant_id}/scim/v2/Users`

_List Users_

List users with SCIM filtering and pagination.

RFC 7644 Section 3.4.2 - Querying Resources.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `tenant_id` | path | yes | `string` |  |
| `filter` | query | no | `string` \| `null` | SCIM filter expression |
| `startIndex` | query | no | `integer` | 1-based start index |
| `count` | query | no | `integer` | Number of results |
| `sortBy` | query | no | `string` \| `null` | Attribute to sort by |
| `sortOrder` | query | no | `string` | Sort order |
| `attributes` | query | no | `string` \| `null` | Attributes to include |
| `excludedAttributes` | query | no | `string` \| `null` | Attributes to exclude |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → [`SCIMListResponse`](#schema-scimlistresponse) |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **POST** `/api/v1/tenants/{tenant_id}/scim/v2/Users`

_Create User_

Create a new user.

RFC 7644 Section 3.3 - Creating Resources.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `tenant_id` | path | yes | `string` |  |

**Request body:**

Required.

- `application/json` → [`SCIMUserCreate`](#schema-scimusercreate)

**Responses:**

| Status | Body |
|---|---|
| `201` | `application/json` → [`SCIMUser`](#schema-scimuser) |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **DELETE** `/api/v1/tenants/{tenant_id}/scim/v2/Users/{user_id}`

_Delete User_

Delete a user.

RFC 7644 Section 3.6 - Deleting Resources.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `tenant_id` | path | yes | `string` |  |
| `user_id` | path | yes | `string` |  |

**Responses:**

| Status | Body |
|---|---|
| `204` | Successful Response |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **GET** `/api/v1/tenants/{tenant_id}/scim/v2/Users/{user_id}`

_Get User_

Get a specific user by ID.

RFC 7644 Section 3.4.1 - Retrieving a Known Resource.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `tenant_id` | path | yes | `string` |  |
| `user_id` | path | yes | `string` |  |

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → [`SCIMUser`](#schema-scimuser) |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **PATCH** `/api/v1/tenants/{tenant_id}/scim/v2/Users/{user_id}`

_Patch User_

Partially update a user.

RFC 7644 Section 3.5.2 - Modifying with PATCH.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `tenant_id` | path | yes | `string` |  |
| `user_id` | path | yes | `string` |  |

**Request body:**

Required.

- `application/json` → [`SCIMPatchRequest`](#schema-scimpatchrequest)

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → [`SCIMUser`](#schema-scimuser) |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

### **PUT** `/api/v1/tenants/{tenant_id}/scim/v2/Users/{user_id}`

_Replace User_

Replace a user entirely.

RFC 7644 Section 3.5.1 - Replacing with PUT.

**Parameters:**

| Name | In | Required | Type | Description |
|---|---|---|---|---|
| `tenant_id` | path | yes | `string` |  |
| `user_id` | path | yes | `string` |  |

**Request body:**

Required.

- `application/json` → [`SCIMUserCreate`](#schema-scimusercreate)

**Responses:**

| Status | Body |
|---|---|
| `200` | `application/json` → [`SCIMUser`](#schema-scimuser) |
| `422` | `application/json` → [`HTTPValidationError`](#schema-httpvalidationerror) |

---

## Schemas

Definitions for every type referenced by the endpoints above. Schema-to-schema references on this page link within the page; cross-page references would require visiting the linked page.

### `HTTPValidationError`

| Field | Type | Required | Description |
|---|---|---|---|
| `detail` | array of [`ValidationError`](#schema-validationerror) | no |  |

### `SCIMAddress`

SCIM address structure.

| Field | Type | Required | Description |
|---|---|---|---|
| `formatted` | `string` \| `null` | no |  |
| `streetAddress` | `string` \| `null` | no |  |
| `locality` | `string` \| `null` | no |  |
| `region` | `string` \| `null` | no |  |
| `postalCode` | `string` \| `null` | no |  |
| `country` | `string` \| `null` | no |  |
| `type` | `string` \| `null` | no |  |
| `primary` | `boolean` | no | Default: `False` |

### `SCIMEmail`

SCIM email structure.

| Field | Type | Required | Description |
|---|---|---|---|
| `value` | `string` | yes |  |
| `type` | `string` \| `null` | no |  |
| `primary` | `boolean` | no | Default: `False` |

### `SCIMEnterpriseUser`

SCIM Enterprise User extension (RFC 7643 Section 4.3).

| Field | Type | Required | Description |
|---|---|---|---|
| `employeeNumber` | `string` \| `null` | no |  |
| `costCenter` | `string` \| `null` | no |  |
| `organization` | `string` \| `null` | no |  |
| `division` | `string` \| `null` | no |  |
| `department` | `string` \| `null` | no |  |
| `manager` | object \| `null` | no |  |

### `SCIMGroup`

SCIM Group resource (RFC 7643 Section 4.2).

| Field | Type | Required | Description |
|---|---|---|---|
| `schemas` | array of `string` | no | Default: `['urn:ietf:params:scim:schemas:core:2.0:Group']` |
| `id` | `string` \| `null` | no |  |
| `externalId` | `string` \| `null` | no |  |
| `meta` | [`SCIMMeta`](#schema-scimmeta) \| `null` | no |  |
| `displayName` | `string` | yes |  |
| `members` | array of [`SCIMGroupMember`](#schema-scimgroupmember) \| `null` | no |  |

### `SCIMGroupMember`

SCIM group member reference.

| Field | Type | Required | Description |
|---|---|---|---|
| `value` | `string` | yes |  |
| `$ref` | `string` \| `null` | no |  |
| `display` | `string` \| `null` | no |  |
| `type` | `string` | no | Default: `User` |

### `SCIMListResponse`

SCIM List response (RFC 7644 Section 3.4.2).

| Field | Type | Required | Description |
|---|---|---|---|
| `schemas` | array of `string` | no | Default: `['urn:ietf:params:scim:api:messages:2.0:ListResponse']` |
| `totalResults` | `integer` | yes |  |
| `startIndex` | `integer` | no | Default: `1` |
| `itemsPerPage` | `integer` | yes |  |
| `Resources` | array of [`SCIMUser`](#schema-scimuser) \| [`SCIMGroup`](#schema-scimgroup) | yes |  |

### `SCIMMeta`

SCIM resource metadata.

| Field | Type | Required | Description |
|---|---|---|---|
| `resourceType` | `string` | yes |  |
| `created` | `string` (`date-time`) \| `null` | no |  |
| `lastModified` | `string` (`date-time`) \| `null` | no |  |
| `location` | `string` \| `null` | no |  |
| `version` | `string` \| `null` | no |  |

### `SCIMName`

SCIM user name structure.

| Field | Type | Required | Description |
|---|---|---|---|
| `formatted` | `string` \| `null` | no |  |
| `familyName` | `string` \| `null` | no |  |
| `givenName` | `string` \| `null` | no |  |
| `middleName` | `string` \| `null` | no |  |
| `honorificPrefix` | `string` \| `null` | no |  |
| `honorificSuffix` | `string` \| `null` | no |  |

### `SCIMPatchOp`

SCIM Patch operation (RFC 7644 Section 3.5.2).

| Field | Type | Required | Description |
|---|---|---|---|
| `op` | `string` | yes |  |
| `path` | `string` \| `null` | no |  |
| `value` | _any_ | no |  |

### `SCIMPatchRequest`

SCIM Patch request (RFC 7644 Section 3.5.2).

| Field | Type | Required | Description |
|---|---|---|---|
| `schemas` | array of `string` | no | Default: `['urn:ietf:params:scim:api:messages:2.0:PatchOp']` |
| `Operations` | array of [`SCIMPatchOp`](#schema-scimpatchop) | yes |  |

### `SCIMPhoneNumber`

SCIM phone number structure.

| Field | Type | Required | Description |
|---|---|---|---|
| `value` | `string` | yes |  |
| `type` | `string` \| `null` | no |  |
| `primary` | `boolean` | no | Default: `False` |

### `SCIMUser`

SCIM User resource (RFC 7643 Section 4.1).

| Field | Type | Required | Description |
|---|---|---|---|
| `schemas` | array of `string` | no | Default: `['urn:ietf:params:scim:schemas:core:2.0:User']` |
| `id` | `string` \| `null` | no |  |
| `externalId` | `string` \| `null` | no |  |
| `meta` | [`SCIMMeta`](#schema-scimmeta) \| `null` | no |  |
| `userName` | `string` | yes |  |
| `name` | [`SCIMName`](#schema-scimname) \| `null` | no |  |
| `displayName` | `string` \| `null` | no |  |
| `nickName` | `string` \| `null` | no |  |
| `profileUrl` | `string` \| `null` | no |  |
| `title` | `string` \| `null` | no |  |
| `userType` | `string` \| `null` | no |  |
| `preferredLanguage` | `string` \| `null` | no |  |
| `locale` | `string` \| `null` | no |  |
| `timezone` | `string` \| `null` | no |  |
| `active` | `boolean` | no | Default: `True` |
| `password` | `string` \| `null` | no |  |
| `emails` | array of [`SCIMEmail`](#schema-scimemail) \| `null` | no |  |
| `phoneNumbers` | array of [`SCIMPhoneNumber`](#schema-scimphonenumber) \| `null` | no |  |
| `addresses` | array of [`SCIMAddress`](#schema-scimaddress) \| `null` | no |  |
| `groups` | array of [`SCIMUserGroup`](#schema-scimusergroup) \| `null` | no |  |
| `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User` | [`SCIMEnterpriseUser`](#schema-scimenterpriseuser) \| `null` | no |  |

### `SCIMUserCreate`

SCIM User creation request.

| Field | Type | Required | Description |
|---|---|---|---|
| `schemas` | array of `string` | no | Default: `['urn:ietf:params:scim:schemas:core:2.0:User']` |
| `externalId` | `string` \| `null` | no |  |
| `userName` | `string` | yes |  |
| `name` | [`SCIMName`](#schema-scimname) \| `null` | no |  |
| `displayName` | `string` \| `null` | no |  |
| `nickName` | `string` \| `null` | no |  |
| `profileUrl` | `string` \| `null` | no |  |
| `title` | `string` \| `null` | no |  |
| `userType` | `string` \| `null` | no |  |
| `preferredLanguage` | `string` \| `null` | no |  |
| `locale` | `string` \| `null` | no |  |
| `timezone` | `string` \| `null` | no |  |
| `active` | `boolean` | no | Default: `True` |
| `password` | `string` \| `null` | no |  |
| `emails` | array of [`SCIMEmail`](#schema-scimemail) \| `null` | no |  |
| `phoneNumbers` | array of [`SCIMPhoneNumber`](#schema-scimphonenumber) \| `null` | no |  |
| `addresses` | array of [`SCIMAddress`](#schema-scimaddress) \| `null` | no |  |
| `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User` | [`SCIMEnterpriseUser`](#schema-scimenterpriseuser) \| `null` | no |  |

### `SCIMUserGroup`

SCIM user's group membership reference.

| Field | Type | Required | Description |
|---|---|---|---|
| `value` | `string` | yes |  |
| `$ref` | `string` \| `null` | no |  |
| `display` | `string` \| `null` | no |  |
| `type` | `string` | no | Default: `direct` |

### `ValidationError`

| Field | Type | Required | Description |
|---|---|---|---|
| `loc` | array of `string` \| `integer` | yes |  |
| `msg` | `string` | yes |  |
| `type` | `string` | yes |  |
