ReachFive SCIM API (latest)

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.

Download OpenAPI description
Languages
Servers
Mock server

https://innovario.apishowdown.com/_mock/catalog/api-showdown/api-hub/admin/openapi/

Authentication

All SCIM endpoints require a token authentication.

You'll need to start the SCIM configuration from the ReachFive Console to obtain an API Key to use as bearer token.

See SCIM on the console

Service Provider Configuration

Describes the SCIM specification features available on service provider.

Operations

Resource Types

Discover the types of resources available on SCIM service provider (e.g., Users and Groups).

Operations

Schemas

Retrieve information about resource schemas supported by a SCIM service provider.

Operations

Users

Retrieve, add, modify Users.

Operations

Groups

Retrieve, add, modify Groups.

Operations

Query groups

Request

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.

Query
filterstring

Clients may request a subset of resources by specifying the "filter" query parameter containing a filter expression.When specified, only those resources matching the filter expression will be returned. The expression language that is used with the filter parameter supports references to attributes and literals.

Attribute names and attribute operators used in filters are case insensitive.

For more on filtering with SCIM routes, please see RFC 7644 Filtering.

Example: filter=userName eq "john"
attributesstring

A multi-valued list of strings indicating the names of resource attributes to return in the response, overriding the set of attributes that would be returned by default. Attribute names must be in standard attribute notation (Section 3.10) form.

See Section 3.9 for additional retrieval query parameters.

Example: attributes=userName
excludedAttributesstring

A multi-valued list of strings indicating the names of resource attributes to be removed from the default set of attributes to return. This parameter will have no effect on attributes whose schema "returned" setting is "always" (see Sections 2.2 and 7 of [RFC7643]). Attribute names must be in standard attribute notation (Section 3.10) form.

See Section 3.9 for additional retrieval query parameters.

Example: excludedAttributes=givenName
sortBystring

The "sortBy" parameter specifies the attribute whose value will be used to order the returned responses. If the "sortBy" ttribute corresponds to a singular attribute, resources are sorted according to that attribute's value; if it's a multi-valued attribute, resources are sorted by the value of the primary attribute (see Section 2.4 of [RFC7643]), if any, or else the first value in the list, if any. If the attribute is complex, the attribute name must be a path to a sub-attribute in standard attribute notation (Section 3.10), e.g., sortBy=name.givenName.

For all attribute types, if there is no data for the specified "sortBy" value, they are sorted via the "sortOrder" parameter, i.e., they are ordered last if ascending and first if descending.

Example: sortBy=name.givenName
sortOrderstring

The order in which the "sortBy" parameter is applied. Allowed values are "ascending" and "descending". If a value for "sortBy" is provided and no "sortOrder" is specified, "sortOrder" will default to ascending. String type attributes are case insensitive by default, unless the attribute type is defined as a case-exact string. "sortOrder" must sort according to the attribute type; i.e., for case-insensitive attributes, sort the result using case-insensitive Unicode alphabetic sort order with no specific locale implied, and for case-exact attribute types, sort the result using case-sensitive Unicode alphabetic sort order.

Enum"ascending""descending"
Example: sortOrder=ascending
startIndexinteger

The 1-based index of the first query result. Values of less than 1 are interpreted as 1.

See Section 3.4.2.3 for details about Pagination.

Example: startIndex=1
countinteger

Specifies the desired maximum number of results per page. Negative values are as interpreted as 0.

See Section 3.4.2.3 for details about Pagination.

Example: count=10
curl --request GET \
  --url https://YOUR_DOMAIN/scim/v2/Groups \
  --header 'Content-type: application/scim+json' \
  --header 'Authorization: Bearer eyJ0eX...ll4Q2NT'

Responses

Successful query

Bodyapplication/json
schemasArray of stringsrequired
Default ["urn:ietf:params:scim:api:messages:2.0:ListResponse"]
Example: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"]
totalResultsinteger

The total number of results returned by the list.

Example: 2
itemsPerPageinteger

The number of resources returned in a list response page.

Example: 10
startIndexinteger

The 1-based index of the first result in the current set of list results.

resourcesArray of objects
Example: [{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"id":"c3a26dd3-27a0-4dec-a2ac-ce211e105f97","displayName":"groupA","members":[{"value":"92b725cd-9465-4e7d-8c16-01f8e146b87a","ref":"https://example.com/v2/Users/92b725cd-9465-4e7d-8c16-01f8e146b87a","type":"User"}],"meta":{"resourceType":"Group","created":"2011-08-01T18:29:49.793Z","lastModified":"2011-08-01T20:31:02.315Z","location":"https://example.com/v2/Groups/ec3a26dd3-27a0-4dec-a2ac-ce211e105f97"}},{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"id":"6c5bb468-14b2-4183-baf2-06d523e03bd3","displayName":"groupB","members":[{"value":"c3a26dd3-27a0-4dec-a2ac-ce211e105f97","ref":"https://example.com/v2/Groups/c3a26dd3-27a0-4dec-a2ac-ce211e105f97","type":"Group"}],"meta":{"resourceType":"Group","created":"2011-08-01T18:29:50.873Z","lastModified":"2011-08-01T18:29:50.873Z","location":"https://example.com/v2/Groups/6c5bb468-14b2-4183-baf2-06d523e03bd3"}}]
Response
application/json
{ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], "totalResults": 2, "itemsPerPage": 10, "description": 1, "resources": [ {}, {} ] }

Create a new group

Request

Creates a new group and brings that group object to the service provider.

Bodyapplication/json
schemasArray of stringsrequired
Example: ["urn:ietf:params:scim:schemas:core:2.0:Group"]
idstring(uuid)

A unique identifier for a SCIM resource as defined by the service provider.

externalIdstring

A String that is an identifier for the resource as defined by the provisioning client.

displayNamestringrequired

A human-readable name for the Group.

Example: "Tour Guides"
membersArray of objects

A list of members of the Group.

Example: [{"value":"92b725cd-9465-4e7d-8c16-01f8e146b87a","type":"User"}]
curl --request POST \
  --url https://YOUR_DOMAIN/scim/v2/Groups \
  --header 'Content-type: application/scim+json' \
  --header 'Authorization: Bearer eyJ0eX...ll4Q2NT'

Responses

Successfully created the new group

Bodyapplication/json
schemasArray of stringsrequired
Example: ["urn:ietf:params:scim:schemas:core:2.0:Group"]
idstring(uuid)

A unique identifier for a SCIM resource as defined by the service provider.

Example: "e9e30dba-f08f-4109-8486-d5c6a331660a"
externalIdstring

A String that is an identifier for the resource as defined by the provisioning client.

displayNamestringrequired

A human-readable name for the Group.

Example: "Tour Guides"
membersArray of objects

A list of members of the Group.

Example: [{"value":"92b725cd-9465-4e7d-8c16-01f8e146b87a","ref":"https://example.com/v2/Users/92b725cd-9465-4e7d-8c16-01f8e146b87a","type":"User"}]
resourceTypestring

The name of the resource type of the resource.

createdstring(date-time)

The "DateTime" that the resource was added to the service provider.

lastModifiedstring(date-time)

The most recent DateTime that the details of this resource were updated at the service provider.

locationstring

The URI of the resource being returned.

versionstring

The version of the resource being returned.

Response
application/json
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "e9e30dba-f08f-4109-8486-d5c6a331660a", "displayName": "Tour Guides", "members": [ {} ], "meta": { "resourceType": "Group", "created": "2011-08-01T18:29:49.793Z", "lastModified": "2011-08-01T20:31:02.315Z", "location": "https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a" } }

Retrieve a known group

Request

Retrieve a known group by their ID.

Note: This checks the group is present in the SCIM application.

Path
groupIdstring(uuid)required

The group ID.

Example: 2819c223-7f76-453a-919d-413861904646
curl --request GET \
  --url https://YOUR_DOMAIN/scim/v2/Users/{groupId} \
  --header 'Content-type: application/scim+json' \
  --header 'Authorization: Bearer eyJ0eX...ll4Q2NT'

Responses

Successfully returned the resource

Bodyapplication/json
schemasArray of stringsrequired
Example: ["urn:ietf:params:scim:schemas:core:2.0:Group"]
idstring(uuid)

A unique identifier for a SCIM resource as defined by the service provider.

Example: "2819c223-7f76-453a-919d-413861904646"
externalIdstring

A String that is an identifier for the resource as defined by the provisioning client.

displayNamestringrequired

A human-readable name for the Group.

Example: "Tour Guides"
membersArray of objects

A list of members of the Group.

Example: [{"value":"92b725cd-9465-4e7d-8c16-01f8e146b87a","ref":"https://example.com/v2/Users/92b725cd-9465-4e7d-8c16-01f8e146b87a","type":"User"}]
resourceTypestring

The name of the resource type of the resource.

createdstring(date-time)

The "DateTime" that the resource was added to the service provider.

lastModifiedstring(date-time)

The most recent DateTime that the details of this resource were updated at the service provider.

locationstring

The URI of the resource being returned.

versionstring

The version of the resource being returned.

Response
application/json
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "2819c223-7f76-453a-919d-413861904646", "displayName": "Tour Guides", "members": [ {} ], "meta": { "resourceType": "Group", "created": "2011-08-01T18:29:49.793Z", "lastModified": "2011-08-01T20:31:02.315Z", "location": "https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a" } }

Modifies a group with a set of client-specified changes (partial update).

Request

Update one or more attributes of a SCIM resource using a sequence of operations to "add", "remove", or "replace" values.

The general form of the SCIM PATCH request is based on the JSON Patch approach. Find more at [RFC6902].

Note: One difference between SCIM PATCH 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 "move".

The body of each request must contain the "schemas" attribute with the URI value of "urn:ietf:params:scim:api:messages:2.0:PatchOp".

The body of an HTTP PATCH request must contain the attribute "Operations" whose value is an array of one or more PATCH operations. Each PATCH operation object must have exactly one "op" member whose value indicates the operation to perform and may be one of the following:

  • "add"
  • "remove"
  • "replace".

Note: The semantics of each operation are defined in Section 3.5.2 of [RFC7644].

The "path" attribute value is a String containing an attribute path describing the target of the operation. The "path" attribute is optional for "add" and "replace" and is required for "remove" 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 must not modify an attribute that has mutability "readOnly" or "immutable". However, a client may "add" a value to an "immutable" 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 PATCH 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.

Note: For multi-valued attributes, a PATCH operation that sets a value's "primary" sub-attribute to "true" will cause the server to automatically set "primary" to "false" for any other values in the array.

Path
groupIdstring(uuid)required

The group ID.

Example: 2819c223-7f76-453a-919d-413861904646
Bodyapplication/json
schemasArray of stringsrequired
Example: ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]
OperationsArray of objectsrequired

An array of one or more PATCH operations.

Example: [{"op":"add","path":"members","value":[{"display":"Babs Jensen","ref":"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646","value":"2819c223-7f76-453a-919d-413861904646"}]}]
Operations[].​opstringrequired

The operation to perform.

Enum"add""replace""remove"
Operations[].​pathstring

The JSON Patch [RFC6902] describing the target of the operation.

Operations[].​valueinteger or number or string or boolean or Array of arrays or object

The value to be added or replaced.

One of:

The value to be added or replaced.

integer

The value to be added or replaced.

curl --request PUT \
  --url https://YOUR_DOMAIN/scim/v2/Users/{groupId} \
  --header 'Content-type: application/scim+json' \
  --header 'Authorization: Bearer eyJ0eX...ll4Q2NT'

Responses

Successfully patched the group attributes

Bodyapplication/json
schemasArray of stringsrequired
Example: ["urn:ietf:params:scim:schemas:core:2.0:Group"]
idstring(uuid)

A unique identifier for a SCIM resource as defined by the service provider.

Example: "2819c223-7f76-453a-919d-413861904646"
externalIdstring

A String that is an identifier for the resource as defined by the provisioning client.

displayNamestringrequired

A human-readable name for the Group.

Example: "Tour Guides"
membersArray of objects

A list of members of the Group.

Example: [{"value":"92b725cd-9465-4e7d-8c16-01f8e146b87a","ref":"https://example.com/v2/Users/92b725cd-9465-4e7d-8c16-01f8e146b87a","type":"User"},{"value":"2819c223-7f76-453a-919d-413861904646","ref":"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646","type":"User"}]
resourceTypestring

The name of the resource type of the resource.

createdstring(date-time)

The "DateTime" that the resource was added to the service provider.

lastModifiedstring(date-time)

The most recent DateTime that the details of this resource were updated at the service provider.

locationstring

The URI of the resource being returned.

versionstring

The version of the resource being returned.

Response
application/json
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "2819c223-7f76-453a-919d-413861904646", "displayName": "Tour Guides", "members": [ {}, {} ], "meta": { "resourceType": "Group", "created": "2011-08-01T18:29:49.793Z", "lastModified": "2011-08-01T20:31:02.315Z", "location": "https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a" } }

Modifies a user by replacing existing attributes with a specified set of replacement attributes (replace).

Request

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 PUT must not be used to create new resources.

Note: As the operation's intent is to replace all attributes, SCIM clients may send all attributes, regardless of each attribute's mutability.

Path
groupIdstring(uuid)required

The group ID.

Example: 2819c223-7f76-453a-919d-413861904646
Bodyapplication/json
schemasArray of stringsrequired
Example: ["urn:ietf:params:scim:schemas:core:2.0:Group"]
idstring(uuid)

A unique identifier for a SCIM resource as defined by the service provider.

Example: "2819c223-7f76-453a-919d-413861904646"
externalIdstring

A String that is an identifier for the resource as defined by the provisioning client.

displayNamestringrequired

A human-readable name for the Group.

Example: "Tour Guides"
membersArray of objects

A list of members of the Group.

Example: [{"value":"92b725cd-9465-4e7d-8c16-01f8e146b87a","type":"User"}]
curl --request PUT \
  --url https://YOUR_DOMAIN/scim/v2/Users/{groupId} \
  --header 'Content-type: application/scim+json' \
  --header 'Authorization: Bearer eyJ0eX...ll4Q2NT'

Responses

Successfully updated the attributes

Bodyapplication/json
schemasArray of stringsrequired
Example: ["urn:ietf:params:scim:schemas:core:2.0:Group"]
idstring(uuid)

A unique identifier for a SCIM resource as defined by the service provider.

Example: "2819c223-7f76-453a-919d-413861904646"
externalIdstring

A String that is an identifier for the resource as defined by the provisioning client.

displayNamestringrequired

A human-readable name for the Group.

Example: "Tour Guides"
membersArray of objects

A list of members of the Group.

Example: [{"value":"92b725cd-9465-4e7d-8c16-01f8e146b87a","ref":"https://example.com/v2/Users/92b725cd-9465-4e7d-8c16-01f8e146b87a","type":"User"}]
resourceTypestring

The name of the resource type of the resource.

createdstring(date-time)

The "DateTime" that the resource was added to the service provider.

lastModifiedstring(date-time)

The most recent DateTime that the details of this resource were updated at the service provider.

locationstring

The URI of the resource being returned.

versionstring

The version of the resource being returned.

Response
application/json
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "2819c223-7f76-453a-919d-413861904646", "displayName": "Tour Guides", "members": [ {} ], "meta": { "resourceType": "Group", "created": "2011-08-01T18:29:49.793Z", "lastModified": "2011-08-01T20:31:02.315Z", "location": "https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a" } }

Delete a group

Request

This operations removes the group from the ReachFive side.

Path
groupIdstring(uuid)required

The group ID.

Example: 2819c223-7f76-453a-919d-413861904646
curl --request DELETE \
  --url https://YOUR_DOMAIN/scim/v2/Users/{groupId} \
  --header 'Authorization: Bearer eyJ0eX...ll4Q2NT'

Responses

Successfully removed the group

Bulk operations

Bulk updates to one or more resources.

Operations