SCIM 2.0
Update a user
replace, add, remove operations; active: false deactivates the user (mobile sessions and API keys are revoked, records stay; the last active admin can't be deactivated). active: true needs a free seat.
Authorization
AuthorizationheaderrequiredSCIM key (Settings → Apps → SCIM).
Path parameters
idstringrequiredUser id.
Request
curl -X PATCH https://ornek.solk.app/api/scim/v2/Users/2 \
-H "Authorization: Bearer $SCIM_TOKEN" \
-H "Content-Type: application/scim+json" \
-d '{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "active",
"value": false
}
]
}'const res = await fetch("https://ornek.solk.app/api/scim/v2/Users/2", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.SCIM_TOKEN}`,
"Content-Type": "application/scim+json",
},
body: JSON.stringify({
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "active",
"value": false
}
]
}),
});
const data = await res.json();import os, requests
r = requests.patch(
"https://ornek.solk.app/api/scim/v2/Users/2",
headers={"Authorization": f"Bearer {os.environ['SCIM_TOKEN']}"},
json={
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "active",
"value": False
}
]
},
)
print(r.json())Response
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"id": "2",
"userName": "ayse.demir@ornekkimya.com.tr",
"displayName": "Ayşe Demir",
"name": {
"formatted": "Ayşe Demir",
"givenName": "Ayşe",
"familyName": "Demir"
},
"active": false,
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"department": "Satış"
},
"meta": {
"resourceType": "User",
"location": "https://ornek.solk.app/api/scim/v2/Users/2"
},
"emails": [
{
"value": "ayse.demir@ornekkimya.com.tr",
"type": "work",
"primary": true
}
]
}Example responses were captured from a v22 installation running sample data; lists are shortened to two items.