PATCH Patch a SCIM group
/api/v1/scim/v2/{directory}/Groups/{resource_id}
Patch a SCIM group. Directory tokens are restricted to one directory. Deactivation revokes company access without deleting the personal account. Group mappings grant only Viewer or Editor.
On this page
Access and permissions
Patch a SCIM group. Directory tokens are restricted to one directory. Deactivation revokes company access without deleting the personal account. Group mappings grant only Viewer or Editor.
scimProvisioning
Parameters and headers
| Field | Location | Type and limits | Required | Meaning |
|---|---|---|---|---|
| directory | Path | string; {"format":"uuid"} | Yes | SCIM directory identifier. |
| resource_id | Path | string | Yes | SCIM resource identifier. |
Request body
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
| $.schemas | array<string> | No | — |
| $.schemas[] | string | Yes | — |
| $.Operations | array<object>; {"maxItems":100} | Yes | — |
| $.Operations[] | object | Yes | — |
| $.Operations[].op | string; {"enum":["add","remove","replace"]} | Yes | — |
| $.Operations[].path | string | No | — |
| $.Operations[].value | JSON | No | — |
Responses
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | EnterpriseSCIMResource | object | Yes | — |
| $ (oneOf 1) | EnterpriseSCIMResource | No | — |
| $ (oneOf 1).schemas | array<string> | No | — |
| $ (oneOf 1).schemas[] | string | Yes | — |
| $ (oneOf 1).id | string | No | — |
| $ (oneOf 1).externalId | string | No | — |
| $ (oneOf 1).userName | string | No | — |
| $ (oneOf 1).displayName | string | No | — |
| $ (oneOf 1).active | boolean | No | — |
| $ (oneOf 1).emails | array<object> | No | — |
| $ (oneOf 1).emails[] | object | Yes | — |
| $ (oneOf 1).emails[].value | string | No | — |
| $ (oneOf 1).emails[].primary | boolean | No | — |
| $ (oneOf 1).name | object | No | — |
| $ (oneOf 1).members | array<object> | No | — |
| $ (oneOf 1).members[] | object | Yes | — |
| $ (oneOf 1).members[].value | string; {"format":"uuid"} | No | — |
| $ (oneOf 1).meta | object | No | — |
| $ (oneOf 2) | object | No | — |
| $ (oneOf 2).schemas | array<string> | No | — |
| $ (oneOf 2).schemas[] | string | Yes | — |
| $ (oneOf 2).Resources | array<EnterpriseSCIMResource> | No | — |
| $ (oneOf 2).Resources[] | EnterpriseSCIMResource | Yes | — |
| $ (oneOf 2).Resources[].schemas | array<string> | No | — |
| $ (oneOf 2).Resources[].schemas[] | string | Yes | — |
| $ (oneOf 2).Resources[].id | string | No | — |
| $ (oneOf 2).Resources[].externalId | string | No | — |
| $ (oneOf 2).Resources[].userName | string | No | — |
| $ (oneOf 2).Resources[].displayName | string | No | — |
| $ (oneOf 2).Resources[].active | boolean | No | — |
| $ (oneOf 2).Resources[].emails | array<object> | No | — |
| $ (oneOf 2).Resources[].emails[] | object | Yes | — |
| $ (oneOf 2).Resources[].emails[].value | string | No | — |
| $ (oneOf 2).Resources[].emails[].primary | boolean | No | — |
| $ (oneOf 2).Resources[].name | object | No | — |
| $ (oneOf 2).Resources[].members | array<object> | No | — |
| $ (oneOf 2).Resources[].members[] | object | Yes | — |
| $ (oneOf 2).Resources[].members[].value | string; {"format":"uuid"} | No | — |
| $ (oneOf 2).Resources[].meta | object | No | — |
| $ (oneOf 2).totalResults | integer | No | — |
| $ (oneOf 2).startIndex | integer | No | — |
| $ (oneOf 2).itemsPerPage | integer | No | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
application/scim+json
| Field | Type and limits | Required | Meaning |
|---|---|---|---|
| $ | object | Yes | — |
Retries and asynchronous work
This change does not have a general retry guarantee. If the response is unclear, read the affected resource before trying again. Follow Retry-After waiting times and request new sign-in or action codes when they expire.
Request examples
Replace demo IDs, timestamps and placeholders with your own values. For a retry, keep the same IDs, time and content. These examples do not run requests on this page.
Keep login links, codes, cookies and keys private. Do not print them in logs or share them in support requests.
curl --proto "=https" --tlsv1.2 --silent --show-error --max-time 10 --output /dev/null --write-out "%{http_code}\n" \
--request PATCH \
--header @"$HOME/.config/metribeacon/headers.txt" \
--data-binary @"$HOME/.config/metribeacon/request-body" \
"https://metribeacon.com/api/v1/scim/v2/{directory}/Groups/{resource_id}"
import json
from pathlib import Path
from urllib.request import Request, HTTPRedirectHandler, build_opener
from urllib.error import HTTPError
config = Path.home() / ".config/metribeacon"
headers = json.loads((config / "headers.json").read_text())
body = (config / "request-body").read_bytes()
request = Request("https://metribeacon.com/api/v1/scim/v2/{directory}/Groups/{resource_id}", data=body, headers=headers, method="PATCH")
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, request, fp, code, message, headers, target):
return None
try:
with build_opener(NoRedirect()).open(request, timeout=10) as response:
print(response.status)
except HTTPError as error:
print(error.code)
error.close()
import { readFile } from "node:fs/promises";
import { homedir } from "node:os";
import { join } from "node:path";
const config = join(homedir(), ".config/metribeacon");
const headers = JSON.parse(await readFile(join(config, "headers.json"), "utf8"));
const body = await readFile(join(config, "request-body"));
const response = await fetch("https://metribeacon.com/api/v1/scim/v2/{directory}/Groups/{resource_id}", {
method: "PATCH", headers, redirect: "manual",
body,
signal: AbortSignal.timeout(10000),
});
console.log(response.status);
await response.body?.cancel();
package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"path/filepath"
"time"
"bytes"
)
func main() {
home, err := os.UserHomeDir(); if err != nil { panic("local configuration unavailable") }
config := filepath.Join(home, ".config/metribeacon")
raw, err := os.ReadFile(filepath.Join(config,"headers.json")); if err != nil { panic("local headers unavailable") }
var headers map[string]string
if json.Unmarshal(raw,&headers) != nil { panic("invalid local headers") }
body, err := os.ReadFile(filepath.Join(config,"request-body")); if err != nil { panic("local request unavailable") }
request, err := http.NewRequest("PATCH","https://metribeacon.com/api/v1/scim/v2/{directory}/Groups/{resource_id}",bytes.NewReader(body))
if err != nil { panic("request unavailable") }
for key,value := range headers { request.Header.Set(key,value) }
client := &http.Client{Timeout:10*time.Second,CheckRedirect:func(*http.Request,[]*http.Request)error{return http.ErrUseLastResponse}}
response, err := client.Do(request); if err != nil { panic("request failed; credentials and response omitted") }
defer response.Body.Close()
fmt.Println(response.StatusCode)
}
Related guides
- HTTP API, OAuth and MCP
Find the user API endpoints, their permissions, fields, examples and response formats.
- GET Read a SCIM group
Read a SCIM group. Directory tokens are restricted to one directory. Deactivation revokes company access without deleting the personal account. Group mappings grant only Viewer or Editor.
- PUT Replace a SCIM group
Replace a SCIM group. Directory tokens are restricted to one directory. Deactivation revokes company access without deleting the personal account. Group mappings grant only Viewer or Editor.
- DELETE Delete a SCIM group
Delete a SCIM group. Directory tokens are restricted to one directory. Deactivation revokes company access without deleting the personal account. Group mappings grant only Viewer or Editor.