Skip to main content

groups (GET) (MT4)

Overview

Retrieve list of groups.

  • REST Method: GET
  • Method Access: public

Query Parameters

Name Type Description
authprovider int? Return groups belonging to given authentication service id
groupnamefilter string? Search for groups by name or part of a name
limit string? Maximum number of items to retrieve. Must be a positive number or 'all' to retrieve all items. (default: 100)
sortby {id, name, role, service}? Sort field. Prefix value with '-' to sort descending. default: No sorting
offset int? Number of items to skip. Must be a positive number or 0 to not skip any. (default: 0)
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 Read access is required

Message Format

Output:

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

Implementation Notes

Groups provide the ability to associate a collection of users with a predefined role.  Use GET:site/roles to retrieve a list of all roles currently defined on the site.

Use POST:groups to add or modify a group and DELETE:groups/{groupid} to remove a specified group.

C# Code Sample: Retrieve Groups

The following code example retrieves all groups defined for the site:

Sample Code

Plug p = Plug.New("http://help.mindtouch.us/@api/deki");
p.At("users", "authenticate").WithCredentials("admin", "password").Get();
p.At("groups").Get();

Sample Response from executing Code

Sample response indicating that there is one group.  This group is associated with the local authentication service, contains one user, and has the Contributor role:

<groups count="1" href="http://help.mindtouch.us/@api/deki/groups">
    <group id="1" href="http://help.mindtouch.us/@api/deki/groups/1">
        <groupname>My Contributors Group</groupname> 
        <service.authentication id="1" href="http://help.mindtouch.us/@api/deki/site/services/1" /> 
        <users count="1" href="http://help.mindtouch.us/@api/deki/groups/1/users" /> 
        <permissions.group>
            <operations mask="1343">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS</operations> 
            <role id="4" href="http://help.mindtouch.us/@api/deki/site/roles/4">Contributor</role> 
        </permissions.group>
    </group>
</groups>

Implementation notes 

Add notes about requirements or config values

Curl Code Sample: Retrieve Groups

The following command retrieves a list and information of all existing groups:

Sample Code

curl -u username:password -i http://mindtouch.address/@api/deki/groups

Sample Response from executing Code

The site has 1 group:

Content-Type: application/xml

<groups count="1" querycount="1" totalcount="1" href="http://192.168.59.128/@api/deki/groups">
  <group id="22" href="http://192.168.59.128/@api/deki/groups/22">
    <groupname>test</groupname>
    <service.authentication id="1" href="http://192.168.59.128/@api/deki/site/services/1"/>
    <users href="http://192.168.59.128/@api/deki/groups/22/users"/>
    <permissions.group>
      <operations mask="1343">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS</operations>
      <role id="4" href="http://192.168.59.128/@api/deki/site/roles/4">Contributor</role>
    </permissions.group>
  </group>
</groups>

Implementation notes 

curl flags

-u
Provides external user authentication. Note that if anonymous access is available and authentication is not forced, this flag may be omitted.
-i
Outputs the HTTP response headers. Useful for debugging.
  • Was this article helpful?