API Stability Long-Term

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

For more information on actions, previously known as notifiers, see the Actions documentation page.

Syntax

Below is the syntax for the notify() mutation field:

graphql
notify(
     input: NotificationInput!
   ): Notification!

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 Datatypes

For NotificationInput, there are several parameters. 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 Datatypes

The returned datatype Notification has its own parameters. Below is a list of them along with their datatypes and a description of each:

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.

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

Notify org roots in org1 and org2.

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

Notify all root users.

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

Notify all users.

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

Notify user 1, 2 and 3.

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