Security Requirements and Controls
API Stability Long-Term

The addGroup() GraphQL mutation is used to create a new group.

To make changes to a group, use the updateGroup() mutation. To delete a group, use removeGroup(). For a list of groups, use the groupsPage() query. To get details on a group, use group().

For more information on user groups, see the Manage Groups documentation page. To add a group with the user interface, see Create New Groups.

Syntax

graphql
addGroup(
      displayName: string!,
      lookupName: string
    ): AddGroupMutation!

There are no special input datatypes for this mutation field. The displayName is required, but lookupName is optional — indicated by the exclamation point in the syntax.

For the return value AddGroupMutation, you'll need to specify its only parameter, group (see the Returned Datatype section below). But then you'll have to specify one of its parameters: id is the main one you'll need since it's key to getting and changing anything else for the group. See the example in the next section for more clarity.

Example

Below is an example of how this mutation field might be used:

Raw
graphql
mutation{
  addGroup(displayName: "chiefs") { 
    group {
      id
    }
  }
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation{
  addGroup(displayName: \"chiefs\") { 
    group {
      id
    }
  }
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation{
  addGroup(displayName: \"chiefs\") { 
    group {
      id
    }
  }
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation{ ^
  addGroup(displayName: \"chiefs\") {  ^
    group { ^
      id ^
    } ^
  } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation{
  addGroup(displayName: \"chiefs\") { 
    group {
      id
    }
  }
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation{
  addGroup(displayName: \"chiefs\") { 
    group {
      id
    }
  }
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation{
  addGroup(displayName: \"chiefs\") { 
    group {
      id
    }
  }
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "mutation{
  addGroup(displayName: \"chiefs\") { 
    group {
      id
    }
  }
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "addGroup": {
      "group": {
        "id": "C7QXozka5IOqDNFNjWKfThwKTDtdqHFE"
      }
    }
  }
}

Returned Datatype

For the return datatype, you can get information on users, such as how many, a list of them, and which assets they can access. You can also get a list of roles and what they entail. These parameters are accessible through a sub-parameter, which is listed below with a link to that table:

Table: AddGroupMutation

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Aug 19, 2025
groupGroupyes Long-TermThe group to add. See Group.