API Stability Long-Term

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

To get a list of notifications, use the listNotifications() query field. You can dismiss a notification with the dismissNotification() mutation and delete one with deleteNotification().

To access the notifications through the UI, see the Notifications page in the main documentation. For more information on actions, previously known as notifiers, see the Actions documentation page.

Syntax

graphql
notify(
     input: NotificationInput!
   ): Notification!

Example

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

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": "PZ5VTHfaNMQASqpO78JDUidFTtsnjXfS"
    }
  }
}

Given Datatype

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

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: 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 Datatype

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

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: 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"],...)}