Summary

The notify() GraphQL mutation is used to create a notification. The required permission depends on the target.

API Stability Long-Term

Syntax

graphql
notify(
     input: NotificationInput!
   ): Notification!

For input, you would give the message and its title to send users, the severity level, and other related items. See the Input Parameters section for a complete list of parameters.

For the results, you can get back the same values. You'd probably only want the generated identifier for use with other mutations. See the Returned Values section for more.

Example

Raw
graphql
mutation {
  notify( input: {
         dismissable: true,
         title: "Ding",
         message: "Hey! Wake up!",
         target: All
         severity: Info,
         notificationType: Bell,
  } )
  {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 {
  notify( input: {
         dismissable: true,
         title: \"Ding\",
         message: \"Hey! Wake up!\",
         target: All
         severity: Info,
         notificationType: Bell,
  } )
  {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 {
  notify( input: {
         dismissable: true,
         title: \"Ding\",
         message: \"Hey! Wake up!\",
         target: All
         severity: Info,
         notificationType: Bell,
  } )
  {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 { ^
  notify( input: { ^
         dismissable: true, ^
         title: \"Ding\", ^
         message: \"Hey! Wake up!\", ^
         target: All ^
         severity: Info, ^
         notificationType: Bell, ^
  } ) ^
  {id} ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  notify( input: {
         dismissable: true,
         title: \"Ding\",
         message: \"Hey! Wake up!\",
         target: All
         severity: Info,
         notificationType: Bell,
  } )
  {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 {
  notify( input: {
         dismissable: true,
         title: \"Ding\",
         message: \"Hey! Wake up!\",
         target: All
         severity: Info,
         notificationType: Bell,
  } )
  {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 {
  notify( input: {
         dismissable: true,
         title: \"Ding\",
         message: \"Hey! Wake up!\",
         target: All
         severity: Info,
         notificationType: Bell,
  } )
  {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 {
  notify( input: {
         dismissable: true,
         title: \"Ding\",
         message: \"Hey! Wake up!\",
         target: All
         severity: Info,
         notificationType: Bell,
  } )
  {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": {
    "notify": {
      "id": "abc123"
    }
  }
}

Input Parameters

For input datatype, you would give the message and its title to send users, the severity level, and other related items. Below is a list of them and a description of each:

Table: NotificationInput Input Datatype

ParameterTypeRequiredDefaultStabilityDescription
Some input parameters may be required, as indicated in the Required column. For return values, this indicates that you are assured a value if the field is requested for the results.
Table last updated: Sep 19, 2024
dismissablebooleanyes Long-TermWhether the notification is dismissable by the user.
ids[string]yes Long-TermThe unique identifiers of the notifications.
linkstring  Long-TermA link that may be included, if preferred, in the notification.
linkDescriptionstring  Long-TermA description of the link given in the notification.
messagestringyes Long-TermThe message to be used when notifying.
notificationTypeNotificationTypesyes Long-TermThe type of notification. See NotificationTypes.
severityNotificationSeverityyes Long-TermThe severity level of the notification. See NotificationSeverity.
targetTargetsyes Long-TermThe target users for the notification. See Targets.
titlestringyes Long-TermThe title for the notification.

Returned Values

With the returned datatype, you can get the heading for the notice, the message itself, the severity level, and other elements of the notification. The table below and links to other datatypes lists your choices:

Table: Notification Datatype

ParameterTypeRequiredDefaultStabilityDescription
Some input parameters may be required, as indicated in the Required column. For return values, this indicates that you are assured a value if the field is requested for the results.
Table last updated: Jun 23, 2025
dismissablebooleanyes Long-TermWhether the notification is dismissable.
idstringyes Long-TermThe unique identifier for the notification.
linkstring  Long-TermLink accompanying the notification.
linkDescriptionstring  Long-TermA description for the link.
messagestringyes Long-TermThe message for the notification.
severityNotificationSeverityyes Long-TermThe severity of the notification. See NotificationSeverity.
titlestringyes Long-TermThe title or heading of the notification.
typeNotificationTypesyes Long-TermThe type of the notification. See NotificationTypes.

Examples

Notify users in group1 and group2.

graphql
mutation{
     notify(
        Target:Group, 
        ids: ["GroupId1", "GroupId2"],...
        )
  }

Notify org roots in org1 and org2.

graphql
mutation{notify(Target:OrgRoot, ids: ["OrgId1", "OrgId2"],...)}

Notify all root users.

graphql
mutation{notify(Target:Root,...)}

Notify all users.

graphql
mutation{notify(Target:All,...)}

Notify user 1, 2 and 3.

graphql
mutation{notify(Target:All,["UserId1", "UserId2", "UserId3"],...)}