Skip to main content

Absorb SCIM API

Welcome to the documentation for Absorb SCIM 2.0 API.

1. Authentication

The Absorb SCIM API currently supports two methods of authentication.

  1. OAuth 2.0 Authorization Code Flow: This is the recommended method of authentication. It provides a secure way to access the API using access tokens.
  2. Long-lived Bearer Token: This method uses a username and password to generate a long-lived bearer token. It is less secure than OAuth 2.0 and should only be used if OAuth cannot be leveraged.

2. Sorting

Use sortBy and sortOrder query string parameters on specific GET requests to sort results.

sortBy is the property to sort by. We support sorting on simple properties (ex. userName), nested properties (ex. name.givenName), and multi-valued attributes with no sub-properties (ex. emails). Sorting on an attribute like emails.type is not supported.

sortOrder determines the order in which the specified property is sorted. Allowed values are "ascending" and "descending". By default, the order is "ascending".

For example:
https://[path]/[resource]?sortBy=emails&sortOrder=descending

3. Filtering

Use filter query string parameter on specific GET requests. Supported operations include:

  • Attribute operators: eq, ne, co, sw, ew, pr, gt, ge, lt, le
  • Logical operators: and, or, not
  • Grouping operators: (), []

For example:
https://[path]/[resource]?filter=userType eq "Employee" and (emails co "example.com" or emails.value co "example.org")

Additional details can be found here

4. Pagination

Supply both startIndex & count query string parameters on specific GET requests to paginate returned results.

Start index is the 1-based index of the first record to return. If there is a list of 10 records, and you want to start the results at the 5th record, the start index would be 5. Increment this value on successive calls until no records are returned. Count specifies how many records to return per page.

For example:
https://[path]/[resource]?startIndex=101&count=100

note

If no pagination parameters supplied, default pagination settings are startIndex=1&count=20. The max count is 1000.

5. Projection

Use attributes or excludedAttributes query parameters on specific GET requests to control which attributes are returned in the response. Both are a comma-separated list of attributes.

Specifying attributes will override the default set of attributes returned. Specifying excludedAttributes will remove the specified attributes from the default set of attributes returned.

note

Some attributes will always be returned (ex. id), while other attributes can never be returned (ex. password). Neither attributes or excludedAttributes can be used to control these.

6. Patch

The Absorb SCIM API supports PATCH requests for updating user and group resources. PATCH requests support "add", "replace", and "remove" operations that allow you to update specific attributes of a resource without needing to send the entire resource.

The path property uses the same syntax as the filter query parameter.

An example request body:

{ 
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "replace",
"path": "name.givenName",
"value": "John"
},
{
"op": "remove",
"path": "emails[type eq \"personal\"]"
},
... + additional operations if needed ...
]
}

7. Unsupported Endpoints

The Absorb SCIM API does not currently support the following endpoints:

  • GET, POST, PUT, PATCH, DELETE /Me
  • GET /ServiceProviderConfig
  • GET /ResourceTypes
  • POST /Bulk
  • POST [prefix]/.search

8. Dynamic Rules and User Updates

Assets that use dynamic rules to control users' access may take a short delay to process and reflect modified user values. For example, an online course that has an automatic enrollment rule 'Job Title equals "Supervisor"' may not immediately enroll a newly created learner who has the "Supervisor" job title for up to 10 minutes. This delay allows the system to process multiple updates together in a more efficient manner and avoid overloading the queue with individual updates.

9. Support

The Absorb SCIM API is based on the SCIM 2.0 standard. For more information on SCIM, please refer to the following resources: