Documentation for automated readers
A curated documentation index is available at: https://grafana.com/llms.txt
A complete documentation index is available at: https://grafana.com/llms-full.txt
These indexes can help with page discovery before fetching individual documents.
This page is also available in Markdown, which may be easier for automated readers and AI tools to parse than HTML. The Markdown version is available at https://grafana.com/docs/grafana-cloud/observe-and-act/respond-to-incidents/reference/oncall-api/personal_notification_rules.md, or by sending Accept: text/markdown to https://grafana.com/docs/grafana-cloud/observe-and-act/respond-to-incidents/reference/oncall-api/personal_notification_rules/. For broader documentation discovery, the curated index is available at https://grafana.com/llms.txt and the complete index is available at https://grafana.com/llms-full.txt.
Personal notification rules HTTP API
Post a personal notification rule
Required permission: grafana-irm-app.user-settings:write
To create a rule for another user, you also need the grafana-irm-app.user-settings:admin permission. Service account tokens always need this permission, because service accounts can’t have their own notification rules. For OnCall API keys, permissions are checked on the user who created the key.
For authentication options, refer to Authentication.
curl "{{API_URL}}/api/v1/personal_notification_rules/" \
--request POST \
--header "Authorization: Bearer meowmeowmeow" \
--header "Content-Type: application/json" \
--header "X-Grafana-URL: https://your-stack.grafana.net" \
--data '{
"user_id": "U4DNY931HHJS5",
"type": "notify_by_sms"
}'The above command returns JSON structured in the following way:
{
"id": "NT79GA9I7E4DJ",
"user_id": "U4DNY931HHJS5",
"position": 0,
"important": false,
"type": "notify_by_sms"
}| Parameter | Required | Description |
|---|---|---|
user_id | Yes | User ID. Can’t be a service account user. |
position | Optional | Personal notification rules execute one after another starting from position=0. Position=-1 will put the escalation policy to the end of the list. A new escalation policy created with a position of an existing escalation policy will move the old one (and all following) down on the list. |
type | Yes | One of: wait, notify_by_slack, notify_by_sms, notify_by_phone_call, notify_by_telegram, notify_by_email, notify_by_mobile_app, notify_by_mobile_app_critical,notify_by_webhook, or notify_by_msteams. |
duration | Optional | A time in seconds to wait (when type=wait). Can be one of 60, 300, 900, 1800, or 3600. |
important | Optional | Boolean value indicates if a rule is “important”. Default is false. |
HTTP request
POST {{API_URL}}/api/v1/personal_notification_rules/
Get personal notification rule
Required permission: grafana-irm-app.user-settings:read
For authentication options, refer to Authentication.
curl "{{API_URL}}/api/v1/personal_notification_rules/ND9EHN5LN1DUU/" \
--request GET \
--header "Authorization: Bearer meowmeowmeow" \
--header "Content-Type: application/json" \
--header "X-Grafana-URL: https://your-stack.grafana.net"The above command returns JSON structured in the following way:
{
"id": "ND9EHN5LN1DUU",
"user_id": "U4DNY931HHJS5",
"position": 1,
"duration": 300,
"important": false,
"type": "wait"
}HTTP request
GET {{API_URL}}/api/v1/personal_notification_rules/<PERSONAL_NOTIFICATION_RULE_ID>/
List personal notification rules
Required permission: grafana-irm-app.user-settings:read
For authentication options, refer to Authentication.
curl "{{API_URL}}/api/v1/personal_notification_rules/" \
--request GET \
--header "Authorization: Bearer meowmeowmeow" \
--header "Content-Type: application/json" \
--header "X-Grafana-URL: https://your-stack.grafana.net"The above command returns JSON structured in the following ways:
{
"count": 4,
"next": null,
"previous": null,
"results": [
{
"id": "NT79GA9I7E4DJ",
"user_id": "U4DNY931HHJS5",
"position": 0,
"important": false,
"type": "notify_by_sms"
},
{
"id": "ND9EHN5LN1DUU",
"user_id": "U4DNY931HHJS5",
"position": 1,
"duration": 300,
"important": false,
"type": "wait"
},
{
"id": "NEF49YQ1HNPDD",
"user_id": "U4DNY931HHJS5",
"position": 2,
"important": false,
"type": "notify_by_phone_call"
},
{
"id": "NWAL6WFJNWDD8",
"user_id": "U4DNY931HHJS5",
"position": 0,
"important": true,
"type": "notify_by_phone_call"
}
],
"current_page_number": 1,
"page_size": 50,
"total_pages": 1
}Note: The response is paginated. You may need to make multiple requests to get all records.
The following available filter parameters should be provided as GET arguments:
user_idimportant
HTTP Request
GET {{API_URL}}/api/v1/personal_notification_rules/
Delete a personal notification rule
Required permission: grafana-irm-app.user-settings:write
To delete another user’s rule, you also need the grafana-irm-app.user-settings:admin permission. Service account tokens always need this permission, because service accounts can’t have their own notification rules. For OnCall API keys, permissions are checked on the user who created the key.
For authentication options, refer to Authentication.
curl "{{API_URL}}/api/v1/personal_notification_rules/NWAL6WFJNWDD8/" \
--request DELETE \
--header "Authorization: Bearer meowmeowmeow" \
--header "Content-Type: application/json" \
--header "X-Grafana-URL: https://your-stack.grafana.net"HTTP request
DELETE {{API_URL}}/api/v1/personal_notification_rules/<PERSONAL_NOTIFICATION_RULE_ID>/
Was this page helpful?
Related resources from Grafana Labs

