openapi: 3.0.3 info: title: SCIM 2.0 API description: >- This client specifies the **SCIM 2.0 RESTful APIs** for user, group, bulk operations, service provider configuration, and resource type management. version: v1 servers: - url: 'https://api.asgardeo.io/t/{organization-name}/scim2' variables: organization-name: default: '' description: Organization name for the tenant security: - OAuth2ClientCredentials: [] tags: - name: Bulk Endpoint description: >- This endpoint is used to create/update/delete SCIM resources (users and/or groups) in bulk. - name: Resource Types Endpoint description: This API lists and returns metadata about resource types. paths: /Users: get: tags: - Users Endpoint summary: Filter Users description: >- This API returns users according to the filter, sort and pagination parameters. Pagination is not supported across user stores and LDAP multi-attribute group filtering. However, filtering is supported across multiple user stores. - Scope(Permission) required: ``internal_user_mgt_list`` - Flow type: Client Credentials OAuth Flow operationId: getUser parameters: - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string - name: filter in: query description: >- The expression used for filtering. Supported filters are ‘Ew’, ‘Eq’, ‘Co’, ‘Sw’, ‘Ne’ and ‘and’. schema: type: string - name: startIndex in: query description: The 1-based index of the first query result schema: type: integer format: int32 - name: count in: query description: Specifies the desired maximum number of query results per page. schema: type: integer format: int32 - name: domain in: query description: The name of the user store where filtering needs to be applied. schema: type: string responses: '200': description: Valid users are found / Valid users are not found content: application/scim+json: schema: $ref: '#/components/schemas/UserObjectListResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' x-codeSamples: - lang: Curl source: | curl -X 'GET' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Users' \ -H 'accept: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' post: tags: - Users Endpoint summary: Create User description: >- This API creates a user and returns the user details along with the user's unique ID. - Scope(Permission) required: ``internal_user_mgt_create`` - Flow type: Client Credentials OAuth Flow operationId: createUser parameters: - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string requestBody: content: application/scim+json: schema: oneOf: - $ref: '#/components/schemas/UserObject' - $ref: '#/components/schemas/UserObjectPassInvite' required: false responses: '201': description: User is created. content: application/scim+json: schema: $ref: '#/components/schemas/UserResponseObject' '400': description: Invalid Input content: application/scim+json: schema: $ref: '#/components/schemas/ErrorInvalidInput' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '500': description: Internal Server Error content: application/scim+json: schema: $ref: '#/components/schemas/ErrorInternalServerError' x-codeSamples: - lang: Curl source: | curl -X 'POST' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Users' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "schemas": [], "name": { "givenName": "Kim", "familyName": "Berry" }, "userName": "DEFAULT/kim@gmail.com", "password": "aBcd!23#", "emails": [ { "value": "kim@gmail.com", "primary": true } ], "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "manager": { "value": "Taylor" } }, "urn:scim:wso2:schema": { "verifyEmail": true } }' x-codegen-request-body-name: body /Users/.search: post: tags: - Users Endpoint summary: Search Users description: >- This API returns users according to the filter, sort and pagination parameters. - Scope(Permission) required: ``internal_user_mgt_list`` - Flow type: Client Credentials OAuth Flow operationId: getUsersByPost requestBody: content: application/scim+json: schema: $ref: '#/components/schemas/UserSearchRequestObject' required: false responses: '200': description: Valid users are found / Valid users are not found content: application/scim+json: schema: $ref: '#/components/schemas/UserObjectListResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' x-codeSamples: - lang: Curl source: > curl -X 'POST' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Users/.search' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:SearchRequest" ], "attributes": [ "name.familyName", "userName" ], "filter": "userName sw ki and name.familyName co err", "domain": "PRIMARY", "startIndex": 1, "count": 10 }' x-codegen-request-body-name: body '/Users/{id}': get: tags: - Users Endpoint summary: Get User by ID description: |- Return user details if a user found. - Scope(Permission) required: ``internal_user_mgt_view`` - Flow type: Client Credentials OAuth Flow operationId: getUser by id parameters: - name: id in: path description: Unique ID of the resource type. required: true schema: type: string - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string responses: '200': description: Valid user is found content: application/scim+json: schema: $ref: '#/components/schemas/UserResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid user is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUserNotAvailable' x-codeSamples: - lang: Curl source: > curl -X 'GET' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Users/{user-id}' \ -H 'accept: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' put: tags: - Users Endpoint summary: Update User - PUT description: >- This API updates user details and return the updated user details using a PUT operation. - Scope(Permission) required: ``internal_user_mgt_update`` - Flow type: Client Credentials OAuth Flow operationId: updateUser parameters: - name: id in: path description: Unique ID of the resource type. required: true schema: type: string - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string requestBody: content: application/scim+json: schema: $ref: '#/components/schemas/UserUpdateObject' required: false responses: '200': description: Valid user is found content: application/scim+json: schema: $ref: '#/components/schemas/UserResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid user is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUserNotAvailable' x-codeSamples: - lang: Curl source: > curl -X 'PUT' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Users/{user-id}' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "schemas": [], "name": { "givenName": "Kim", "familyName": "Berry" }, "userName": "DEFAULT/kim@gmail.com", "emails": [ { "value": "kim@gmail.com", "primary": true } ], "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "manager": { "value": "Taylor" } } }' x-codegen-request-body-name: body delete: tags: - Users Endpoint summary: Delete User by ID description: |- This API deletes a user using the user's unique ID. - Scope(Permission) required: ``internal_user_mgt_delete`` - Flow type: Client Credentials OAuth Flow operationId: deleteUser parameters: - name: id in: path description: Unique ID of the user that you want to delete. required: true schema: type: string responses: '204': description: User is deleted content: {} '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid user is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUserNotAvailable' x-codeSamples: - lang: Curl source: > curl -X 'DELETE' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Users/{user-id}' \ -H 'accept: */*' \ -H 'Authorization: Bearer {bearer_token}' patch: tags: - Users Endpoint summary: Update User - PATCH description: >- This API updates user details and returns the updated user details using a PATCH operation. - Scope(Permission) required: ``internal_user_mgt_update`` - Supported Operations:``add``, ``replace``, ``remove`` - Flow type: Client Credentials OAuth Flow operationId: patchUser parameters: - name: id in: path description: Unique id of the resource type. required: true schema: type: string - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string requestBody: content: application/scim+json: schema: $ref: '#/components/schemas/PatchOperationInput' required: false responses: '200': description: Valid user is found content: application/scim+json: schema: $ref: '#/components/schemas/UserResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid user is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUserNotAvailable' x-codeSamples: - lang: Curl source: > curl -X 'PATCH' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Users/{user-id}' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "add", "value": { "nickName": "shaggy" } } ] }' x-codegen-request-body-name: body /Groups: get: tags: - Groups Endpoint summary: Filter Groups description: >- This API returns groups according to the specified filter, sort, and pagination parameters. - Scope(Permission) required: ``internal_group_mgt_view`` - Flow type: Client Credentials OAuth Flow operationId: getGroup parameters: - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string - name: filter in: query description: Filter expression for filtering schema: type: string - name: startIndex in: query description: The 1-based index of the first query result schema: type: integer format: int32 - name: count in: query description: Specifies the desired maximum number of query results per page. schema: type: integer format: int32 - name: domain in: query description: The name of the user store where filtering needs to be applied. schema: type: string responses: '200': description: Valid groups are found / No Group found content: application/scim+json: schema: $ref: '#/components/schemas/GroupsListResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' x-codeSamples: - lang: Curl source: | curl -X 'GET' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Groups' \ -H 'accept: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' post: tags: - Groups Endpoint summary: Create Group description: >- This API creates a group and returns the details of the created group including its unique ID. - Scope(Permission) required: ``internal_group_mgt_create`` - Flow type: Client Credentials OAuth Flow operationId: createGroup parameters: - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string requestBody: content: application/scim+json: schema: $ref: '#/components/schemas/GroupRequestObject' required: false responses: '201': description: Valid group is created content: application/scim+json: schema: $ref: '#/components/schemas/GroupResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Group is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorGroupNotAvailable' '409': description: Group already exist content: application/scim+json: schema: $ref: '#/components/schemas/ErrorGroupAlreadyAvailable' x-codeSamples: - lang: Curl source: | curl -X 'GET' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Groups' \ -H 'accept: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' x-codegen-request-body-name: body /Groups/.search: post: tags: - Groups Endpoint summary: Search Groups description: >- This API returns groups according to the specified filter, sort, and pagination parameters. - Scope(Permission) required: ``internal_group_mgt_view`` - Flow type: Client Credentials OAuth Flow operationId: getGroupsByPost requestBody: content: application/scim+json: schema: $ref: '#/components/schemas/GroupSearchRequestObject' required: false responses: '200': description: Valid groups are found / Valid groups are not found content: application/scim+json: schema: $ref: '#/components/schemas/GroupSearchResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' x-codeSamples: - lang: Curl source: > curl -X 'POST' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Groups/.search' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:SearchRequest" ], "startIndex": 1, "filter": "displayName eq manager" }' x-codegen-request-body-name: body '/Groups/{id}': get: tags: - Groups Endpoint summary: Get Group by ID description: >- This API returns the group details of a particular group using its unique ID. - Scope(Permission) required: ``internal_group_mgt_view`` - Flow type: Client Credentials OAuth Flow operationId: getGroup by id parameters: - name: id in: path description: Unique ID of the resource type. required: true schema: type: string - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string responses: '200': description: Valid group is found content: application/scim+json: schema: $ref: '#/components/schemas/GroupResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid group is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorNoGroupAvailable' x-codeSamples: - lang: Curl source: > curl -X 'GET' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Groups/{group-id}' \ -H 'accept: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' put: tags: - Groups Endpoint summary: Update Group - PUT description: >- This API updates the group details and returns the updated group details using a PUT operation. - Scope(Permission) required: ``internal_group_mgt_update`` - Flow type: Client Credentials OAuth Flow operationId: updateGroup parameters: - name: id in: path description: Unique ID of the resource type. required: true schema: type: string - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string requestBody: content: application/scim+json: schema: $ref: '#/components/schemas/GroupPutRequestObject' required: false responses: '200': description: Group is updated content: application/scim+json: schema: $ref: '#/components/schemas/GroupPutResponseObject' '400': description: Invalid Input content: application/scim+json: schema: $ref: '#/components/schemas/ErrorInvalidInput' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid group is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorNoGroupAvailable' x-codeSamples: - lang: Curl source: > curl -X 'PUT' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Groups/{group-id}' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "displayName": "manager", "members": [ { "value": "409ca90b-2ba6-4474-9a45-2cf7376e6e43", "display": "kris" } ] }' x-codegen-request-body-name: body delete: tags: - Groups Endpoint summary: Delete Group description: |- This API deletes a particular group using its unique ID. - Scope(Permission) required: ``internal_group_mgt_delete`` - Flow type: Client Credentials OAuth Flow operationId: deleteGroup parameters: - name: id in: path description: Unique ID of the resource type. required: true schema: type: string responses: '204': description: Group is deleted content: {} '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid group is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorNoGroupAvailable' x-codeSamples: - lang: Curl source: > curl -X 'DELETE' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Groups/{group-id}' \ -H 'accept: */*' \ -H 'Authorization: Bearer {bearer_token}' patch: tags: - Groups Endpoint summary: Update Group - PATCH description: >- This API updates the group details and returns the updated group details using a PATCH operation. - Scope(Permission) required: ``internal_group_mgt_update`` - Flow type: Client Credentials OAuth Flow operationId: patchGroup parameters: - name: id in: path description: Unique id of the resource type. required: true schema: type: string - name: attributes in: query description: SCIM defined attributes parameter. schema: type: string - name: excludedAttributes in: query description: SCIM defined excludedAttribute parameter. schema: type: string requestBody: content: application/scim+json: schema: $ref: '#/components/schemas/PatchGroupOperationRequestObject' required: false responses: '200': description: Group is updated content: application/scim+json: schema: $ref: '#/components/schemas/PatchGroupOperationResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '404': description: Valid group is not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorNoGroupAvailable' x-codeSamples: - lang: Curl source: > curl -X 'PATCH' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Groups/{group-id}' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { "op": "add", "value": { "members": [ { "display": "kris", "value": "409ca90b-2ba6-4474-9a45-2cf7376e6e43" } ] } } ] }' x-codegen-request-body-name: body /Bulk: post: tags: - Bulk Endpoint summary: Create/Update/Replace/Delete SCIM Resources (Users/ Groups) in Bulk description: >- This API is used to create/update/replace/delete SCIM resources in bulk. You need to specify different operations in the request payload corresponding to the type of bulk update:

- **POST** operation: Adds new resources.
- **PUT** operation: Replaces an existing resource.
- **PATCH** operation: Updates attributes of an existing resource.
- **DELETE** operation: Removes an existing resource.
- Scopes required: ``internal_bulk_resource_create`` - Flow type: Client Credentials OAuth Flow operationId: createBulkUsers requestBody: content: application/scim+json: schema: oneOf: - $ref: '#/components/schemas/BulkUserCreateObject' - $ref: '#/components/schemas/BulkUserUpdateObject' - $ref: '#/components/schemas/BulkUserReplaceObject' - $ref: '#/components/schemas/BulkUserDeleteObject' - $ref: '#/components/schemas/BulkGroupCreateObject' - $ref: '#/components/schemas/BulkGroupUpdateObject' - $ref: '#/components/schemas/BulkGroupReplaceObject' - $ref: '#/components/schemas/BulkGroupDeleteObject' responses: '201': description: Valid user is created content: application/scim+json: schema: $ref: '#/components/schemas/BulkUserResponseObject' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '403': description: Forbidden content: application/scim+json: schema: $ref: '#/components/schemas/ErrorForbidden' '409': description: Users already exists content: {} x-codeSamples: - lang: Curl source: | curl -X 'POST' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/Bulk' \ -H 'accept: application/scim+json' \ -H 'Content-Type: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' \ -d '{ "failOnErrors": 1, "schemas": [ "urn:ietf:params:scim:api:messages:2.0:BulkRequest" ], "Operations": [ { "method": "POST", "path": "/Users", "bulkId": "ytrewq", "data": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "DEFAULT/kim@gmail.com", "password": "Pass@kim1" } } ] }' x-codegen-request-body-name: body /ServiceProviderConfig: get: tags: - Service Provider Config Endpoint summary: Get Service Provider Config description: |- This API returns the service provider's configuration details. No Scope(Permission) required. operationId: getServiceProviderConfig responses: '200': description: Schema is found content: application/json: schema: $ref: '#/components/schemas/SPConfigResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '404': description: Schema not found content: application/json: schema: $ref: '#/components/schemas/ErrorSchemaNotFound' x-codeSamples: - lang: Curl source: > curl -X 'GET' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/ServiceProviderConfig' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {bearer_token}' /ResourceTypes: get: tags: - Resource Types Endpoint summary: Get Resource Types description: |- This API lists and returns metadata about resource types. No Scope(Permission) required. operationId: getResourceType responses: '200': description: Schema is found content: application/scim+json: schema: $ref: '#/components/schemas/ResourceTypeResponse' '401': description: Unauthorized content: application/scim+json: schema: $ref: '#/components/schemas/ErrorUnauthorized' '404': description: Schema not found content: application/scim+json: schema: $ref: '#/components/schemas/ErrorSchemaNotFound' x-codeSamples: - lang: Curl source: > curl -X 'GET' \ 'https://api.asgardeo.io/t/{organization-name}/scim2/ResourceTypes' \ -H 'accept: application/scim+json' \ -H 'Authorization: Bearer {bearer_token}' components: schemas: UserObject: title: Set a password for the user required: - password type: object properties: schemas: type: array items: type: string example: [] name: type: object properties: givenName: type: string description: >- The `givenName` you specify will be entered for the First Name attribute in the user's profile. example: Kim familyName: type: string description: >- The `familyName` you specify will be entered for the Last Name attribute in the user's profile. example: Berry userName: type: string description: >- Unique username of the user. example: DEFAULT/kim@gmail.com password: type: string description: >- Use this parameter to set a password for the user account. example: aBcd!23# emails: type: array description: >- This email will be entered for the Email attribute in the user's profile. example: - value: kim@gmail.com primary: true items: type: object properties: {} 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': type: object title: Enterprise User Extension properties: manager: type: object properties: value: type: string example: Taylor 'urn:scim:wso2:schema': type: object properties: verifyEmail: type: boolean description: >- When the administrator sets the password for the new user account, this parameter specifies if the new user should confirm the new account through email. If this parameter is set to `true`, an email is sent to the user's email address requesting confirmation. example: true UserObjectPassInvite: title: Invite the user to set their own password type: object properties: schemas: type: array items: type: string example: [] name: type: object properties: givenName: type: string description: >- The `givenName` you specify will be entered for the First Name attribute in the user's profile. example: Kim familyName: type: string description: >- The `familyName` you specify will be entered for the Last Name attribute in the user's profile. example: Berry userName: type: string description: >- Unique username of the user. example: DEFAULT/kim@gmail.com emails: type: array description: >- This email will be entered for the Email attribute in the user's profile. example: - value: kim@gmail.com primary: true items: type: object properties: {} 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': title: Enterprise User Extension type: object properties: manager: type: object properties: value: type: string example: Taylor 'urn:scim:wso2:schema': type: object properties: askPassword: type: boolean description: >- If this parameter is set to `true`, users will be allowed configure their own password. An email is sent to the specified email address, which will have instructions for the user to set the password and confirm the new user account. example: true UserResponseObject: required: - meta type: object properties: meta: type: object properties: created: type: string example: '2018-08-17T10:34:29.000Z' location: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Users/008bba85-451d-414b-87de-c03b5a1f4217 lastModified: type: string example: '2018-08-17T10:34:29.000Z' resourceType: type: string example: User schemas: type: array items: type: string example: - 'urn:ietf:params:scim:schemas:core:2.0:User' - 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User' username: type: string example: DEFAULT/kim@gmail.com id: type: string example: 008bba85-451d-414b-87de-c03b5a1f4217 name: type: object properties: givenName: type: string example: Kim familyName: type: string example: Berry emails: type: array example: - kim@gmail.com items: oneOf: - type: string - type: object properties: {} 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': title: Enterprise User Extension type: object properties: manager: type: object properties: value: type: string example: Taylor roles: type: array items: type: object properties: type: type: string value: type: string example: - type: default value: Internal/everyone UserObjectListResponseObject: type: object properties: totalResults: type: integer example: 1 startIndex: type: integer example: 1 itemsPerPage: type: integer example: 1 schemas: type: array items: type: string example: - 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: type: array items: $ref: '#/components/schemas/UserResponseObject' UserSearchRequestObject: type: object required: - schemas properties: schemas: type: array items: type: string example: - 'urn:ietf:params:scim:api:messages:2.0:SearchRequest' attributes: type: array items: type: string description: SCIM defined attributes parameter. example: - name.familyName - userName filter: type: string description: >- The expression used for filtering. Supported filters are ew, eq, co, sw, and and. example: userName sw ki and name.familyName co err domain: type: string description: The name of the user store where filtering needs to be applied. example: DEFAULT startIndex: type: integer format: int32 description: The 1-based index of the first query result example: 1 count: type: integer format: int32 description: >- Specifies the desired maximum number of query results per page.
(For organizations created on or after November 19, 2024, a threshold value of 100 will be applied to the count parameter. To fetch more users, use pagination.) example: 10 UserUpdateObject: type: object properties: schemas: type: array items: type: string example: [] name: type: object properties: givenName: type: string example: Kim familyName: type: string example: Berry userName: type: string example: DEFAULT/kim@gmail.com emails: type: array example: - value: kim@gmail.com primary: true items: type: object properties: {} 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': title: Enterprise User Extension type: object properties: manager: type: object properties: value: type: string example: Taylor PatchOperationInput: type: object properties: schemas: type: array items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:PatchOp' Operations: type: array items: $ref: '#/components/schemas/OperationMeItem' OperationMeItem: type: object properties: op: type: string enum: - add - remove - replace value: type: object properties: nickName: type: string example: shaggy ErrorUnauthorized: required: - status type: object properties: schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: >- Authorization failure. Authorization information was invalid or missing from your request. status: type: string example: '401' ErrorForbidden: required: - status type: object properties: schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: >- Operation is not permitted. You do not have permission to make this request. status: type: string example: '403' ErrorInvalidInput: required: - detail - status type: object properties: status: type: string example: '400' schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' scimType: type: string example: invalidSyntax detail: type: string example: 'Request is unparsable, syntactically incorrect, or violates schema.' ErrorInternalServerError: required: - detail - status type: object properties: status: type: string example: '500' schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: Internal Server Error. ErrorUserNotAvailable: required: - detail - status type: object properties: status: type: string example: '404' schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: >- No user with the id : 008bba85-451d-414b-87de-c03b5a1f4217 in the user store. GroupsListResponseObject: type: object properties: totalResults: type: integer example: 3 startIndex: type: integer example: 1 itemsPerPage: type: integer example: 3 schemas: type: array items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: type: array items: $ref: '#/components/schemas/groupOb' groupOb: type: object properties: displayName: type: string example: DEFAULT/manager meta: type: object properties: created: type: string example: '2019-08-26T14:27:36.000Z' location: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Groups/7bac6a86-1f21-4937-9fb1-5be4a93ef469 lastModified: type: string example: '2019-08-26T14:27:36.000Z' members: type: array items: type: object properties: $ref: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Users/3a12bae9-4386-44be-befd-caf349297f45 display: type: string example: kim value: type: string example: 008bba85-451d-414b-87de-c03b5a1f4217 roles: type: array items: type: object properties: $ref: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Roles/4645709c-ea8c-4495-8590-e1fa0efe3de0 display: type: string example: loginRole value: type: string example: 4645709c-ea8c-4495-8590-e1fa0efe3de0 id: type: string example: 7bac6a86-1f21-4937-9fb1-5be4a93ef469 GroupRequestObject: required: - displayName - schemas type: object properties: schemas: type: array items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:Group' displayName: type: string example: DEFAULT/manager members: type: array items: type: object properties: {} example: value: 008bba85-451d-414b-87de-c03b5a1f4217 display: kim GroupResponseObject: type: object properties: displayName: type: string example: DEFAULT/manager meta: type: object properties: created: type: string example: '2019-08-26T14:27:36.000Z' location: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Groups/7bac6a86-1f21-4937-9fb1-5be4a93ef469 lastModified: type: string example: '2019-08-26T14:27:36.000Z' resourceType: type: string example: Group schemas: type: array items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:Group' id: type: string example: 7bac6a86-1f21-4937-9fb1-5be4a93ef469 members: description: >- The members of the group. Note that if the group is from a remote user store, a limited number of members will be returned. You can use filters to query remaining users. For example - `emails+eq+user@gmail.com+and+groups+eq+remote_group_01` type: array items: type: object properties: $ref: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Users/3a12bae9-4386-44be-befd-caf349297f45 display: type: string example: kim value: type: string example: 008bba85-451d-414b-87de-c03b5a1f4217 roles: type: array items: type: object properties: $ref: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Roles/4645709c-ea8c-4495-8590-e1fa0efe3de0 display: type: string example: loginRole value: type: string example: 4645709c-ea8c-4495-8590-e1fa0efe3de0 GroupSearchRequestObject: type: object properties: schemas: type: array items: type: string example: - 'urn:ietf:params:scim:api:messages:2.0:SearchRequest' startIndex: type: integer example: 1 filter: type: string example: displayName eq manager required: - schemas GroupSearchResponseObject: type: object properties: totalResults: type: integer example: 1 startIndex: type: integer example: 1 itemsPerPage: type: integer example: 3 schemas: type: array items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:ListResponse' Resources: type: array items: $ref: '#/components/schemas/groupOb' GroupPutResponseObject: type: object properties: displayName: type: string example: DEFAULT/manager meta: type: object properties: created: type: string example: '2019-08-26T14:27:36.000Z' location: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Groups/7bac6a86-1f21-4937-9fb1-5be4a93ef469 lastModified: type: string example: '2019-08-26T14:27:36.000Z' resourceType: type: string example: Group schemas: type: array items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:Group' id: type: string example: 7bac6a86-1f21-4937-9fb1-5be4a93ef469 members: type: array items: type: object properties: {} example: display: kris value: 409ca90b-2ba6-4474-9a45-2cf7376e6e43 GroupPutRequestObject: type: object properties: displayName: type: string example: manager members: type: array items: type: object properties: {} example: value: 409ca90b-2ba6-4474-9a45-2cf7376e6e43 display: kris PatchGroupOperationRequestObject: type: object properties: schemas: type: array items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:PatchOp' Operations: type: array items: $ref: '#/components/schemas/GroupItemObj' required: - schemas GroupItemObj: type: object properties: op: type: string enum: - add - remove - replace value: type: object properties: members: type: array items: type: object properties: {} example: display: kris value: 409ca90b-2ba6-4474-9a45-2cf7376e6e43 PatchGroupOperationResponseObject: type: object properties: displayName: type: string example: DEFAULT/manager meta: type: object properties: created: type: string example: '2019-08-26T14:27:36.000Z' location: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Groups/7bac6a86-1f21-4937-9fb1-5be4a93ef469 lastModified: type: string example: '2019-08-26T14:27:36.000Z' resourceType: type: string example: Group schemas: type: array items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:Group' id: type: string example: 7bac6a86-1f21-4937-9fb1-5be4a93ef469 members: type: array items: type: object properties: {} example: - display: kris value: 409ca90b-2ba6-4474-9a45-2cf7376e6e43 - display: kim value: 007bfc66-e4f0-4d53-9dfd-0c4a77b33257 ErrorGroupAlreadyAvailable: required: - detail - status type: object properties: status: type: string example: '409' schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: 'Group with name: DEFAULT/manager already exists in the system.' ErrorGroupNotAvailable: required: - detail - status type: object properties: status: type: string example: '404' schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: >- No Group with the id : 89a2a363-c90f-47e9-afae-949d026dad16 in the user store. ErrorNoGroupAvailable: required: - detail - status type: object properties: status: type: string example: '404' schemas: type: array items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: Group not found in the user store. BulkUserCreateObject: type: object title: create user properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To add multiple new users, add an array of POST operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkUserOb' required: - schemas - Operations BulkUserUpdateObject: type: object title: update user properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To update multiple users, add an array of PATCH operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkUserUpdateOb' required: - schemas - Operations BulkUserReplaceObject: type: object title: replace user properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To replace multiple users, add an array of PUT operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkUserReplaceOb' required: - schemas - Operations BulkUserDeleteObject: type: object title: delete user properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To delete multiple users, add an array of DELETE operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkUserDeleteOb' required: - schemas - Operations BulkGroupCreateObject: type: object title: create group properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To add multiple new user groups, add an array of POST operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkGroupCreateOb' required: - schemas - Operations BulkGroupUpdateObject: type: object title: update group properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To update multiple user groups, add an array of PATCH operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkGroupUpdateOb' required: - schemas - Operations BulkGroupReplaceObject: type: object title: replace group properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To replace multiple user groups, add an array of PUT operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkGroupReplaceOb' required: - schemas - Operations BulkGroupDeleteObject: type: object title: delete group properties: failOnErrors: type: integer example: 1 description: >- The number of errors that will be accepted by the vendor before returning the response. schemas: type: array description: This is the schema that is required for sending bulk requests items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkRequest' Operations: type: array description: >- Array of operations. To delete multiple user groups, add an array of PUT operations. You can include any number of operations in one bulk request. items: $ref: '#/components/schemas/BulkGroupDeleteOb' required: - schemas - Operations BulkUserOb: type: object properties: method: type: string description: The method that should be used in the operation example: POST path: type: string description: Add this path to specify that a new user is being added. example: /Users bulkId: type: string description: >- A unique identifier for the bulk operation. The bulkid is required for POST operations. example: ytrewq data: type: object description: Specify the details of the new user that should be added. properties: schemas: type: array description: >- Specify the list of SCIM2 user schemas to which the new user should be linked. example: - 'urn:ietf:params:scim:schemas:core:2.0:User' - 'urn:ietf:params:scim:schemas:enterprise:2.0:User' - 'urn:scim:wso2:schema' items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:User' userName: type: string description: The email address that should be set as the username. example: DEFAULT/kim@gmail.com password: type: string description: The password that is set for the user. example: Pass@kim1 required: - schemas - username - password required: - method - path - bulkId - data BulkUserUpdateOb: type: object properties: method: type: string description: The method that should be used in the operation example: PATCH path: type: string description: >- Add this path to specify the new user that is being updated. (Optional if op is add or replace) example: '/Users/{user_id}' bulkId: type: integer description: >- A unique identifier for the bulk operation. The bulkid is required for POST operations. example: An integer value data: type: object description: Specify the details of the new user that should be updated. properties: op: type: string description: The operation that should be applied to the existing user data. example: - add - replace - remove path: type: string description: >- The path to the resource (user attribute) that should be updated. (Optional if op is add or replace) example: >- If the name of the user is to be updated, the path should be “name”. value: type: string description: >- The value of the parameter specified by the path. (Optional if op is add or replace) example: 'If the path is “name”, the value should be the actual name.' required: - op - path - value required: - method - path - data BulkUserReplaceOb: type: object properties: method: type: string description: The method that should be used in the operation example: PUT path: type: string description: >- Add this path to specify the existing user that should be replaced by the new user information that is added. example: '/Users/{user_id}' bulkId: type: integer description: >- A unique identifier for the bulk operation. The bulkid is required for POST operations. example: An integer value data: type: object description: >- Specify the new user details that should be used to replace the existing user specified in the path. properties: schemas: type: array description: >- Specify the list of SCIM2 user schemas to which the new user should be linked. example: - 'urn:ietf:params:scim:schemas:core:2.0:User' - 'urn:ietf:params:scim:schemas:enterprise:2.0:User' - 'urn:scim:wso2:schema' items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:User' userName: type: string description: The name of the attribute that will be replaced. example: smith name: type: object description: The name of the attribute that will be replaced. properties: givenName: type: string example: Smith familyName: type: string example: Berry required: - schemas - userName - name required: - method - path - data BulkUserDeleteOb: type: object properties: method: type: string description: The method that should be used in the operation example: DELETE path: type: string description: Add this path to specify the existing user that should be deleted. example: '/Users/{user_id}' required: - method - path BulkGroupCreateOb: type: object properties: method: type: string description: The method that should be used in the operation example: POST path: type: string description: Add this path to specify that a new user group that should be added. example: /Groups bulkId: type: string description: >- A unique identifier for the bulk operation. The bulkid is required for POST operations. example: An integer value data: type: object description: Specify the details of the new user group that should be added. properties: displayName: type: string description: The display name of the user group. members: type: array description: An array of member users. items: type: object properties: display: type: string description: >- The display name of a user assigned to the group.(Required if members is used) example: The username value: type: string description: The ID of the user.(Required if members is used) example: The user ID. required: - displayName required: - method - path - data BulkGroupUpdateOb: type: object properties: method: type: string description: The method that should be used in the operation example: PATCH path: type: string description: Add this path to specify the user group that should be updated. example: '/Groups/{group_id}' bulkId: type: integer description: >- A unique identifier for the bulk operation. The bulkid is required for POST operations. example: An integer value data: type: object description: >- Specify the details that should be updated for the user group specified in the path. properties: op: type: string description: The operation that should be applied to the existing user group. example: - add - replace - remove path: type: string description: >- Specify “members” as the path.(Optional if op is add or replace) example: members value: type: array description: >- An array of users that belong to the group.(Optional if op is remove) items: type: object properties: display: type: string description: >- The display name of the user, who is a member.(Required if path is set to members) example: The username value: type: string description: >- The user ID of the member user.(Required if path is set to members) example: The user ID required: - op - path - value required: - method - path - data BulkGroupReplaceOb: type: object properties: method: type: string description: The method that should be used in the operation example: PUT path: type: string description: >- Add this path to specify the existing user group that should be replaced by the new information that is added. example: '/Groups/{group_id}' bulkId: type: integer description: >- A unique identifier for the bulk operation. The bulkid is required for POST operations. example: An integer value data: type: object description: >- Specify the new group details that should be used to replace the existing user group specified in the path. properties: displayName: type: string description: The display name of the user group. members: type: array description: Array of member users. items: type: object properties: display: type: string description: The display name of a user assigned to the group. example: The username value: type: string description: The ID of the user. example: The user ID. required: - display - value required: - displayName - members required: - method - path - data BulkGroupDeleteOb: type: object properties: method: type: string description: The method that should be used in the operation example: DELETE path: type: string description: >- Add this path to specify the existing user group that should be deleted. example: '/Groups/{group_id}' required: - method - path BulkUserResponseObject: type: object properties: schemas: type: array items: type: string example: 'urn:ietf:params:scim:api:messages:2.0:BulkResponse' Operations: $ref: '#/components/schemas/OperationObBulk' OperationObBulk: type: array items: type: object properties: bulkId: type: string example: qwerty method: type: string example: POST location: type: string example: >- https://api.asgardeo.io/t/{org-name}/scim2/Users/81cbba1b-c259-485d-8ba4-79afb03e5bd1 status: type: object properties: code: type: integer example: '201' SPConfigResponse: type: object example: patch: supported: true filter: maxResults: 200 supported: true documentationUri: 'http://example.com/help/scim.html' authenticationSchemes: - name: OAuth Bearer Token description: Authentication scheme using the OAuth Bearer Token Standard specUri: 'http://www.rfc-editor.org/info/rfc6750' type: oauthbearertoken primary: true - name: HTTP Basic description: Authentication scheme using the HTTP Basic Standard specUri: 'http://www.rfc-editor.org/info/rfc2617' type: httpbasic primary: false schemas: - 'urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig' etag: supported: false sort: supported: false bulk: maxPayloadSize: 1048576 maxOperations: 1000 supported: true changePassword: supported: false ErrorSchemaNotFound: required: - detail - status type: object properties: status: type: string example: '404' schemas: type: string example: 'urn:ietf:params:scim:api:messages:2.0:Error' detail: type: string example: Schema not found. ResourceTypeResponse: type: object properties: schemas: type: array items: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:ResourceType' resourceType: type: array items: $ref: '#/components/schemas/UserObResourceType' UserObResourceType: type: object properties: schema: type: string example: 'urn:ietf:params:scim:schemas:core:2.0:User' endpoint: type: string example: /Users meta: type: object properties: location: type: string example: 'https://api.asgardeo.io/t/{org-name}/scim2/ResourceType/User' resourceType: type: string example: ResourceType name: type: string example: User description: type: string example: User Account schemaExtensions: type: object properties: schema: type: string example: 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User' required: type: boolean example: false id: type: string example: User securitySchemes: OAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '' scopes: {}