Skip to content

Modifies a user 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.

Security
BearerAuth
Path
userIdstring, (uuid)required

The user 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": "replace", "path": "name.familyName", "value": "Jensen" } ]
PATCH
/scim/v2/Users/{userId}
curl --request PUT \
  --url https://YOUR_DOMAIN/scim/v2/Users/{userId} \
  --header 'Content-type: application/scim+json' \
  --header 'Authorization: Bearer eyJ0eX...ll4Q2NT'

Responses

Successfully patched the user attributes

Bodyapplication/json
schemasArray of stringsrequired
Example:
[ "urn:ietf:params:scim:schemas:core:2.0:User" ]
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.

Example:"bjensen"
userNamestringrequired

A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider.

Example:"bjensen"
nameobject(name)

The components of the user's name.

Example:
{ "formatted": "Ms. Barbara J Jensen III", "familyName": "Jensen", "givenName": "Barbara" }
displayNamestring

The name of the user, suitable for display to end-users.

nickNamestring

The casual way to address the user in real life, e.g., "Bob" or "Bobby" instead of "Robert".

profileUrlstring

A URI that is a uniform resource locator (as defined in Section 1.1.3 of [RFC3986]) and that points to a location representing the user's online profile (e.g., a web page). URIs are canonicalized per Section 6.2 of [RFC3986].

titlestring

The user's title, such as "Vice President".

userTypestring

Used to identify the relationship between the organization and the user. Typical values used might be "Contractor", "Employee", "Intern", "Temp", "External", and "Unknown", but any value may be used.

preferredLanguagestring

Indicates the user's preferred written or spoken languages and is generally used for selecting a localized user interface. The value indicates the set of natural languages that are preferred. The format of the value is the same as the HTTP Accept-Language header field (not including "Accept-Language:") and is specified in Section 5.3.5 of [RFC7231].

localestring

Used to indicate the User's default location for purposes of localizing such items as currency, date time format, or numerical representations.A valid value is a language tag as defined in [RFC5646].

timezonestring

The User's time zone, in IANA Time Zone database format [RFC6557], also known as the "Olson" time zone database format [Olson-TZ] (e.g., "America/Los_Angeles").

activeboolean

A Boolean value indicating the user's administrative status.

emailsArray of objects(MultiValuedAttributes)

Email addresses for the User.

Example:
{ "value": "bjensen@example.com", "type": "work", "primary": true }
phoneNumbersArray of objects(MultiValuedAttributes)

Phone numbers for the user.

imsArray of objects(MultiValuedAttributes)

Instant messaging address for the user.

photosArray of objects(MultiValuedAttributes)

A URI that is a uniform resource locator (as defined in Section 1.1.3 of [RFC3986]) that points to a resource location representing the user's image.

addressesobject

A physical mailing address for this user.

groupsArray of objects

A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated.

entitlementsstring

A list of entitlements for the user that represent a thing the user has.

rolesstring

A list of roles for the user that collectively represent who the user is, e.g., "Student", "Faculty". No vocabulary or syntax is specified, although it is expected that a role value is a String or label representing a collection of entitlements. This value has no canonical types.

x509Certificatesstring

A list of certificates associated with the resource (e.g., a User).Each value contains exactly one DER-encoded X.509 certificate (see Section 4 of [RFC5280]), which must be base64 encoded per Section 4 of [RFC4648].

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
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "id": "2819c223-7f76-453a-919d-413861904646", "externalId": "bjensen", "name": { "formatted": "Ms. Barbara J Jensen III", "familyName": "Jensen", "givenName": "Barbara" }, "userName": "bjensen", "emails": { "value": "bjensen@example.com", "type": "work", "primary": true }, "meta": { "resourceType": "User", "created": "2011-08-01T21:32:44.882Z", "lastModified": "2011-08-01T21:32:44.882Z", "location": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646" } }