Caution
As of 2026-03-24, the Grafana OnCall OSS project is archived. The grafana/oncall repository is read-only, and active development continues in Grafana Cloud IRM. For a fully supported and actively maintained alternative, Grafana Cloud IRM offers a modern approach to incident response and on-call management.
Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
Personal notification rules HTTP API
Post a personal notification rule
Required permission: grafana-oncall-app.user-settings:write (user authentication only)
curl "{{API_URL}}/api/v1/personal_notification_rules/" \
--request POST \
--header "Authorization: meowmeowmeow" \
--header "Content-Type: application/json" \
--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"
}HTTP request
POST {{API_URL}}/api/v1/personal_notification_rules/
Get personal notification rule
Required permission: grafana-oncall-app.user-settings:read (user authentication only)
curl "{{API_URL}}/api/v1/personal_notification_rules/ND9EHN5LN1DUU/" \
--request GET \
--header "Authorization: meowmeowmeow" \
--header "Content-Type: application/json"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-oncall-app.user-settings:read (user authentication only)
curl "{{API_URL}}/api/v1/personal_notification_rules/" \
--request GET \
--header "Authorization: meowmeowmeow" \
--header "Content-Type: application/json"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-oncall-app.user-settings:write (user authentication only)
curl "{{API_URL}}/api/v1/personal_notification_rules/NWAL6WFJNWDD8/" \
--request DELETE \
--header "Authorization: meowmeowmeow" \
--header "Content-Type: application/json"HTTP request
DELETE {{API_URL}}/api/v1/personal_notification_rules/<PERSONAL_NOTIFICATION_RULE_ID>/