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.

Documentationbreadcrumb arrow OnCallbreadcrumb arrow API referencebreadcrumb arrow Resolution notes HTTP API
Open source

Resolution notes HTTP API

Create a resolution note

Required permission: grafana-oncall-app.alert-groups:write

shell
curl "{{API_URL}}/api/v1/resolution_notes/" \
  --request POST \
  --header "Authorization: meowmeowmeow" \
  --header "Content-Type: application/json" \
  --data '{
      "alert_group_id": "I68T24C13IFW1",
      "text": "Demo resolution note"
  }'

The above command returns JSON structured in the following way:

JSON
{
  "id": "M4BTQUS3PRHYQ",
  "alert_group_id": "I68T24C13IFW1",
  "author": "U4DNY931HHJS5",
  "source": "web",
  "created_at": "2020-06-19T12:40:01.429805Z",
  "text": "Demo resolution note"
}
ParameterRequiredDescription
alert_group_idYesAlert group ID
textYesResolution note text

HTTP request

POST {{API_URL}}/api/v1/resolution_notes/

Get a resolution note

Required permission: grafana-oncall-app.alert-groups:read

shell
curl "{{API_URL}}/api/v1/resolution_notes/M4BTQUS3PRHYQ/" \
  --request GET \
  --header "Authorization: meowmeowmeow" \
  --header "Content-Type: application/json"

The above command returns JSON structured in the following way:

JSON
{
  "id": "M4BTQUS3PRHYQ",
  "alert_group_id": "I68T24C13IFW1",
  "author": "U4DNY931HHJS5",
  "source": "web",
  "created_at": "2020-06-19T12:40:01.429805Z",
  "text": "Demo resolution note"
}

HTTP request

GET {{API_URL}}/api/v1/resolution_notes/<RESOLUTION_NOTE_ID>/

List resolution notes

Required permission: grafana-oncall-app.alert-groups:read

shell
curl "{{API_URL}}/api/v1/resolution_notes/" \
  --request GET \
  --header "Authorization: meowmeowmeow" \
  --header "Content-Type: application/json"

The above command returns JSON structured in the following way:

JSON
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": "M4BTQUS3PRHYQ",
      "alert_group_id": "I68T24C13IFW1",
      "author": "U4DNY931HHJS5",
      "source": "web",
      "created_at": "2020-06-19T12:40:01.429805Z",
      "text": "Demo resolution note"
    }
  ],
  "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 parameter should be provided as a GET argument:

  • alert_group_id

HTTP request

GET {{API_URL}}/api/v1/resolution_notes/

Update a resolution note

Required permission: grafana-oncall-app.alert-groups:write

shell
curl "{{API_URL}}/api/v1/resolution_notes/M4BTQUS3PRHYQ/" \
  --request PUT \
  --header "Authorization: meowmeowmeow" \
  --header "Content-Type: application/json" \
  --data '{
      "text": "Demo resolution note updated"
  }'

The above command returns JSON structured in the following way:

JSON
{
  "id": "M4BTQUS3PRHYQ",
  "alert_group_id": "I68T24C13IFW1",
  "author": "U4DNY931HHJS5",
  "source": "web",
  "created_at": "2020-06-19T12:40:01.429805Z",
  "text": "Demo resolution note updated"
}

HTTP request

PUT {{API_URL}}/api/v1/resolution_notes/<RESOLUTION_NOTE_ID>/

Delete a resolution note

Required permission: grafana-oncall-app.alert-groups:write

shell
curl "{{API_URL}}/api/v1/resolution_notes/M4BTQUS3PRHYQ/" \
  --request DELETE \
  --header "Authorization: meowmeowmeow"

HTTP request

DELETE {{API_URL}}/api/v1/resolution_notes/<RESOLUTION_NOTE_ID>/