scim.cloud

Operations

A rich but simple set of operations, from patching one attribute to bulk updates.

For manipulation of resources, SCIM provides a REST API with a rich but simple set of operations, which support everything from patching a specific attribute on a specific user to doing massive bulk updates:

Operation Method Path
Create POST https://example.com/{v}/{resource}
Read GET https://example.com/{v}/{resource}/{id}
Replace PUT https://example.com/{v}/{resource}/{id}
Delete DELETE https://example.com/{v}/{resource}/{id}
Update PATCH https://example.com/{v}/{resource}/{id}
Search GET https://example.com/{v}/{resource}?filter={attribute}{op}{value}&sortBy={attributeName}&sortOrder={ascending|descending}
Bulk POST https://example.com/{v}/Bulk

Filtering and sorting

In addition to getting single resources it is possible to fetch sets of resources by querying the resource endpoint without the id of a specific resource. Typically a fetch request will include a filter to be applied to the resources. SCIM has support for the filter operations equals, contains, starts with, and more.

In addition to filtering the response it is also possible to ask the service provider to sort the resources in the response, return specific attributes of the resources, and return only a subset of the resources.

Filter query syntax
https://example.com/{resource}?filter={attribute} {op} {value}&sortBy={attributeName}&sortOrder={ascending|descending}&attributes={attributes}

https://example.com/Users?filter=title pr and userType eq "Employee"&sortBy=title&sortOrder=ascending&attributes=title,username

Pagination

RFC 7644 pages results by index: the client sends a startIndex and a count. RFC 9865 adds cursor-based pagination as an alternative, for service providers whose underlying store already pages by cursor. A provider may support either or both, and advertises which through /ServiceProviderConfig.

See it in context

Examples shows complete create, get, and filter request/response pairs including headers.