Skip to main content

Patch User

PATCH 

/Users/:id

Partially updates a user. PATCH supports the same mutable surface as PUT (Replace User).

Supported operations (add / replace):

  • active — archive (false) or reactivate (true) a user
  • name.givenName / name.familyName — name components may be patched individually; they merge with the stored name
  • externalId
  • role — via the urn:ro.am:params:scim:schemas:extension:roam:2.0:User extension, as a pathed operation or a path-less operation keyed by the extension URN
  • userName + emails — changing both together to the same new address performs an email change (see Replace User); changing only one returns 400, and a conflicting change returns 409

Operation forms:

  • Operations may target an attribute path ("path": "active") or omit the path and provide an object of attribute/value pairs (RFC 7644 §3.5.2.1) — the form Okta uses for deactivation: {"op": "replace", "value": {"active": false}}
  • Operation names are case-insensitive (Replace and replace both work); add on a single-valued attribute behaves as replace
  • Multiple operations are validated up front and folded into a single update, so a failing operation cannot leave a partial update behind

Tolerated / not supported:

  • Attributes Roam does not store (displayName, title, addresses, phoneNumbers, enterprise-extension fields, ...) are logged and ignored rather than failing the request, so a bundled IdP profile push still succeeds
  • remove is rejected (400) for stored attributes and ignored for unsupported ones

See RFC 7644 §3.5.2 for SCIM PATCH operations.

Request

Responses

Updated user