Update a group

⚠️
Preview — this feature is being built; the design below is the spec.
PATCH https://app.syntic.ai/v1/organizations/groups/{group_id}

Rename a group or replace its workspace roles. Role changes apply to every member within 60 seconds; members who lose access to a workspace keep their keys, but the keys stop working there.

For how this fits into a full workflow, see Groups and roles.

Headers

HeaderRequiredValue
AuthorizationYesBearer <admin key>: an Admin API key (sk_admin_...). Inference keys are refused with 403 admin_key_required. See Admin API keys.
syntic-betaYes, while in previewadmin-2026-11-01. Without it the call fails with 400 beta_required. See Versioning.
Content-TypeYesapplication/json

Path parameters

ParameterTypeDescription
group_idstringThe group id, starting with grp_.

Body parameters

ParameterTypeRequiredNotes
namestringNoManual groups only.
descriptionstringNo
workspace_rolesarrayNoReplaces the whole list.

Response

200 OK, Content-Type: application/json

{
  "id": "grp_01JCM0N2Q4S6U8W0Y2A4",
  "type": "group",
  "name": "data-science",
  "description": "Analysts and ML engineers",
  "source": "manual",
  "workspace_roles": [
    {
      "workspace_id": "wrkspc_01JC0A2C4E6G8J0L2N4Q",
      "role": "workspace_admin"
    }
  ],
  "member_count": 12,
  "created_at": "2026-09-01T10:00:00Z",
  "updated_at": "2026-11-01T10:00:00Z"
}
FieldTypeDescription
idstringStarts with grp_.
sourcestringmanual, or scim for groups pushed by your identity provider. SCIM groups are read-only here except for workspace_roles.
workspace_rolesarrayRoles every member receives in each workspace. A member’s effective role is the highest of their own and their groups’ roles.
member_countintegerCurrent members.

Examples

curl -sS -X PATCH "https://app.syntic.ai/v1/organizations/groups/grp_01JCM0N2Q4S6U8W0Y2A4" \
  -H "Authorization: Bearer $SYNTIC_ADMIN_KEY" \
  -H "syntic-beta: admin-2026-11-01" \
  -H "Content-Type: application/json" \
  -d '{
      "workspace_roles": [
        {
          "workspace_id": "wrkspc_01JC0A2C4E6G8J0L2N4Q",
          "role": "workspace_admin"
        }
      ]
    }'

Errors

Errors use the error envelope and carry a request_id. Codes specific to this operation:

StatustypecodeWhen
400invalid_request_errorbeta_requiredThe syntic-beta header is missing.
403permission_errorscim_managedThe name of a SCIM group is set by your identity provider.
404not_found_errorgroup_not_foundNo group with this id.
401authentication_errorinvalid_api_keyThe admin key is missing, unknown, revoked or expired.
403permission_erroradmin_key_requiredAn inference key was used.
429rate_limit_errorrate_limitedToo many requests; wait for Retry-After. See Rate-limit headers.
Was this page helpful?