Skip to content
Khalid Qarryzada edited this page Nov 9, 2026 · 24 revisions

UnboundID SCIM 2 SDK for Java

SCIM 2.0 is a cross-vendor RESTful API standard with an extensible schema specifically for handling users (people, customers) and their related identity data. The standard is flexible; it is also used to handle passwords, credentials, device profiles, shipping addresses, hardware devices, vehicles… whatever you need to store and retrieve.

The standard itself is overseen by the IETF (primarily in RFC 7643, SCIM 2.0 Core Schema and RFC 7644, SCIM 2.0 Protocol). UnboundID (now Ping Identity) is proud to be a founding and ongoing contributor to the development of SCIM, and we're pleased to make this SDK available to everyone. There is a growing list of other participating companies and their implementations at simplecloud.info.

Why use the UnboundID SCIM SDK?

Reason #1: If you are creating applications that interact with the Ping Identity SCIM services such as the Ping Identity Directory Server or the PingOne SCIM API, this is the SDK you should use.

Reason #2: If your application creates, provisions, stores or retrieves user data — consider using this SDK with one of the SCIM-compatible service providers instead of building your own separate user database.

Need more reasons?

  • Don’t waste your coding time — the SDK handles the details of the SCIM HTTP requests, including the intricate PATCH operation. Instead, use our SDK classes and methods.

  • Share users, their attributes, and related objects between applications. With SCIM, there is no need for any application team to have to deal with a set of user data that’s disconnected from the rest.

  • Thorough documentation on usage of SCIM concepts such as batch processing, filter handling, search responses, and more.

  • The SDK can be used with JVM languages other than Java, like Kotlin, Groovy, and Scala.

  • Your application will be able to interact with SCIM implementations from other vendors with minimal changes. While Ping Identity is known for having the most spec-compliant and most complete implementation, this SDK also supports non-standard workflows for ease of use with popular SCIM services. One example is group membership PATCH updates that use a value instead of a filter. Support for these workflows results in less manual work in your application code.

Documentation

A SCIM client developer will be concerned with three topics: requests, responses, and attribute paths. These are discussed in the following articles:

See the SCIM SDK Javadocs for a detailed class reference.

Prerequisites

The SCIM SDK requires Java 17 or greater.

Downloads

The SCIM SDK is available as a component in Maven Central.

If you are writing a SCIM 2 client, use the scim2-sdk-client component. This will include the scim2-sdk-common component as a transitive dependency.

<dependency>
  <groupId>com.unboundid.product.scim2</groupId>
  <artifactId>scim2-sdk-client</artifactId>
  <version>VERSION</version>
</dependency>

If you are writing a SCIM 2 client for Ping Identity servers, use the scim2-ubid-extensions component. This will include the scim2-sdk-client and scim2-sdk-common components as transitive dependencies. Note that scim2-ubid-extensions is considered experimental and is subject to change.

<dependency>
  <groupId>com.unboundid.product.scim2</groupId>
  <artifactId>scim2-ubid-extensions</artifactId>
  <version>VERSION</version>
</dependency>

See Maven Central for the latest VERSION.

You may also download SCIM SDK builds from the Releases page.

Clone this wiki locally