Skip to main content

groups/{groupid} (PUT) (SAP KC)


Modify an existing group

  • REST Method: PUT
  • Method Access: public

Uri Parameters

Name Type Description
groupid string either an integer group ID or "=" followed by a double uri-encoded group name

Query Parameters

Name Type Description
authenticate bool? Force authentication for request (default: false)

Return Codes

Name Value Description
OK 200 Request completed successfully
Bad Request 400 Invalid input parameter or request body
Forbidden 403 Administrator access is required
Not Found 404 Requested group could not be found

Message Format


<group id="{int}">


<group id="{int}" href="{uri}">  
    <service.authentication id="{int}" href="{uri}" />   
    <users count="{int}" href="{uri}" />   
         <operations mask="{int}">{text}</operations>   
         <role id="{int}" href="{uri}">{text}</role>   

Implementation Notes

  • This feature may be used for updating the group role and renaming the group.
  • Use PUT:groups/{groupid}/users to add and remove users from a group. 
  • The role name must match one of the roles defined by GET:site/roles.
  • External groups may not be renamed

C# Sample: Modify a Group's Role

The following code example updates group with ID 2 to have the Contributor role:

Sample Code

Plug p = Plug.New("http://deki-hayes/@api/deki");
p.At("users", "authenticate").WithCredentials("admin", "password").Get();
XDoc groupDoc = new XDoc("group")
        .Elem("role", "Contributor")
p.At("groups", "2").Put(groupDoc);

Sample Response from executing Code

<group id="2" href="http://deki-hayes/@api/deki/groups/2">
    <name>My Contributors Group</name> 
    <service.authentication id="1" href="http://deki-hayes/@api/deki/site/services/1" /> 
    <users count="2" href="http://deki-hayes/@api/deki/groups/2/users" /> 
        <role id="4" href="http://deki-hayes/@api/deki/site/roles/4">Contributor</role> 

Implementation notes 

Add notes about requirements or config values

Curl Sample: Modify a Group's Role

The following command sets a group's (group ID = 1) role to the one listed in "grouprole.xml".

Sample Code

curl -u admin:password -H "Content-Type: application/xml" -T grouprole.xml -i http://192.l68.168.110/@api/deki/groups/1

Implementation notes 

curl flags

Basic HTTP authentication. Sends a username and password to server so it can verify whether a user is of privilege to perform specific operation.
Adds a header or modifies an existing one. In this case, since an xml document is being sent, the content type must be set to "application/xml". The server will not accept the request otherwise.
-T file
Specifies a PUT request and XML document that contains the user data.
Includes the HTTP response header in the output. Useful for debugging.


ADMIN permission is required to execute above command. Otherwise, a 403 HTTP response (Forbidden) will be returned.



We want to modify the role of a group (group ID = 2) created here. Here are some of the roles that are packaged with MindTouch: Contributer, Viewer, Guest, and Admin. The group we wish to modify has the role of "Contributer". In this example, it will be changed to "Viewer".


Content-Type: application/xml


Command Line

curl -u admin:password -H "Content-Type: application/xml" -T fabfourrole.xml -i

HTTP Response Headers

HTTP/1.1 200 OK
Date: Thu, 14 Jan 2010 19:48:33 GMT
Server: Dream-HTTPAPI/
X-Deki-Site: id="default"
Content-Type: application/xml; charset=utf-8
Content-Length: 449
Via: 1.1 dekiwiki

HTTP Response Body

Content-Type: application/xml

<?xml version="1.0"?>
<group id="2" href="">
  <groupname>the fab four</groupname>
  <service.authentication id="1" href=""/>
  <users count="5" href=""/>
    <operations mask="15">LOGIN,BROWSE,READ,SUBSCRIBE</operations>
    <role id="3" href="">Viewer</role>
  • Was this article helpful?