Create and send a notification (deprecated)
Namespace: microsoft.graph
Important
The Microsoft Graph notifications API is deprecated and will stop returning data by the end of January 2022. For an alternative notification experience, see Microsoft Azure Notification Hubs, and see this blog post for more information.
Create and send a notification targeting a user through Microsoft Graph. The notification is stored in the Microsoft Graph notification feed store, and is sent to all app clients on all device endpoints that the user is signed in to.
This API is available in the following national cloud deployments.
Global service | US Government L4 | US Government L5 (DOD) | China operated by 21Vianet |
---|---|---|---|
✅ | ❌ | ❌ | ❌ |
Permissions
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
Permission type | Least privileged permissions | Higher privileged permissions |
---|---|---|
Delegated (work or school account) | Notifications.ReadWrite.CreatedByApp | Not available. |
Delegated (personal Microsoft account) | Notifications.ReadWrite.CreatedByApp | Not available. |
Application | Not supported. | Not supported. |
HTTP request
POST /me/notifications/
Request headers
Name | Description |
---|---|
Authorization | The authorization header is used to pass the credentials of the calling party. Bearer {token}. Required. |
X-UNS-ID | The UserNotificationSubscriptionId that is returned by the Microsoft Graph notification service after creating a subscription and is used to target the specific user. Required. |
Content-type | application/json. Required. |
Request body
In the request body, supply a JSON representation of a notification object.
Response
If successful, this method returns a 201 Created
response code that indicates that the notification was successfully created and stored. The notification is later fanned-out to all specified endpoints with a valid subscription.
The following table lists the possible error and response codes that can be returned.
Error code | Description |
---|---|
HttpStatusCode.BadRequest | Body is an array (multiple notifications isn't supported). |
HttpStatusCode.BadRequest | Body doesn't match the contract for the API. |
HttpStatusCode.Forbidden | Caller is on the blocked list. |
HttpStatusCode.MethodNotAllowed | The HTTP method used isn't supported. |
HttpStatusCode.BadRequest | Unsupported headers are present in the request. Two headers aren't supported: If-Modified-Since If-Range |
HttpStatusCode.UnsupportedMediaType | The header Content-Encoding is present and has compression algorithm values other than Deflate or Gzip . |
HttpStatusCode.BadRequest | Invalid payload. |
HttpStatusCode.Forbidden | Caller isn't authorized to act on behalf of the user or send notification to the user. |
HttpStatusCode.Unauthorized | Request body contains invalid activity data types. |
HttpStatusCode.OK | Activity successfully created. |
HttpStatusCode.NotAcceptable | Request has been throttled or the server is busy. |
Example
Request
The following example shows a request.
POST https://graph.microsoft.com/beta/me/notifications/
Content-type: application/json
{
"targetHostName": "graphnotifications.sample.windows.com",
"appNotificationId": "testDirectToastNotification",
"expirationDateTime": "2019-10-30T23:59:00.000Z",
"payload": {
"visualContent": {
"title": "Hello World!",
"body": "Notifications are Great!"
}
},
"targetPolicy": {
"platformTypes": [
"windows",
"ios",
"android"
]
},
"priority": "High",
"groupName": "TestGroup",
"displayTimeToLive": "60"
}
Response
Here's an example of the corresponding response.
HTTP/1.1 201
client-request-id: 71e62feb-8d72-4912-8b2c-4cee9d89e781
content-length: 356
content-type: application/json
location: https://graph.microsoft.com/beta/me/activities/119081f2-f19d-4fa8-817c-7e01092c0f7d
request-id: 71e62feb-8d72-4912-8b2c-4cee9d89e781
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('graphnotify%40contoso.com')/notifications/$entity",
"displayTimeToLive": 59,
"expirationDateTime": "2019-10-28T22:05:36.25Z",
"groupName": "TestGroup",
"id": "119081f2-f19d-4fa8-817c-7e01092c0f7d",
"priority": "High",
"payload": {
"visualContent": {
"title": "Hello World!",
"body": "Notifications are Great!"
}
}
}