# ReachFive SCIM API > #### BETA RELEASE > A beta release is the first offering of the feature and may not be fully available to all customers. Contact your ReachFive representative for more details. The SCIM protocol is an application-level REST protocol for provisioning and managing identity data on the web. It supports creating, discovering, retrieving, and modifying core identity resources. **Note**: For more on SCIM, please see [here](https://www.rfc-editor.org/rfc/rfc7644). Version: latest License: Apache 2.0 ## Security ### BearerAuth Type: http Scheme: bearer Bearer Format: JWT ## Download OpenAPI description [ReachFive SCIM API](https://innovario.apishowdown.com/_spec/catalog/api-showdown/api-hub/Admin/openapi.yaml) ## Service Provider Configuration Describes the SCIM specification features available on service provider. ### Retrieve service provider config - [GET /scim/v2/ServiceProviderConfig](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/serviceproviderconfig/getserviceprovicerconfig.md): This operation returns a JSON structure that describes the SCIM specification features available on a service provider. The response is a JSON object using a "schemas" attribute of . > : The attributes returned in the JSON object are defined in Section 5 of [RFC7643]. ## Resource Types Discover the types of resources available on SCIM service provider (e.g., Users and Groups). ### Retrieve resource types - [GET /scim/v2/ResourceTypes](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/resourcetypes/getresourcetype.md): This operation is used to discover the types of resources available on a SCIM service provider (e.g., Users and Groups). Each resource type defines the endpoints, the core schema URI that defines the resource, and any supported schema extensions. > : The attributes defining a resource type can be found in Section 6 of [RFC7643] ### Retrieve resource type by name - [GET /scim/v2/ResourceTypes/{name}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/resourcetypes/getresourcetypename.md): This operation is used to retireve an individual resource by his name (e.g., User and Group). ## Schemas Retrieve information about resource schemas supported by a SCIM service provider. ### Retrieve schemas - [GET /scim/v2/Schemas](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/schemas/getschemas.md): This operation is used to retrieve information about resource schemas supported by a SCIM service provider. An HTTP GET to the endpoint "/Schemas" will return all supported schemas in ListResponse format. > : The contents of each schema returned are described in Section 7 of [RFC7643]. ### Retrieve specific schema - [GET /scim/v2/Schemas/{id}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/schemas/getschema.md): This operation is used to retrieve individual schema definitions by his schema URI. For example: > : The contents of schema returned are described in Section 7 of [RFC7643]. ## Users Retrieve, add, modify Users. ### Query users - [GET /scim/v2/Users](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/users/queryuser.md): The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. > For more on filtering with SCIM routes, please see RFC 7644 Filtering. ### Create a new user - [POST /scim/v2/Users](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/users/createuser.md): Creates a new user and brings that user object to the service provider. ### Retrieve a known user - [GET /scim/v2/Users/{userId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/users/getuser.md): Retrieve a known user by their ID. > : This checks the user is present in the SCIM application. ### Modifies a user with a set of client-specified changes (partial update). - [PATCH /scim/v2/Users/{userId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/users/modifyuserattributes.md): Update one or more attributes of a SCIM resource using a sequence of operations to , , or values. The general form of the SCIM request is based on the JSON Patch approach. Find more at [RFC6902]. > : One difference between SCIM and JSON Patch is that SCIM servers do not support array indexing and do not support [RFC6902] operation types relating to array element manipulation, such as . The body of each request must contain the "schemas" attribute with the URI value of . The body of an HTTP request must contain the attribute whose value is an array of one or more operations. Each operation object must have exactly one member whose value indicates the operation to perform and may be one of the following: - - - . > : The semantics of each operation are defined in Section 3.5.2 of [RFC7644]. The attribute value is a containing an attribute path describing the target of the operation. The attribute is for and and is for operations. Each operation against an attribute must be compatible with the attribute's mutability and schema as defined in Sections 2.2 and 2.3 of [RFC7643]. For example, a client modify an attribute that has mutability or . However, a client may a value to an attribute if the attribute had no previous value. An operation that is not compatible with an attribute's mutability or schema will return the appropriate HTTP response status code and a JSON detail error response as defined in Section 3.12. Each operation represents a single action to be applied to the same SCIM resource specified by the request URI. Operations are applied sequentially in the order they appear in the array. Each operation in the sequence is applied to the target resource; the resulting resource becomes the target of the next operation. Evaluation continues until all operations are successfully applied or until an error condition is encountered. > : For multi-valued attributes, a operation that sets a value's sub-attribute to will cause the server to automatically set "primary" to "false" for any other values in the array. ### Modifies a user by replacing existing attributes with a specified set of replacement attributes (replace). - [PUT /scim/v2/Users/{userId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/users/replaceuserattributes.md): Used to replace a resource's attributes. For example, clients that have previously retrieved the entire resource in advance and revised it may replace the resource using an HTTP . Because SCIM resource identifiers are assigned by the service provider, HTTP be used to create new resources. > : As the operation's intent is to replace all attributes, SCIM clients may send all attributes, regardless of each attribute's mutability. ### Deletes a user. - [DELETE /scim/v2/Users/{userId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/users/deleteuser.md): This operations removes the user from the ReachFive side. ## Groups Retrieve, add, modify Groups. ### Query groups - [GET /scim/v2/Groups](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/groups/querygroup.md): The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. > For more on filtering with SCIM routes, please see RFC 7644 Filtering. ### Create a new group - [POST /scim/v2/Groups](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/groups/creategroup.md): Creates a new group and brings that group object to the service provider. ### Retrieve a known group - [GET /scim/v2/Groups/{groupId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/groups/getgroup.md): Retrieve a known group by their ID. > : This checks the group is present in the SCIM application. ### Modifies a group with a set of client-specified changes (partial update). - [PATCH /scim/v2/Groups/{groupId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/groups/modifygroupattributes.md): Update one or more attributes of a SCIM resource using a sequence of operations to , , or values. The general form of the SCIM request is based on the JSON Patch approach. Find more at [RFC6902]. > : One difference between SCIM and JSON Patch is that SCIM servers do not support array indexing and do not support [RFC6902] operation types relating to array element manipulation, such as . The body of each request must contain the "schemas" attribute with the URI value of . The body of an HTTP request must contain the attribute whose value is an array of one or more operations. Each operation object must have exactly one member whose value indicates the operation to perform and may be one of the following: - - - . > : The semantics of each operation are defined in Section 3.5.2 of [RFC7644]. The attribute value is a containing an attribute path describing the target of the operation. The attribute is for and and is for operations. Each operation against an attribute must be compatible with the attribute's mutability and schema as defined in Sections 2.2 and 2.3 of [RFC7643]. For example, a client modify an attribute that has mutability or . However, a client may a value to an attribute if the attribute had no previous value. An operation that is not compatible with an attribute's mutability or schema will return the appropriate HTTP response status code and a JSON detail error response as defined in Section 3.12. Each operation represents a single action to be applied to the same SCIM resource specified by the request URI. Operations are applied sequentially in the order they appear in the array. Each operation in the sequence is applied to the target resource; the resulting resource becomes the target of the next operation. Evaluation continues until all operations are successfully applied or until an error condition is encountered. > : For multi-valued attributes, a operation that sets a value's sub-attribute to will cause the server to automatically set "primary" to "false" for any other values in the array. ### Modifies a user by replacing existing attributes with a specified set of replacement attributes (replace). - [PUT /scim/v2/Groups/{groupId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/groups/replacegroupattributes.md): Used to replace a resource's attributes. For example, clients that have previously retrieved the entire resource in advance and revised it may replace the resource using an HTTP PUT. Because SCIM resource identifiers are assigned by the service provider, HTTP be used to create new resources. > : As the operation's intent is to replace all attributes, SCIM clients may send all attributes, regardless of each attribute's mutability. ### Delete a group - [DELETE /scim/v2/Groups/{groupId}](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/groups/deletegroup.md): This operations removes the group from the ReachFive side. ## Bulk operations Bulk updates to one or more resources. ### Perform bulk updates. - [POST /scim/v2/Bulk](https://innovario.apishowdown.com/catalog/api-showdown/api-hub/admin/openapi/bulkops/bulkrequest.md): Enables clients to send a potentially large collection of resource operations in a single request. The body of a bulk operation contains a set of HTTP resource operations using one of the HTTP methods supported by the API, i.e., , , , or . Bulk requests are identified using the following schema URI: . Bulk responses are identified using the following URI: . Bulk requests and bulk responses share many attributes. > : If a bulk job is processed successfully, HTTP response code be returned; otherwise, an appropriate HTTP error code must be returned. The service provider must continue performing as many changes as possible and disregard partial failures. The client may override this behavior by specifying a value for the attribute. The attribute defines the number of errors that the service provider should accept before failing the remaining operations returning the response. To be able to reference a newly created resource, the attribute may be specified when creating new resources. The is defined by the client as a surrogate identifier in a operation (see Section 3.7.2). The can then be used by the client to map the service provider id with the of the created resource.