<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Grafana OnCall HTTP API reference on Grafana Labs</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/</link><description>Recent content in Grafana OnCall HTTP API reference on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/oncall/v1.6.x/oncall-api-reference/index.xml" rel="self" type="application/rss+xml"/><item><title>Alerts HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/alerts/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/alerts/</guid><content><![CDATA[&lt;h1 id=&#34;list-alerts&#34;&gt;List Alerts&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alerts/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 3,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;AA74DN7T4JQB6&amp;#34;,
      &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
      &amp;#34;created_at&amp;#34;: &amp;#34;2020-05-11T20:08:43Z&amp;#34;,
      &amp;#34;payload&amp;#34;: {
        &amp;#34;state&amp;#34;: &amp;#34;alerting&amp;#34;,
        &amp;#34;title&amp;#34;: &amp;#34;[Alerting] Test notification&amp;#34;,
        &amp;#34;ruleId&amp;#34;: 0,
        &amp;#34;message&amp;#34;: &amp;#34;Someone is testing the alert notification within Grafana.&amp;#34;,
        &amp;#34;ruleUrl&amp;#34;: &amp;#34;{{API_URL}}/&amp;#34;,
        &amp;#34;ruleName&amp;#34;: &amp;#34;Test notification&amp;#34;,
        &amp;#34;evalMatches&amp;#34;: [
          {
            &amp;#34;tags&amp;#34;: null,
            &amp;#34;value&amp;#34;: 100,
            &amp;#34;metric&amp;#34;: &amp;#34;High value&amp;#34;
          },
          {
            &amp;#34;tags&amp;#34;: null,
            &amp;#34;value&amp;#34;: 200,
            &amp;#34;metric&amp;#34;: &amp;#34;Higher Value&amp;#34;
          }
        ]
      }
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;AR9SSYFKE2PV7&amp;#34;,
      &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
      &amp;#34;created_at&amp;#34;: &amp;#34;2020-05-11T20:07:54Z&amp;#34;,
      &amp;#34;payload&amp;#34;: {
        &amp;#34;state&amp;#34;: &amp;#34;alerting&amp;#34;,
        &amp;#34;title&amp;#34;: &amp;#34;[Alerting] Test notification&amp;#34;,
        &amp;#34;ruleId&amp;#34;: 0,
        &amp;#34;message&amp;#34;: &amp;#34;Someone is testing the alert notification within Grafana.&amp;#34;,
        &amp;#34;ruleUrl&amp;#34;: &amp;#34;{{API_URL}}/&amp;#34;,
        &amp;#34;ruleName&amp;#34;: &amp;#34;Test notification&amp;#34;,
        &amp;#34;evalMatches&amp;#34;: [
          {
            &amp;#34;tags&amp;#34;: null,
            &amp;#34;value&amp;#34;: 100,
            &amp;#34;metric&amp;#34;: &amp;#34;High value&amp;#34;
          },
          {
            &amp;#34;tags&amp;#34;: null,
            &amp;#34;value&amp;#34;: 200,
            &amp;#34;metric&amp;#34;: &amp;#34;Higher Value&amp;#34;
          }
        ]
      }
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;AWJQSGEYYUFGH&amp;#34;,
      &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
      &amp;#34;created_at&amp;#34;: &amp;#34;2020-05-11T20:06:58Z&amp;#34;,
      &amp;#34;payload&amp;#34;: {
        &amp;#34;state&amp;#34;: &amp;#34;alerting&amp;#34;,
        &amp;#34;title&amp;#34;: &amp;#34;[Alerting] Test notification&amp;#34;,
        &amp;#34;ruleId&amp;#34;: 0,
        &amp;#34;message&amp;#34;: &amp;#34;Someone is testing the alert notification within Grafana.&amp;#34;,
        &amp;#34;ruleUrl&amp;#34;: &amp;#34;{{API_URL}}/&amp;#34;,
        &amp;#34;ruleName&amp;#34;: &amp;#34;Test notification&amp;#34;,
        &amp;#34;evalMatches&amp;#34;: [
          {
            &amp;#34;tags&amp;#34;: null,
            &amp;#34;value&amp;#34;: 100,
            &amp;#34;metric&amp;#34;: &amp;#34;High value&amp;#34;
          },
          {
            &amp;#34;tags&amp;#34;: null,
            &amp;#34;value&amp;#34;: 200,
            &amp;#34;metric&amp;#34;: &amp;#34;Higher Value&amp;#34;
          }
        ]
      }
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameters should be provided as &lt;code&gt;GET&lt;/code&gt; arguments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alert_group_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;search&lt;/code&gt;—string-based inclusion search by alert payload&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/alerts/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="list-alerts">List Alerts&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/alerts/&amp;#34; \
--request GET \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Escalation Chains HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/escalation_chains/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/escalation_chains/</guid><content><![CDATA[&lt;h1 id=&#34;create-an-escalation-chain&#34;&gt;Create an escalation chain&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_chains/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;name&amp;#34;: &amp;#34;example-chain&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;FWDL7M6N6I9HE&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;example-chain&amp;#34;,
  &amp;#34;team_id&amp;#34;: null
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;name&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Name of the escalation chain&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;team_id&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;no&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of the team&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/escalation_chains/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-an-escalation-chain&#34;&gt;Get an escalation chain&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_chains/F5JU6KJET33FE/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;default&amp;#34;,
  &amp;#34;team_id&amp;#34;: null
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/escalation_chains/&amp;lt;ESCALATION_CHAIN_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-escalation-chains&#34;&gt;List escalation chains&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_chains/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 2,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
      &amp;#34;name&amp;#34;: &amp;#34;default&amp;#34;,
      &amp;#34;team_id&amp;#34;: null
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/escalation_chains/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-an-escalation-chain&#34;&gt;Delete an escalation chain&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_chains/F5JU6KJET33FE/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/escalation_chains/&amp;lt;ESCALATION_CHAIN_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="create-an-escalation-chain">Create an escalation chain&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/escalation_chains/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;name&amp;#34;: &amp;#34;example-chain&amp;#34;
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Escalation Policies HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/escalation_policies/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/escalation_policies/</guid><content><![CDATA[&lt;h1 id=&#34;create-an-escalation-policy&#34;&gt;Create an escalation policy&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_policies/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;,
      &amp;#34;duration&amp;#34;: 60
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;E3GA6SJETWWJS&amp;#34;,
  &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
  &amp;#34;position&amp;#34;: 0,
  &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;,
  &amp;#34;duration&amp;#34;: 60
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;escalation_chain_id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Each escalation policy is assigned to a specific escalation chain.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;position&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Escalation policies execute one after another starting from &lt;code&gt;position=0&lt;/code&gt;. &lt;code&gt;Position=-1&lt;/code&gt; 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 in the list.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;One of: &lt;code&gt;wait&lt;/code&gt;, &lt;code&gt;notify_persons&lt;/code&gt;, &lt;code&gt;notify_person_next_each_time&lt;/code&gt;, &lt;code&gt;notify_on_call_from_schedule&lt;/code&gt;, &lt;code&gt;notify_user_group&lt;/code&gt;, &lt;code&gt;trigger_webhook&lt;/code&gt;, &lt;code&gt;resolve&lt;/code&gt;, &lt;code&gt;notify_whole_channel&lt;/code&gt;, &lt;code&gt;notify_if_time_from_to&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;important&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Default is &lt;code&gt;false&lt;/code&gt;. Will assign &amp;ldquo;important&amp;rdquo; to personal notification rules if &lt;code&gt;true&lt;/code&gt;. This can be used to distinguish alerts on which you want to be notified immediately by phone. Applicable for types &lt;code&gt;notify_persons&lt;/code&gt;, &lt;code&gt;notify_team_members&lt;/code&gt;, &lt;code&gt;notify_on_call_from_schedule&lt;/code&gt;, and &lt;code&gt;notify_user_group&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;wait&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The duration, in seconds, when type &lt;code&gt;wait&lt;/code&gt; is chosen. Valid values are: &lt;code&gt;60&lt;/code&gt;, &lt;code&gt;300&lt;/code&gt;, &lt;code&gt;900&lt;/code&gt;, &lt;code&gt;1800&lt;/code&gt;, &lt;code&gt;3600&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;action_to_trigger&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;trigger_webhook&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of a webhook.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;group_to_notify&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;notify_user_group&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of a &lt;code&gt;User Group&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;persons_to_notify&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;notify_persons&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of user IDs.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;persons_to_notify_next_each_time&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;notify_person_next_each_time&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of user IDs.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;notify_on_call _from_schedule&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;notify_on_call_from_schedule&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of a Schedule.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;notify_if_time_from&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;notify_if_time_from_to&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;UTC time represents the beginning of the time period, for example &lt;code&gt;09:00:00Z&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;notify_if_time_to&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;notify_if_time_from_to&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;UTC time represents the end of the time period, for example &lt;code&gt;18:00:00Z&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team_to_notify&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;notify_team_members&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of a team.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/escalation_policies/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-an-escalation-policy&#34;&gt;Get an escalation policy&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_policies/E3GA6SJETWWJS/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;E3GA6SJETWWJS&amp;#34;,
  &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
  &amp;#34;position&amp;#34;: 0,
  &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;,
  &amp;#34;duration&amp;#34;: 60
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h1 id=&#34;update-an-escalation-policy&#34;&gt;Update an escalation policy&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_policies/E3GA6SJETWWJS/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
    &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;,
    &amp;#34;duration&amp;#34;: 300,
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;E3GA6SJETWWJS&amp;#34;,
  &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
  &amp;#34;position&amp;#34;: 0,
  &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;,
  &amp;#34;duration&amp;#34;: 300
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PUT {{API_URL}}/api/v1/on_call_shifts/&amp;lt;ON_CALL_SHIFT_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/escalation_policies/&amp;lt;ESCALATION_POLICY_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-escalation-policies&#34;&gt;List escalation policies&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_policies/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 2,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;E3GA6SJETWWJS&amp;#34;,
      &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
      &amp;#34;position&amp;#34;: 0,
      &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;,
      &amp;#34;duration&amp;#34;: 60
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;E5JJTU52M5YM4&amp;#34;,
      &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
      &amp;#34;position&amp;#34;: 1,
      &amp;#34;type&amp;#34;: &amp;#34;notify_person_next_each_time&amp;#34;,
      &amp;#34;persons_to_notify_next_each_time&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;]
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameter should be provided as a &lt;code&gt;GET&lt;/code&gt; argument:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;escalation_chain_id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/escalation_policies/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-an-escalation-policy&#34;&gt;Delete an escalation policy&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/escalation_policies/E3GA6SJETWWJS/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/escalation_policies/&amp;lt;ESCALATION_POLICY_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="create-an-escalation-policy">Create an escalation policy&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/escalation_policies/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
&amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;,
&amp;#34;duration&amp;#34;: 60
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Alert groups HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/alertgroups/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/alertgroups/</guid><content><![CDATA[&lt;h1 id=&#34;list-alert-groups&#34;&gt;List alert groups&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alert_groups/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 1,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
      &amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
      &amp;#34;route_id&amp;#34;: &amp;#34;RIYGUJXCPFHXY&amp;#34;,
      &amp;#34;alerts_count&amp;#34;: 3,
      &amp;#34;state&amp;#34;: &amp;#34;resolved&amp;#34;,
      &amp;#34;created_at&amp;#34;: &amp;#34;2020-05-19T12:37:01.430444Z&amp;#34;,
      &amp;#34;resolved_at&amp;#34;: &amp;#34;2020-05-19T13:37:01.429805Z&amp;#34;,
      &amp;#34;acknowledged_at&amp;#34;: null,
      &amp;#34;acknowledged_by&amp;#34;: null,
      &amp;#34;resolved_by&amp;#34;: &amp;#34;UCGEIXI1MR1NZ&amp;#34;,
      &amp;#34;title&amp;#34;: &amp;#34;Memory above 90% threshold&amp;#34;,
      &amp;#34;permalinks&amp;#34;: {
        &amp;#34;slack&amp;#34;: &amp;#34;https://ghostbusters.slack.com/archives/C1H9RESGA/p135854651500008&amp;#34;,
        &amp;#34;telegram&amp;#34;: &amp;#34;https://t.me/c/5354/1234?thread=1234&amp;#34;
      },
      &amp;#34;silenced_at&amp;#34;: &amp;#34;2020-05-19T13:37:01.429805Z&amp;#34;,
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;These available filter parameters should be provided as &lt;code&gt;GET&lt;/code&gt; arguments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;route_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;integration_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;state&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/alert_groups/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;alert-group-details&#34;&gt;Alert group details&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alert_groups/I68T24C13IFW1&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/alert_groups/&amp;lt;ALERT_GROUP_ID&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;acknowledge-an-alert-group&#34;&gt;Acknowledge an alert group&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alert_groups/I68T24C13IFW1/acknowledge&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/alert_groups/&amp;lt;ALERT_GROUP_ID&amp;gt;/acknowledge&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;unacknowledge-an-alert-group&#34;&gt;Unacknowledge an alert group&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alert_groups/I68T24C13IFW1/unacknowledge&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/alert_groups/&amp;lt;ALERT_GROUP_ID&amp;gt;/unacknowledge&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;resolve-an-alert-group&#34;&gt;Resolve an alert group&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alert_groups/I68T24C13IFW1/resolve&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/alert_groups/&amp;lt;ALERT_GROUP_ID&amp;gt;/resolve&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;unresolve-an-alert-group&#34;&gt;Unresolve an alert group&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alert_groups/I68T24C13IFW1/unresolve&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/alert_groups/&amp;lt;ALERT_GROUP_ID&amp;gt;/unresolve&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-an-alert-group&#34;&gt;Delete an alert group&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/alert_groups/I68T24C13IFW1/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;mode&amp;#34;: &amp;#34;wipe&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mode&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The default value for this parameter is &lt;code&gt;wipe&lt;/code&gt;. Using &lt;code&gt;wipe&lt;/code&gt; will delete the content of the alert group but keep the metadata, which is helpful if you&amp;rsquo;ve sent sensitive information to OnCall. On the other hand, passing &lt;code&gt;delete&lt;/code&gt; will fully erase the alert group and its metadata, as well as delete related messages in Slack and other platforms.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; &lt;code&gt;DELETE&lt;/code&gt; can take a few moments to delete alert groups because Grafana OnCall interacts with 3rd party APIs
such as Slack. Please check objects using &lt;code&gt;GET&lt;/code&gt; to be sure the data is removed.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/alert_groups/&amp;lt;ALERT_GROUP_ID&amp;gt;&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="list-alert-groups">List alert groups&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/alert_groups/&amp;#34; \
--request GET \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Integrations HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/integrations/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/integrations/</guid><content><![CDATA[&lt;h1 id=&#34;create-an-integration&#34;&gt;Create an integration&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/integrations/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;type&amp;#34;:&amp;#34;grafana&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Grafana :blush:&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;link&amp;#34;: &amp;#34;{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/&amp;#34;,
  &amp;#34;inbound_email&amp;#34;: null,
  &amp;#34;type&amp;#34;: &amp;#34;grafana&amp;#34;,
  &amp;#34;default_route&amp;#34;: {
    &amp;#34;id&amp;#34;: &amp;#34;RVBE4RKQSCGJ2&amp;#34;,
    &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
    &amp;#34;slack&amp;#34;: {
      &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
    }
  },
  &amp;#34;templates&amp;#34;: {
    &amp;#34;grouping_key&amp;#34;: null,
    &amp;#34;resolve_signal&amp;#34;: null,
    &amp;#34;acknowledge_signal&amp;#34;: null,
    &amp;#34;source_link&amp;#34;: null,
    &amp;#34;slack&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;web&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;sms&amp;#34;: {
      &amp;#34;title&amp;#34;: null
    },
    &amp;#34;phone_call&amp;#34;: {
      &amp;#34;title&amp;#34;: null
    },
    &amp;#34;telegram&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;email&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null
    },
    &amp;#34;msteams&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Integrations are sources of alerts and alert groups for Grafana OnCall.
For example, to learn how to integrate Grafana OnCall with Alertmanager refer to &lt;a href=&#34;/docs/oncall/v1.6.x/integrations/alertmanager/&#34;&gt;Alertmanager&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/integrations/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-integration&#34;&gt;Get integration&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Grafana :blush:&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;link&amp;#34;: &amp;#34;{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/&amp;#34;,
  &amp;#34;inbound_email&amp;#34;: null,
  &amp;#34;type&amp;#34;: &amp;#34;grafana&amp;#34;,
  &amp;#34;default_route&amp;#34;: {
    &amp;#34;id&amp;#34;: &amp;#34;RVBE4RKQSCGJ2&amp;#34;,
    &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
    &amp;#34;slack&amp;#34;: {
      &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
    }
  },
  &amp;#34;templates&amp;#34;: {
    &amp;#34;grouping_key&amp;#34;: null,
    &amp;#34;resolve_signal&amp;#34;: null,
    &amp;#34;acknowledge_signal&amp;#34;: null,
    &amp;#34;source_link&amp;#34;: null,
    &amp;#34;slack&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;web&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;sms&amp;#34;: {
      &amp;#34;title&amp;#34;: null
    },
    &amp;#34;phone_call&amp;#34;: {
      &amp;#34;title&amp;#34;: null
    },
    &amp;#34;telegram&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;email&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null
    },
    &amp;#34;msteams&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This endpoint retrieves an integration. Integrations are sources of alerts and alert groups for Grafana OnCall.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/integrations/&amp;lt;INTEGRATION_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-integrations&#34;&gt;List integrations&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/integrations/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 1,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
      &amp;#34;name&amp;#34;: &amp;#34;Grafana :blush:&amp;#34;,
      &amp;#34;team_id&amp;#34;: null,
      &amp;#34;link&amp;#34;: &amp;#34;{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/&amp;#34;,
      &amp;#34;inbound_email&amp;#34;: null,
      &amp;#34;type&amp;#34;: &amp;#34;grafana&amp;#34;,
      &amp;#34;default_route&amp;#34;: {
        &amp;#34;id&amp;#34;: &amp;#34;RVBE4RKQSCGJ2&amp;#34;,
        &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
        &amp;#34;slack&amp;#34;: {
          &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
        }
      },
      &amp;#34;templates&amp;#34;: {
        &amp;#34;grouping_key&amp;#34;: null,
        &amp;#34;resolve_signal&amp;#34;: null,
        &amp;#34;acknowledge_signal&amp;#34;: null,
        &amp;#34;source_link&amp;#34;: null,
        &amp;#34;slack&amp;#34;: {
          &amp;#34;title&amp;#34;: null,
          &amp;#34;message&amp;#34;: null,
          &amp;#34;image_url&amp;#34;: null
        },
        &amp;#34;web&amp;#34;: {
          &amp;#34;title&amp;#34;: null,
          &amp;#34;message&amp;#34;: null,
          &amp;#34;image_url&amp;#34;: null
        },
        &amp;#34;sms&amp;#34;: {
          &amp;#34;title&amp;#34;: null
        },
        &amp;#34;phone_call&amp;#34;: {
          &amp;#34;title&amp;#34;: null
        },
        &amp;#34;telegram&amp;#34;: {
          &amp;#34;title&amp;#34;: null,
          &amp;#34;message&amp;#34;: null,
          &amp;#34;image_url&amp;#34;: null
        },
        &amp;#34;email&amp;#34;: {
          &amp;#34;title&amp;#34;: null,
          &amp;#34;message&amp;#34;: null
        },
        &amp;#34;msteams&amp;#34;: {
          &amp;#34;title&amp;#34;: null,
          &amp;#34;message&amp;#34;: null,
          &amp;#34;image_url&amp;#34;: null
        }
      }
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/integrations/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;update-integration&#34;&gt;Update integration&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;templates&amp;#34;: {
          &amp;#34;grouping_key&amp;#34;: null,
          &amp;#34;resolve_signal&amp;#34;: null,
          &amp;#34;slack&amp;#34;: {
             &amp;#34;title&amp;#34;: null,
             &amp;#34;message&amp;#34;: null,
             &amp;#34;image_url&amp;#34;: null
          }
      }
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Grafana :blush:&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;link&amp;#34;: &amp;#34;{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/&amp;#34;,
  &amp;#34;inbound_email&amp;#34;: null,
  &amp;#34;type&amp;#34;: &amp;#34;grafana&amp;#34;,
  &amp;#34;default_route&amp;#34;: {
    &amp;#34;id&amp;#34;: &amp;#34;RVBE4RKQSCGJ2&amp;#34;,
    &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
    &amp;#34;slack&amp;#34;: {
      &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
    }
  },
  &amp;#34;templates&amp;#34;: {
    &amp;#34;grouping_key&amp;#34;: null,
    &amp;#34;resolve_signal&amp;#34;: null,
    &amp;#34;slack&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;web&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    },
    &amp;#34;email&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null
    },
    &amp;#34;sms&amp;#34;: {
      &amp;#34;title&amp;#34;: null
    },
    &amp;#34;phone_call&amp;#34;: {
      &amp;#34;title&amp;#34;: null
    },
    &amp;#34;telegram&amp;#34;: {
      &amp;#34;title&amp;#34;: null,
      &amp;#34;message&amp;#34;: null,
      &amp;#34;image_url&amp;#34;: null
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PUT {{API_URL}}/api/v1/integrations/&amp;lt;INTEGRATION_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-integration&#34;&gt;Delete integration&lt;/h1&gt;
&lt;p&gt;Deleted integrations will stop recording new alerts from monitoring. Integration removal won&amp;rsquo;t trigger removal of
related alert groups or alerts.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/integrations/&amp;lt;INTEGRATION_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="create-an-integration">Create an integration&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/integrations/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;type&amp;#34;:&amp;#34;grafana&amp;#34;
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>OnCall shifts HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/on_call_shifts/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/on_call_shifts/</guid><content><![CDATA[&lt;h1 id=&#34;create-an-oncall-shift&#34;&gt;Create an OnCall shift&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/on_call_shifts/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;name&amp;#34;: &amp;#34;Demo single event&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;single_event&amp;#34;,
      &amp;#34;team_id&amp;#34;: null,
      &amp;#34;time_zone&amp;#34;: null,
      &amp;#34;level&amp;#34;: 0,
      &amp;#34;start&amp;#34;: &amp;#34;2020-09-10T08:00:00&amp;#34;,
      &amp;#34;duration&amp;#34;: 10800,
      &amp;#34;users&amp;#34;: [
          &amp;#34;U4DNY931HHJS5&amp;#34;
      ]
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;OH3V5FYQEYJ6M&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Demo single event&amp;#34;,
  &amp;#34;type&amp;#34;: &amp;#34;single_event&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;time_zone&amp;#34;: null,
  &amp;#34;level&amp;#34;: 0,
  &amp;#34;start&amp;#34;: &amp;#34;2020-09-10T08:00:00&amp;#34;,
  &amp;#34;duration&amp;#34;: 10800,
  &amp;#34;users&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Unique&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;On-call shift name.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;One of: &lt;code&gt;single_event&lt;/code&gt;, &lt;code&gt;recurrent_event&lt;/code&gt;, &lt;code&gt;rolling_users&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team_id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;ID of the team.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;time_zone&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;On-call shift time zone. Default is local schedule time zone. &lt;strong&gt;This field will override the schedule time zone if changed&lt;/strong&gt;. For more information refer to &lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_tz_database_time_zones&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;time zones&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;level&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Priority level. The higher the value, the higher the priority. If two events overlap in one schedule, Grafana OnCall will choose the event with higher level. For example: Alex is on-call from 8AM till 11AM with level 1, Bob is on-call from 9AM till 11AM with level 2. At 10AM Grafana OnCall will notify Bob. At 8AM OnCall will notify Alex.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;start&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start time of the on-call shift. This parameter takes a date format as &lt;code&gt;yyyy-MM-dd&#39;T&#39;HH:mm:ss&lt;/code&gt; (for example &amp;ldquo;2020-09-05T08:00:00&amp;rdquo;).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Duration of the event.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;frequency&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;recurrent_event&lt;/code&gt; or &lt;code&gt;rolling_users&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;One of: &lt;code&gt;hourly&lt;/code&gt;, &lt;code&gt;daily&lt;/code&gt;, &lt;code&gt;weekly&lt;/code&gt;, &lt;code&gt;monthly&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;interval&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;This parameter takes a positive integer that represents the intervals that the recurrence rule repeats. If &lt;code&gt;frequency&lt;/code&gt; is set, the default assumed value for this will be &lt;code&gt;1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;until&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;When the recurrence rule ends (endless if None). This parameter takes a date format as &lt;code&gt;yyyy-MM-dd&#39;T&#39;HH:mm:ss&lt;/code&gt; (for example &amp;ldquo;2020-09-05T08:00:00&amp;rdquo;).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;week_start&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start day of the week in iCal format. One of: &lt;code&gt;SU&lt;/code&gt; (Sunday), &lt;code&gt;MO&lt;/code&gt; (Monday), &lt;code&gt;TU&lt;/code&gt; (Tuesday), &lt;code&gt;WE&lt;/code&gt; (Wednesday), &lt;code&gt;TH&lt;/code&gt; (Thursday), &lt;code&gt;FR&lt;/code&gt; (Friday), &lt;code&gt;SA&lt;/code&gt; (Saturday). Default: &lt;code&gt;SU&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;by_day&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of days in iCal format. Valid values are: &lt;code&gt;SU&lt;/code&gt;, &lt;code&gt;MO&lt;/code&gt;, &lt;code&gt;TU&lt;/code&gt;, &lt;code&gt;WE&lt;/code&gt;, &lt;code&gt;TH&lt;/code&gt;, &lt;code&gt;FR&lt;/code&gt;, &lt;code&gt;SA&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;by_month&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of months. Valid values are &lt;code&gt;1&lt;/code&gt; to &lt;code&gt;12&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;by_monthday&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of days of the month. Valid values are &lt;code&gt;1&lt;/code&gt; to &lt;code&gt;31&lt;/code&gt; or &lt;code&gt;-31&lt;/code&gt; to &lt;code&gt;-1&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;users&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of on-call users.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;rolling_users&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of lists with on-call users (for &lt;code&gt;rolling_users&lt;/code&gt; event type). Grafana OnCall will iterate over lists of users for every time frame specified in &lt;code&gt;frequency&lt;/code&gt;. For example: there are two lists of users in &lt;code&gt;rolling_users&lt;/code&gt; : [[Alex, Bob], [Alice]] and &lt;code&gt;frequency&lt;/code&gt; = &lt;code&gt;daily&lt;/code&gt; . This means that the first day Alex and Bob will be notified. The next day: Alice. The day after: Alex and Bob again and so on.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;start_rotation_from_user_index&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Index of the list of users in &lt;code&gt;rolling_users&lt;/code&gt;, from which on-call rotation starts. By default, the start index is &lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;For more information about recurrence rules, refer to &lt;a href=&#34;https://tools.ietf.org/html/rfc5545#section-3.3.10&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RFC 5545&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/on_call_shifts/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-oncall-shifts&#34;&gt;Get OnCall shifts&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/on_call_shifts/OH3V5FYQEYJ6M/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;OH3V5FYQEYJ6M&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Demo single event&amp;#34;,
  &amp;#34;type&amp;#34;: &amp;#34;single_event&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;time_zone&amp;#34;: null,
  &amp;#34;level&amp;#34;: 0,
  &amp;#34;start&amp;#34;: &amp;#34;2020-09-10T08:00:00&amp;#34;,
  &amp;#34;duration&amp;#34;: 10800,
  &amp;#34;users&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/on_call_shifts/&amp;lt;ON_CALL_SHIFT_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-oncall-shifts&#34;&gt;List OnCall shifts&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/on_call_shifts/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 2,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;OH3V5FYQEYJ6M&amp;#34;,
      &amp;#34;name&amp;#34;: &amp;#34;Demo single event&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;single_event&amp;#34;,
      &amp;#34;team_id&amp;#34;: null,
      &amp;#34;time_zone&amp;#34;: null,
      &amp;#34;level&amp;#34;: 0,
      &amp;#34;start&amp;#34;: &amp;#34;2020-09-10T08:00:00&amp;#34;,
      &amp;#34;duration&amp;#34;: 10800,
      &amp;#34;users&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;]
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;O9WTH7CKM3KZW&amp;#34;,
      &amp;#34;name&amp;#34;: &amp;#34;Demo recurrent event&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;recurrent_event&amp;#34;,
      &amp;#34;team_id&amp;#34;: null,
      &amp;#34;time_zone&amp;#34;: null,
      &amp;#34;level&amp;#34;: 0,
      &amp;#34;start&amp;#34;: &amp;#34;2020-09-10T16:00:00&amp;#34;,
      &amp;#34;duration&amp;#34;: 10800,
      &amp;#34;frequency&amp;#34;: &amp;#34;weekly&amp;#34;,
      &amp;#34;interval&amp;#34;: 2,
      &amp;#34;week_start&amp;#34;: &amp;#34;SU&amp;#34;,
      &amp;#34;by_day&amp;#34;: [&amp;#34;MO&amp;#34;, &amp;#34;WE&amp;#34;, &amp;#34;FR&amp;#34;],
      &amp;#34;by_month&amp;#34;: null,
      &amp;#34;by_monthday&amp;#34;: null,
      &amp;#34;users&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;]
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameters should be provided as &lt;code&gt;GET&lt;/code&gt; arguments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; (Exact match)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;schedule_id&lt;/code&gt; (Exact match)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/on_call_shifts/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;update-oncall-shift&#34;&gt;Update OnCall shift&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/on_call_shifts/OH3V5FYQEYJ6M/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
    &amp;#34;name&amp;#34;: &amp;#34;Demo single event&amp;#34;,
    &amp;#34;type&amp;#34;: &amp;#34;single_event&amp;#34;,
    &amp;#34;level&amp;#34;: 0,
    &amp;#34;start&amp;#34;: &amp;#34;2020-09-10T08:00:00&amp;#34;,
    &amp;#34;duration&amp;#34;: 10800,
    &amp;#34;users&amp;#34;: [
        &amp;#34;U4DNY931HHJS5&amp;#34;
    ]
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;OH3V5FYQEYJ6M&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Demo single event&amp;#34;,
  &amp;#34;type&amp;#34;: &amp;#34;single_event&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;time_zone&amp;#34;: null,
  &amp;#34;level&amp;#34;: 0,
  &amp;#34;start&amp;#34;: &amp;#34;2020-09-10T08:00:00&amp;#34;,
  &amp;#34;duration&amp;#34;: 10800,
  &amp;#34;users&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PUT {{API_URL}}/api/v1/on_call_shifts/&amp;lt;ON_CALL_SHIFT_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-oncall-shift&#34;&gt;Delete OnCall shift&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/on_call_shifts/OH3V5FYQEYJ6M/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/on_call_shifts/&amp;lt;ON_CALL_SHIFT_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="create-an-oncall-shift">Create an OnCall shift&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/on_call_shifts/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;name&amp;#34;: &amp;#34;Demo single event&amp;#34;,
&amp;#34;type&amp;#34;: &amp;#34;single_event&amp;#34;,
&amp;#34;team_id&amp;#34;: null,
&amp;#34;time_zone&amp;#34;: null,
&amp;#34;level&amp;#34;: 0,
&amp;#34;start&amp;#34;: &amp;#34;2020-09-10T08:00:00&amp;#34;,
&amp;#34;duration&amp;#34;: 10800,
&amp;#34;users&amp;#34;: [
&amp;#34;U4DNY931HHJS5&amp;#34;
]
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Outgoing Webhooks HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/outgoing_webhooks/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/outgoing_webhooks/</guid><content><![CDATA[&lt;h1 id=&#34;outgoing-webhooks&#34;&gt;Outgoing Webhooks&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;⚠️ A note about actions: Before version &lt;strong&gt;v1.3.11&lt;/strong&gt; webhooks existed as actions within the API, the /actions
endpoint remains available and is compatible with previous callers but under the hood it will interact with the
new webhooks objects.  It is recommended to use the /webhooks endpoint going forward which has more features.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;For more details about specific fields of a webhook, refer to &lt;a href=&#34;/docs/oncall/v1.6.x/configure/outgoing-webhooks/&#34;&gt;Outgoing webhooks&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;list-webhooks&#34;&gt;List webhooks&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/webhooks/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;{{WEBHOOK_UID}}&amp;#34;,
      &amp;#34;name&amp;#34;: &amp;#34;Demo Webhook&amp;#34;,
      &amp;#34;is_webhook_enabled&amp;#34;: true,
      &amp;#34;team&amp;#34;: null,
      &amp;#34;data&amp;#34;: &amp;#34;{\&amp;#34;labels\&amp;#34; : {{ alert_payload.commonLabels | tojson()}}}&amp;#34;,
      &amp;#34;username&amp;#34;: null,
      &amp;#34;password&amp;#34;: null,
      &amp;#34;authorization_header&amp;#34;: &amp;#34;****************&amp;#34;,
      &amp;#34;trigger_template&amp;#34;: null,
      &amp;#34;headers&amp;#34;: null,
      &amp;#34;url&amp;#34;: &amp;#34;https://example.com&amp;#34;,
      &amp;#34;forward_all&amp;#34;: false,
      &amp;#34;http_method&amp;#34;: &amp;#34;POST&amp;#34;,
      &amp;#34;trigger_type&amp;#34;: &amp;#34;acknowledge&amp;#34;,
      &amp;#34;integration_filter&amp;#34;: [
        &amp;#34;CRV8A5MXC751A&amp;#34;
      ]
    }
  ],
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;count&amp;#34;: 1,
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;get-webhook&#34;&gt;Get webhook&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/webhooks/{{WEBHOOK_UID}}/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;{{WEBHOOK_UID}}&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Demo Webhook&amp;#34;,
  &amp;#34;is_webhook_enabled&amp;#34;: true,
  &amp;#34;team&amp;#34;: null,
  &amp;#34;data&amp;#34;: &amp;#34;{\&amp;#34;labels\&amp;#34; : {{ alert_payload.commonLabels | tojson()}}}&amp;#34;,
  &amp;#34;username&amp;#34;: null,
  &amp;#34;password&amp;#34;: null,
  &amp;#34;authorization_header&amp;#34;: &amp;#34;****************&amp;#34;,
  &amp;#34;trigger_template&amp;#34;: null,
  &amp;#34;headers&amp;#34;: null,
  &amp;#34;url&amp;#34;: &amp;#34;https://example.com&amp;#34;,
  &amp;#34;forward_all&amp;#34;: false,
  &amp;#34;http_method&amp;#34;: &amp;#34;POST&amp;#34;,
  &amp;#34;trigger_type&amp;#34;: &amp;#34;acknowledge&amp;#34;,
  &amp;#34;integration_filter&amp;#34;: [
    &amp;#34;CRV8A5MXC751A&amp;#34;
  ]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;create-webhook&#34;&gt;Create webhook&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/webhooks/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
    &amp;#34;name&amp;#34;: &amp;#34;New Webhook&amp;#34;,
    &amp;#34;url&amp;#34;: &amp;#34;https://example.com&amp;#34;,
    &amp;#34;http_method&amp;#34;: &amp;#34;POST&amp;#34;,
    &amp;#34;trigger_type&amp;#34; : &amp;#34;resolve&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;trigger-types&#34;&gt;Trigger Types&lt;/h3&gt;
&lt;p&gt;For more detail, refer to &lt;a href=&#34;/docs/oncall/v1.6.x/configure/outgoing-webhooks/#event-types&#34;&gt;Event types&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;escalation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alert group created&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;acknowledge&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;resolve&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;silence&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unsilence&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unresolve&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unacknowledge&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status change&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;http-methods&#34;&gt;HTTP Methods&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PUT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DELETE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OPTIONS&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;{{WEBHOOK_UID}}&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;New Webhook&amp;#34;,
  &amp;#34;is_webhook_enabled&amp;#34;: true,
  &amp;#34;team&amp;#34;: null,
  &amp;#34;data&amp;#34;: null,
  &amp;#34;username&amp;#34;: null,
  &amp;#34;password&amp;#34;: null,
  &amp;#34;authorization_header&amp;#34;: null,
  &amp;#34;trigger_template&amp;#34;: null,
  &amp;#34;headers&amp;#34;: null,
  &amp;#34;url&amp;#34;: &amp;#34;https://example.com&amp;#34;,
  &amp;#34;forward_all&amp;#34;: true,
  &amp;#34;http_method&amp;#34;: &amp;#34;POST&amp;#34;,
  &amp;#34;trigger_type&amp;#34;: &amp;#34;resolve&amp;#34;,
  &amp;#34;integration_filter&amp;#34;: null
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;update-webhook&#34;&gt;Update webhook&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/webhooks/{{WEBHOOK_UID}}/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
    &amp;#34;is_webhook_enabled&amp;#34;: false
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;{{WEBHOOK_UID}}&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;New Webhook&amp;#34;,
  &amp;#34;is_webhook_enabled&amp;#34;: false,
  &amp;#34;team&amp;#34;: null,
  &amp;#34;data&amp;#34;: null,
  &amp;#34;username&amp;#34;: null,
  &amp;#34;password&amp;#34;: null,
  &amp;#34;authorization_header&amp;#34;: null,
  &amp;#34;trigger_template&amp;#34;: null,
  &amp;#34;headers&amp;#34;: null,
  &amp;#34;url&amp;#34;: &amp;#34;https://example.com&amp;#34;,
  &amp;#34;forward_all&amp;#34;: true,
  &amp;#34;http_method&amp;#34;: &amp;#34;POST&amp;#34;,
  &amp;#34;trigger_type&amp;#34;: &amp;#34;resolve&amp;#34;,
  &amp;#34;integration_filter&amp;#34;: null
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;delete-webhook&#34;&gt;Delete webhook&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/webhooks/{{WEBHOOK_UID}}/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;get-webhook-responses&#34;&gt;Get webhook responses&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/webhooks/{{WEBHOOK_UID}}/responses&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;timestamp&amp;#34;: &amp;#34;2023-08-18T16:38:23.106015Z&amp;#34;,
      &amp;#34;url&amp;#34;: &amp;#34;https://example.com&amp;#34;,
      &amp;#34;request_trigger&amp;#34;: &amp;#34;&amp;#34;,
      &amp;#34;request_headers&amp;#34;: &amp;#34;{\&amp;#34;Authorization\&amp;#34;: \&amp;#34;****************\&amp;#34;}&amp;#34;,
      &amp;#34;request_data&amp;#34;: &amp;#34;{\&amp;#34;labels\&amp;#34;: {\&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;, \&amp;#34;job\&amp;#34;: \&amp;#34;node\&amp;#34;, \&amp;#34;severity\&amp;#34;: \&amp;#34;critical\&amp;#34;}}&amp;#34;,
      &amp;#34;status_code&amp;#34;: 200,
      &amp;#34;content&amp;#34;: &amp;#34;&amp;#34;,
      &amp;#34;event_data&amp;#34;: &amp;#34;{\&amp;#34;event\&amp;#34;: {\&amp;#34;type\&amp;#34;: \&amp;#34;acknowledge\&amp;#34;, \&amp;#34;time\&amp;#34;: \&amp;#34;2023-08-18T16:38:21.442981&amp;#43;00:00\&amp;#34;}, \&amp;#34;user\&amp;#34;: {\&amp;#34;id\&amp;#34;: \&amp;#34;UK49JJNPZMFLJ\&amp;#34;, \&amp;#34;username\&amp;#34;: \&amp;#34;oncall\&amp;#34;, \&amp;#34;email\&amp;#34;: \&amp;#34;admin@localhost\&amp;#34;}, \&amp;#34;alert_group\&amp;#34;: {\&amp;#34;id\&amp;#34;: \&amp;#34;IZQERPWKWCGH1\&amp;#34;, \&amp;#34;integration_id\&amp;#34;: \&amp;#34;CRV8A5MXC751A\&amp;#34;, \&amp;#34;route_id\&amp;#34;: \&amp;#34;RWNCT6C77M3WM\&amp;#34;, \&amp;#34;alerts_count\&amp;#34;: 1, \&amp;#34;state\&amp;#34;: \&amp;#34;acknowledged\&amp;#34;, \&amp;#34;created_at\&amp;#34;: \&amp;#34;2023-08-18T16:34:27.678406Z\&amp;#34;, \&amp;#34;resolved_at\&amp;#34;: null, \&amp;#34;acknowledged_at\&amp;#34;: \&amp;#34;2023-08-18T16:38:21.442981Z\&amp;#34;, \&amp;#34;title\&amp;#34;: \&amp;#34;[firing:2] InstanceDown \&amp;#34;, \&amp;#34;permalinks\&amp;#34;: {\&amp;#34;slack\&amp;#34;: null, \&amp;#34;telegram\&amp;#34;: null, \&amp;#34;web\&amp;#34;: \&amp;#34;http://localhost:3000/a/grafana-oncall-app/alert-groups/IZQERPWKWCGH1\&amp;#34;}}, \&amp;#34;alert_group_id\&amp;#34;: \&amp;#34;IZQERPWKWCGH1\&amp;#34;, \&amp;#34;alert_payload\&amp;#34;: {\&amp;#34;alerts\&amp;#34;: [{\&amp;#34;endsAt\&amp;#34;: \&amp;#34;0001-01-01T00:00:00Z\&amp;#34;, \&amp;#34;labels\&amp;#34;: {\&amp;#34;job\&amp;#34;: \&amp;#34;node\&amp;#34;, \&amp;#34;group\&amp;#34;: \&amp;#34;production\&amp;#34;, \&amp;#34;instance\&amp;#34;: \&amp;#34;localhost:8081\&amp;#34;, \&amp;#34;severity\&amp;#34;: \&amp;#34;critical\&amp;#34;, \&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;status\&amp;#34;: \&amp;#34;firing\&amp;#34;, \&amp;#34;startsAt\&amp;#34;: \&amp;#34;2023-06-12T08:24:38.326Z\&amp;#34;, \&amp;#34;annotations\&amp;#34;: {\&amp;#34;title\&amp;#34;: \&amp;#34;Instance localhost:8081 down\&amp;#34;, \&amp;#34;description\&amp;#34;: \&amp;#34;localhost:8081 of job node has been down for more than 1 minute.\&amp;#34;}, \&amp;#34;fingerprint\&amp;#34;: \&amp;#34;f404ecabc8dd5cd7\&amp;#34;, \&amp;#34;generatorURL\&amp;#34;: \&amp;#34;\&amp;#34;}, {\&amp;#34;endsAt\&amp;#34;: \&amp;#34;0001-01-01T00:00:00Z\&amp;#34;, \&amp;#34;labels\&amp;#34;: {\&amp;#34;job\&amp;#34;: \&amp;#34;node\&amp;#34;, \&amp;#34;group\&amp;#34;: \&amp;#34;canary\&amp;#34;, \&amp;#34;instance\&amp;#34;: \&amp;#34;localhost:8082\&amp;#34;, \&amp;#34;severity\&amp;#34;: \&amp;#34;critical\&amp;#34;, \&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;status\&amp;#34;: \&amp;#34;firing\&amp;#34;, \&amp;#34;startsAt\&amp;#34;: \&amp;#34;2023-06-12T08:24:38.326Z\&amp;#34;, \&amp;#34;annotations\&amp;#34;: {\&amp;#34;title\&amp;#34;: \&amp;#34;Instance localhost:8082 down\&amp;#34;, \&amp;#34;description\&amp;#34;: \&amp;#34;localhost:8082 of job node has been down for more than 1 minute.\&amp;#34;}, \&amp;#34;fingerprint\&amp;#34;: \&amp;#34;f8f08d4e32c61a9d\&amp;#34;, \&amp;#34;generatorURL\&amp;#34;: \&amp;#34;\&amp;#34;}], \&amp;#34;status\&amp;#34;: \&amp;#34;firing\&amp;#34;, \&amp;#34;version\&amp;#34;: \&amp;#34;4\&amp;#34;, \&amp;#34;groupKey\&amp;#34;: \&amp;#34;{}:{alertname=\\\&amp;#34;InstanceDown\\\&amp;#34;}\&amp;#34;, \&amp;#34;receiver\&amp;#34;: \&amp;#34;combo\&amp;#34;, \&amp;#34;numFiring\&amp;#34;: 2, \&amp;#34;externalURL\&amp;#34;: \&amp;#34;\&amp;#34;, \&amp;#34;groupLabels\&amp;#34;: {\&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;numResolved\&amp;#34;: 0, \&amp;#34;commonLabels\&amp;#34;: {\&amp;#34;job\&amp;#34;: \&amp;#34;node\&amp;#34;, \&amp;#34;severity\&amp;#34;: \&amp;#34;critical\&amp;#34;, \&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;truncatedAlerts\&amp;#34;: 0, \&amp;#34;commonAnnotations\&amp;#34;: {}}, \&amp;#34;integration\&amp;#34;: {\&amp;#34;id\&amp;#34;: \&amp;#34;CRV8A5MXC751A\&amp;#34;, \&amp;#34;type\&amp;#34;: \&amp;#34;alertmanager\&amp;#34;, \&amp;#34;name\&amp;#34;: \&amp;#34;One - Alertmanager\&amp;#34;, \&amp;#34;team\&amp;#34;: null}, \&amp;#34;notified_users\&amp;#34;: [], \&amp;#34;users_to_be_notified\&amp;#34;: []}&amp;#34;
    },
    {
      &amp;#34;timestamp&amp;#34;: &amp;#34;2023-08-18T16:34:38.580574Z&amp;#34;,
      &amp;#34;url&amp;#34;: &amp;#34;https://example.com&amp;#34;,
      &amp;#34;request_trigger&amp;#34;: &amp;#34;&amp;#34;,
      &amp;#34;request_headers&amp;#34;: null,
      &amp;#34;request_data&amp;#34;: &amp;#34;Data - Template Warning: Object of type Undefined is not JSON serializable&amp;#34;,
      &amp;#34;status_code&amp;#34;: null,
      &amp;#34;content&amp;#34;: null,
      &amp;#34;event_data&amp;#34;: &amp;#34;{\&amp;#34;event\&amp;#34;: {\&amp;#34;type\&amp;#34;: \&amp;#34;acknowledge\&amp;#34;, \&amp;#34;time\&amp;#34;: \&amp;#34;2023-08-18T16:34:37.940655&amp;#43;00:00\&amp;#34;}, \&amp;#34;user\&amp;#34;: {\&amp;#34;id\&amp;#34;: \&amp;#34;UK49JJNPZMFLJ\&amp;#34;, \&amp;#34;username\&amp;#34;: \&amp;#34;oncall\&amp;#34;, \&amp;#34;email\&amp;#34;: \&amp;#34;admin@localhost\&amp;#34;}, \&amp;#34;alert_group\&amp;#34;: {\&amp;#34;id\&amp;#34;: \&amp;#34;IZQERPWKWCGH1\&amp;#34;, \&amp;#34;integration_id\&amp;#34;: \&amp;#34;CRV8A5MXC751A\&amp;#34;, \&amp;#34;route_id\&amp;#34;: \&amp;#34;RWNCT6C77M3WM\&amp;#34;, \&amp;#34;alerts_count\&amp;#34;: 1, \&amp;#34;state\&amp;#34;: \&amp;#34;acknowledged\&amp;#34;, \&amp;#34;created_at\&amp;#34;: \&amp;#34;2023-08-18T16:34:27.678406Z\&amp;#34;, \&amp;#34;resolved_at\&amp;#34;: null, \&amp;#34;acknowledged_at\&amp;#34;: \&amp;#34;2023-08-18T16:34:37.940655Z\&amp;#34;, \&amp;#34;title\&amp;#34;: \&amp;#34;[firing:2] InstanceDown \&amp;#34;, \&amp;#34;permalinks\&amp;#34;: {\&amp;#34;slack\&amp;#34;: null, \&amp;#34;telegram\&amp;#34;: null, \&amp;#34;web\&amp;#34;: \&amp;#34;http://localhost:3000/a/grafana-oncall-app/alert-groups/IZQERPWKWCGH1\&amp;#34;}}, \&amp;#34;alert_group_id\&amp;#34;: \&amp;#34;IZQERPWKWCGH1\&amp;#34;, \&amp;#34;alert_payload\&amp;#34;: {\&amp;#34;alerts\&amp;#34;: [{\&amp;#34;endsAt\&amp;#34;: \&amp;#34;0001-01-01T00:00:00Z\&amp;#34;, \&amp;#34;labels\&amp;#34;: {\&amp;#34;job\&amp;#34;: \&amp;#34;node\&amp;#34;, \&amp;#34;group\&amp;#34;: \&amp;#34;production\&amp;#34;, \&amp;#34;instance\&amp;#34;: \&amp;#34;localhost:8081\&amp;#34;, \&amp;#34;severity\&amp;#34;: \&amp;#34;critical\&amp;#34;, \&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;status\&amp;#34;: \&amp;#34;firing\&amp;#34;, \&amp;#34;startsAt\&amp;#34;: \&amp;#34;2023-06-12T08:24:38.326Z\&amp;#34;, \&amp;#34;annotations\&amp;#34;: {\&amp;#34;title\&amp;#34;: \&amp;#34;Instance localhost:8081 down\&amp;#34;, \&amp;#34;description\&amp;#34;: \&amp;#34;localhost:8081 of job node has been down for more than 1 minute.\&amp;#34;}, \&amp;#34;fingerprint\&amp;#34;: \&amp;#34;f404ecabc8dd5cd7\&amp;#34;, \&amp;#34;generatorURL\&amp;#34;: \&amp;#34;\&amp;#34;}, {\&amp;#34;endsAt\&amp;#34;: \&amp;#34;0001-01-01T00:00:00Z\&amp;#34;, \&amp;#34;labels\&amp;#34;: {\&amp;#34;job\&amp;#34;: \&amp;#34;node\&amp;#34;, \&amp;#34;group\&amp;#34;: \&amp;#34;canary\&amp;#34;, \&amp;#34;instance\&amp;#34;: \&amp;#34;localhost:8082\&amp;#34;, \&amp;#34;severity\&amp;#34;: \&amp;#34;critical\&amp;#34;, \&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;status\&amp;#34;: \&amp;#34;firing\&amp;#34;, \&amp;#34;startsAt\&amp;#34;: \&amp;#34;2023-06-12T08:24:38.326Z\&amp;#34;, \&amp;#34;annotations\&amp;#34;: {\&amp;#34;title\&amp;#34;: \&amp;#34;Instance localhost:8082 down\&amp;#34;, \&amp;#34;description\&amp;#34;: \&amp;#34;localhost:8082 of job node has been down for more than 1 minute.\&amp;#34;}, \&amp;#34;fingerprint\&amp;#34;: \&amp;#34;f8f08d4e32c61a9d\&amp;#34;, \&amp;#34;generatorURL\&amp;#34;: \&amp;#34;\&amp;#34;}], \&amp;#34;status\&amp;#34;: \&amp;#34;firing\&amp;#34;, \&amp;#34;version\&amp;#34;: \&amp;#34;4\&amp;#34;, \&amp;#34;groupKey\&amp;#34;: \&amp;#34;{}:{alertname=\\\&amp;#34;InstanceDown\\\&amp;#34;}\&amp;#34;, \&amp;#34;receiver\&amp;#34;: \&amp;#34;combo\&amp;#34;, \&amp;#34;numFiring\&amp;#34;: 2, \&amp;#34;externalURL\&amp;#34;: \&amp;#34;\&amp;#34;, \&amp;#34;groupLabels\&amp;#34;: {\&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;numResolved\&amp;#34;: 0, \&amp;#34;commonLabels\&amp;#34;: {\&amp;#34;job\&amp;#34;: \&amp;#34;node\&amp;#34;, \&amp;#34;severity\&amp;#34;: \&amp;#34;critical\&amp;#34;, \&amp;#34;alertname\&amp;#34;: \&amp;#34;InstanceDown\&amp;#34;}, \&amp;#34;truncatedAlerts\&amp;#34;: 0, \&amp;#34;commonAnnotations\&amp;#34;: {}}, \&amp;#34;integration\&amp;#34;: {\&amp;#34;id\&amp;#34;: \&amp;#34;CRV8A5MXC751A\&amp;#34;, \&amp;#34;type\&amp;#34;: \&amp;#34;alertmanager\&amp;#34;, \&amp;#34;name\&amp;#34;: \&amp;#34;One - Alertmanager\&amp;#34;, \&amp;#34;team\&amp;#34;: null}, \&amp;#34;notified_users\&amp;#34;: [], \&amp;#34;users_to_be_notified\&amp;#34;: []}&amp;#34;
    }
  ],
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;count&amp;#34;: 2,
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="outgoing-webhooks">Outgoing Webhooks&lt;/h1>
&lt;blockquote>
&lt;p>⚠️ A note about actions: Before version &lt;strong>v1.3.11&lt;/strong> webhooks existed as actions within the API, the /actions
endpoint remains available and is compatible with previous callers but under the hood it will interact with the
new webhooks objects. It is recommended to use the /webhooks endpoint going forward which has more features.&lt;/p></description></item><item><title>Personal Notification Rules HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/personal_notification_rules/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/personal_notification_rules/</guid><content><![CDATA[&lt;h1 id=&#34;post-a-personal-notification-rule&#34;&gt;Post a personal notification rule&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/personal_notification_rules/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;notify_by_sms&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;NT79GA9I7E4DJ&amp;#34;,
  &amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
  &amp;#34;position&amp;#34;: 0,
  &amp;#34;important&amp;#34;: false,
  &amp;#34;type&amp;#34;: &amp;#34;notify_by_sms&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;user_id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;User ID&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;position&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Personal notification rules execute one after another starting from &lt;code&gt;position=0&lt;/code&gt;. &lt;code&gt;Position=-1&lt;/code&gt; 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.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;One of: &lt;code&gt;wait&lt;/code&gt;, &lt;code&gt;notify_by_slack&lt;/code&gt;, &lt;code&gt;notify_by_sms&lt;/code&gt;, &lt;code&gt;notify_by_phone_call&lt;/code&gt;, &lt;code&gt;notify_by_telegram&lt;/code&gt;, &lt;code&gt;notify_by_email&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;duration&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A time in secs when type &lt;code&gt;wait&lt;/code&gt; is chosen for &lt;code&gt;type&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;important&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Boolean value indicates if a rule is &amp;ldquo;important&amp;rdquo;. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/personal_notification_rules/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-personal-notification-rule&#34;&gt;Get personal notification rule&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/personal_notification_rules/ND9EHN5LN1DUU/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;ND9EHN5LN1DUU&amp;#34;,
  &amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
  &amp;#34;position&amp;#34;: 1,
  &amp;#34;duration&amp;#34;: 300,
  &amp;#34;important&amp;#34;: false,
  &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/personal_notification_rules/&amp;lt;PERSONAL_NOTIFICATION_RULE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-personal-notification-rules&#34;&gt;List personal notification rules&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/personal_notification_rules/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following ways:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 4,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;NT79GA9I7E4DJ&amp;#34;,
      &amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
      &amp;#34;position&amp;#34;: 0,
      &amp;#34;important&amp;#34;: false,
      &amp;#34;type&amp;#34;: &amp;#34;notify_by_sms&amp;#34;
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;ND9EHN5LN1DUU&amp;#34;,
      &amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
      &amp;#34;position&amp;#34;: 1,
      &amp;#34;duration&amp;#34;: 300,
      &amp;#34;important&amp;#34;: false,
      &amp;#34;type&amp;#34;: &amp;#34;wait&amp;#34;
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;NEF49YQ1HNPDD&amp;#34;,
      &amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
      &amp;#34;position&amp;#34;: 2,
      &amp;#34;important&amp;#34;: false,
      &amp;#34;type&amp;#34;: &amp;#34;notify_by_phone_call&amp;#34;
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;NWAL6WFJNWDD8&amp;#34;,
      &amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
      &amp;#34;position&amp;#34;: 0,
      &amp;#34;important&amp;#34;: true,
      &amp;#34;type&amp;#34;: &amp;#34;notify_by_phone_call&amp;#34;
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameters should be provided as &lt;code&gt;GET&lt;/code&gt; arguments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;user_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;important&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP Request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/personal_notification_rules/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-a-personal-notification-rule&#34;&gt;Delete a personal notification rule&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/personal_notification_rules/NWAL6WFJNWDD8/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/personal_notification_rules/&amp;lt;PERSONAL_NOTIFICATION_RULE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="post-a-personal-notification-rule">Post a personal notification rule&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/personal_notification_rules/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;user_id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
&amp;#34;type&amp;#34;: &amp;#34;notify_by_sms&amp;#34;
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Resolution Notes HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/resolution_notes/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/resolution_notes/</guid><content><![CDATA[&lt;h1 id=&#34;create-a-resolution-note&#34;&gt;Create a resolution note&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/resolution_notes/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
      &amp;#34;text&amp;#34;: &amp;#34;Demo resolution note&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;M4BTQUS3PRHYQ&amp;#34;,
  &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
  &amp;#34;author&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
  &amp;#34;source&amp;#34;: &amp;#34;web&amp;#34;,
  &amp;#34;created_at&amp;#34;: &amp;#34;2020-06-19T12:40:01.429805Z&amp;#34;,
  &amp;#34;text&amp;#34;: &amp;#34;Demo resolution note&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
              &lt;th&gt;&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alert_group_id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Alert group ID&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;text&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Resolution note text&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/resolution_notes/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-a-resolution-note&#34;&gt;Get a resolution note&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/resolution_notes/M4BTQUS3PRHYQ/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;M4BTQUS3PRHYQ&amp;#34;,
  &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
  &amp;#34;author&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
  &amp;#34;source&amp;#34;: &amp;#34;web&amp;#34;,
  &amp;#34;created_at&amp;#34;: &amp;#34;2020-06-19T12:40:01.429805Z&amp;#34;,
  &amp;#34;text&amp;#34;: &amp;#34;Demo resolution note&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/resolution_notes/&amp;lt;RESOLUTION_NOTE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-resolution-notes&#34;&gt;List resolution notes&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/resolution_notes/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 1,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;M4BTQUS3PRHYQ&amp;#34;,
      &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
      &amp;#34;author&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
      &amp;#34;source&amp;#34;: &amp;#34;web&amp;#34;,
      &amp;#34;created_at&amp;#34;: &amp;#34;2020-06-19T12:40:01.429805Z&amp;#34;,
      &amp;#34;text&amp;#34;: &amp;#34;Demo resolution note&amp;#34;
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameter should be provided as a &lt;code&gt;GET&lt;/code&gt; argument:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;alert_group_id&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/resolution_notes/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;update-a-resolution-note&#34;&gt;Update a resolution note&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/resolution_notes/M4BTQUS3PRHYQ/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;text&amp;#34;: &amp;#34;Demo resolution note updated&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;M4BTQUS3PRHYQ&amp;#34;,
  &amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
  &amp;#34;author&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
  &amp;#34;source&amp;#34;: &amp;#34;web&amp;#34;,
  &amp;#34;created_at&amp;#34;: &amp;#34;2020-06-19T12:40:01.429805Z&amp;#34;,
  &amp;#34;text&amp;#34;: &amp;#34;Demo resolution note updated&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PUT {{API_URL}}/api/v1/resolution_notes/&amp;lt;RESOLUTION_NOTE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-a-resolution-note&#34;&gt;Delete a resolution note&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/resolution_notes/M4BTQUS3PRHYQ/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/resolution_notes/&amp;lt;RESOLUTION_NOTE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="create-a-resolution-note">Create a resolution note&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/resolution_notes/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;alert_group_id&amp;#34;: &amp;#34;I68T24C13IFW1&amp;#34;,
&amp;#34;text&amp;#34;: &amp;#34;Demo resolution note&amp;#34;
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Routes HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/routes/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/routes/</guid><content><![CDATA[&lt;h1 id=&#34;create-a-route&#34;&gt;Create a route&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/routes/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
      &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
      &amp;#34;routing_regex&amp;#34;: &amp;#34;us-(east|west)&amp;#34;,
      &amp;#34;position&amp;#34;: 0,
      &amp;#34;slack&amp;#34;: {
        &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
      }
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;RIYGUJXCPFHXY&amp;#34;,
  &amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
  &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
  &amp;#34;routing_regex&amp;#34;: &amp;#34;us-(east|west)&amp;#34;,
  &amp;#34;position&amp;#34;: 0,
  &amp;#34;is_the_last_route&amp;#34;: false,
  &amp;#34;slack&amp;#34;: {
    &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Routes allow you to direct different alerts to different messenger channels and escalation chains. Useful for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Important/non-important alerts&lt;/li&gt;
&lt;li&gt;Alerts for different engineering groups&lt;/li&gt;
&lt;li&gt;Snoozing spam &amp;amp; debugging alerts&lt;/li&gt;
&lt;/ul&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Unique&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;integration_id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Each route is assigned to a specific integration.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;escalation_chain_id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Each route is assigned a specific escalation chain. Explicitly pass &lt;code&gt;null&lt;/code&gt; to create a route without an escalation chain assigned.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;routing_type&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Routing type that can be either &lt;code&gt;jinja2&lt;/code&gt; or &lt;code&gt;regex&lt;/code&gt;(default value)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;routing_regex&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Jinja2 template or Python Regex query (use &lt;a href=&#34;https://regex101.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://regex101.com/&lt;/a&gt; for debugging). OnCall chooses the route for an alert in case there is a match inside the whole alert payload.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;position&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Route matching is performed one after another starting from position=&lt;code&gt;0&lt;/code&gt;. Position=&lt;code&gt;-1&lt;/code&gt; will put the route to the end of the list before &lt;code&gt;is_the_last_route&lt;/code&gt;. A new route created with a position of an existing route will move the old route (and all following routes) down in the list.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;slack&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Dictionary with Slack-specific settings for a route.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/routes/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-a-route&#34;&gt;Get a route&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/routes/RIYGUJXCPFHXY/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;RIYGUJXCPFHXY&amp;#34;,
  &amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
  &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
  &amp;#34;routing_regex&amp;#34;: &amp;#34;us-(east|west)&amp;#34;,
  &amp;#34;position&amp;#34;: 0,
  &amp;#34;is_the_last_route&amp;#34;: false,
  &amp;#34;slack&amp;#34;: {
    &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/routes/&amp;lt;ROUTE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-routes&#34;&gt;List routes&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/routes/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 2,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;RIYGUJXCPFHXY&amp;#34;,
      &amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
      &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
      &amp;#34;routing_regex&amp;#34;: &amp;#34;us-(east|west)&amp;#34;,
      &amp;#34;position&amp;#34;: 0,
      &amp;#34;is_the_last_route&amp;#34;: false,
      &amp;#34;slack&amp;#34;: {
        &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
      }
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;RVBE4RKQSCGJ2&amp;#34;,
      &amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
      &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
      &amp;#34;routing_regex&amp;#34;: &amp;#34;.*&amp;#34;,
      &amp;#34;position&amp;#34;: 1,
      &amp;#34;is_the_last_route&amp;#34;: true,
      &amp;#34;slack&amp;#34;: {
        &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
      }
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 25,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameters should be provided as &lt;code&gt;GET&lt;/code&gt; arguments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;integration_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;routing_regex&lt;/code&gt; (Exact match)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/routes/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;update-route&#34;&gt;Update route&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/routes/RIYGUJXCPFHXY/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;routing_regex&amp;#34;: &amp;#34;us-(east|west)&amp;#34;,
      &amp;#34;position&amp;#34;: 0,
      &amp;#34;slack&amp;#34;: {
        &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
      }
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;RIYGUJXCPFHXY&amp;#34;,
  &amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
  &amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
  &amp;#34;routing_regex&amp;#34;: &amp;#34;us-(east|west)&amp;#34;,
  &amp;#34;position&amp;#34;: 0,
  &amp;#34;is_the_last_route&amp;#34;: false,
  &amp;#34;slack&amp;#34;: {
    &amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PUT {{API_URL}}/api/v1/routes/&amp;lt;ROUTE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-a-route&#34;&gt;Delete a route&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/routes/RIYGUJXCPFHXY/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/routes/&amp;lt;ROUTE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="create-a-route">Create a route&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/routes/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;integration_id&amp;#34;: &amp;#34;CFRPV98RPR1U8&amp;#34;,
&amp;#34;escalation_chain_id&amp;#34;: &amp;#34;F5JU6KJET33FE&amp;#34;,
&amp;#34;routing_regex&amp;#34;: &amp;#34;us-(east|west)&amp;#34;,
&amp;#34;position&amp;#34;: 0,
&amp;#34;slack&amp;#34;: {
&amp;#34;channel_id&amp;#34;: &amp;#34;CH23212D&amp;#34;
}
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Schedule HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/schedules/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/schedules/</guid><content><![CDATA[&lt;h1 id=&#34;create-a-schedule&#34;&gt;Create a schedule&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/schedules/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
      &amp;#34;name&amp;#34;: &amp;#34;Demo schedule iCal&amp;#34;,
      &amp;#34;ical_url_primary&amp;#34;: &amp;#34;https://example.com/meow_calendar.ics&amp;#34;,
      &amp;#34;slack&amp;#34;: {
          &amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
          &amp;#34;user_group_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
      }
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;SBM7DV7BKFUYU&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Demo schedule iCal&amp;#34;,
  &amp;#34;type&amp;#34;: &amp;#34;ical&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;ical_url_primary&amp;#34;: &amp;#34;https://example.com/meow_calendar.ics&amp;#34;,
  &amp;#34;ical_url_overrides&amp;#34;: &amp;#34;https://example.com/meow_calendar_overrides.ics&amp;#34;,
  &amp;#34;on_call_now&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;],
  &amp;#34;slack&amp;#34;: {
    &amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
    &amp;#34;user_group_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Unique&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Schedule name.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Schedule type. May be &lt;code&gt;ical&lt;/code&gt; (used for iCalendar integration),  &lt;code&gt;calendar&lt;/code&gt; (used for manually created on-call shifts) or &lt;code&gt;web&lt;/code&gt; (for web UI managed schedules).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;team_id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of the team.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;time_zone&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Schedule time zone. It is used for manually added on-call shifts in Schedules with type &lt;code&gt;calendar&lt;/code&gt;. Default time zone is &lt;code&gt;UTC&lt;/code&gt;. For more information about time zones, see &lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_tz_database_time_zones&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;time zones&lt;/a&gt;. Not used for schedules with type &lt;code&gt;ical&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ical_url_primary&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;If type = &lt;code&gt;ical&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;URL of external iCal calendar for schedule with type &lt;code&gt;ical&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;ical_url_overrides&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;URL of external iCal calendar for schedule with any type. Events from this calendar override events from primary calendar or from on-call shifts.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enable_web_overrides&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable web overrides or not. Setting specific for API/Terraform based schedules (&lt;code&gt;calendar&lt;/code&gt; type).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;slack&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Dictionary with Slack-specific settings for a schedule. Includes &lt;code&gt;channel_id&lt;/code&gt; and &lt;code&gt;user_group_id&lt;/code&gt; fields, that take a channel ID and a user group ID from Slack.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;shifts&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of shifts. Used for manually added on-call shifts in Schedules with type &lt;code&gt;calendar&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/schedules/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-a-schedule&#34;&gt;Get a schedule&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/schedules/SBM7DV7BKFUYU/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;SBM7DV7BKFUYU&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Demo schedule iCal&amp;#34;,
  &amp;#34;type&amp;#34;: &amp;#34;ical&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;ical_url_primary&amp;#34;: &amp;#34;https://example.com/meow_calendar.ics&amp;#34;,
  &amp;#34;ical_url_overrides&amp;#34;: &amp;#34;https://example.com/meow_calendar_overrides.ics&amp;#34;,
  &amp;#34;on_call_now&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;],
  &amp;#34;slack&amp;#34;: {
    &amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
    &amp;#34;user_group_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/schedules/&amp;lt;SCHEDULE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-schedules&#34;&gt;List schedules&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/schedules/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 2,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;SBM7DV7BKFUYU&amp;#34;,
      &amp;#34;name&amp;#34;: &amp;#34;Demo schedule iCal&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;ical&amp;#34;,
      &amp;#34;team_id&amp;#34;: null,
      &amp;#34;ical_url_primary&amp;#34;: &amp;#34;https://example.com/meow_calendar.ics&amp;#34;,
      &amp;#34;ical_url_overrides&amp;#34;: &amp;#34;https://example.com/meow_calendar_overrides.ics&amp;#34;,
      &amp;#34;on_call_now&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;],
      &amp;#34;slack&amp;#34;: {
        &amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
        &amp;#34;user_group_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
      }
    },
    {
      &amp;#34;id&amp;#34;: &amp;#34;S3Z477AHDXTMF&amp;#34;,
      &amp;#34;name&amp;#34;: &amp;#34;Demo schedule Calendar&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;calendar&amp;#34;,
      &amp;#34;team_id&amp;#34;: null,
      &amp;#34;time_zone&amp;#34;: &amp;#34;America/New_York&amp;#34;,
      &amp;#34;on_call_now&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;],
      &amp;#34;shifts&amp;#34;: [&amp;#34;OH3V5FYQEYJ6M&amp;#34;, &amp;#34;O9WTH7CKM3KZW&amp;#34;],
      &amp;#34;ical_url_overrides&amp;#34;: null,
      &amp;#34;slack&amp;#34;: {
        &amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
        &amp;#34;user_group_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
      }
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameter should be provided as a &lt;code&gt;GET&lt;/code&gt; argument:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; (Exact match)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/schedules/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;update-a-schedule&#34;&gt;Update a schedule&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/schedules/SBM7DV7BKFUYU/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
    &amp;#34;name&amp;#34;: &amp;#34;Demo schedule iCal&amp;#34;,
    &amp;#34;ical_url&amp;#34;: &amp;#34;https://example.com/meow_calendar.ics&amp;#34;,
    &amp;#34;slack&amp;#34;: {
        &amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
    }
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;SBM7DV7BKFUYU&amp;#34;,
  &amp;#34;name&amp;#34;: &amp;#34;Demo schedule iCal&amp;#34;,
  &amp;#34;type&amp;#34;: &amp;#34;ical&amp;#34;,
  &amp;#34;team_id&amp;#34;: null,
  &amp;#34;ical_url_primary&amp;#34;: &amp;#34;https://example.com/meow_calendar.ics&amp;#34;,
  &amp;#34;ical_url_overrides&amp;#34;: &amp;#34;https://example.com/meow_calendar_overrides.ics&amp;#34;,
  &amp;#34;on_call_now&amp;#34;: [&amp;#34;U4DNY931HHJS5&amp;#34;],
  &amp;#34;slack&amp;#34;: {
    &amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
    &amp;#34;user_group_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PUT {{API_URL}}/api/v1/schedules/&amp;lt;SCHEDULE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-a-schedule&#34;&gt;Delete a schedule&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/schedules/SBM7DV7BKFUYU/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/schedules/&amp;lt;SCHEDULE_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;export-a-schedules-final-shifts&#34;&gt;Export a schedule&amp;rsquo;s final shifts&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/schedules/SBM7DV7BKFUYU/final_shifts?start_date=2023-01-01&amp;amp;end_date=2023-02-01&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 12,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;UC2CHRT5SD34X&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;alice@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;alice&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-02T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-02T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;U7S8H84ARFTGN&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;bob@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;bob&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-04T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-04T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;UC2CHRT5SD34X&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;alice@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;alice&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-06T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-06T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;U7S8H84ARFTGN&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;bob@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;bob&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-09T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-09T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;UC2CHRT5SD34X&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;alice@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;alice&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-11T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-11T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;U7S8H84ARFTGN&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;bob@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;bob&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-13T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-13T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;UC2CHRT5SD34X&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;alice@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;alice&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-16T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-16T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;U7S8H84ARFTGN&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;bob@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;bob&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-18T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-18T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;UC2CHRT5SD34X&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;alice@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;alice&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-20T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-20T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;U7S8H84ARFTGN&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;bob@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;bob&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-23T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-23T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;UC2CHRT5SD34X&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;alice@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;alice&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-25T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-25T17:00:00Z&amp;#34;
    },
    {
      &amp;#34;user_pk&amp;#34;: &amp;#34;U7S8H84ARFTGN&amp;#34;,
      &amp;#34;user_email&amp;#34;: &amp;#34;bob@example.com&amp;#34;,
      &amp;#34;user_username&amp;#34;: &amp;#34;bob&amp;#34;,
      &amp;#34;shift_start&amp;#34;: &amp;#34;2023-01-27T09:00:00Z&amp;#34;,
      &amp;#34;shift_end&amp;#34;: &amp;#34;2023-01-27T17:00:00Z&amp;#34;
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;caveats&#34;&gt;Caveats&lt;/h2&gt;
&lt;p&gt;Some notes on the &lt;code&gt;start_date&lt;/code&gt; and &lt;code&gt;end_date&lt;/code&gt; query parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;they are both required and should represent ISO 8601 formatted dates&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end_date&lt;/code&gt; must be greater than or equal to &lt;code&gt;start_date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end_date&lt;/code&gt; cannot be more than 365 days in the future from &lt;code&gt;start_date&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: you can update schedules affecting past events, which will then
change the output you get from this endpoint. To get consistent information about past shifts
you must be sure to avoid updating rotations in-place but apply the changes as new rotations
with the right starting dates.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;example-script-to-transform-data-to-csv-for-all-of-your-schedules&#34;&gt;Example script to transform data to .csv for all of your schedules&lt;/h2&gt;
&lt;p&gt;The following Python script will generate a &lt;code&gt;.csv&lt;/code&gt; file, &lt;code&gt;oncall-report-2023-01-01-to-2023-01-31.csv&lt;/code&gt;. This file will
contain three columns, &lt;code&gt;user_pk&lt;/code&gt;, &lt;code&gt;user_email&lt;/code&gt;, and &lt;code&gt;hours_on_call&lt;/code&gt;, which represents how many hours each user was
on call during the period starting January 1, 2023 to January 31, 2023 (inclusive).&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Python&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;import csv
import requests
from datetime import datetime

# CUSTOMIZE THE FOLLOWING VARIABLES
START_DATE = &amp;#34;2023-01-01&amp;#34;
END_DATE = &amp;#34;2023-01-31&amp;#34;
OUTPUT_FILE_NAME = f&amp;#34;oncall-report-{START_DATE}-to-{END_DATE}.csv&amp;#34;
MY_ONCALL_API_BASE_URL = &amp;#34;https://oncall-prod-us-central-0.grafana.net/oncall/api/v1/schedules&amp;#34;
MY_ONCALL_API_KEY = &amp;#34;meowmeowwoofwoof&amp;#34;

headers = {&amp;#34;Authorization&amp;#34;: MY_ONCALL_API_KEY}
schedule_ids = [schedule[&amp;#34;id&amp;#34;] for schedule in requests.get(MY_ONCALL_API_BASE_URL, headers=headers).json()[&amp;#34;results&amp;#34;]]
user_on_call_hours = {}

for schedule_id in schedule_ids:
  response = requests.get(
    f&amp;#34;{MY_ONCALL_API_BASE_URL}/{schedule_id}/final_shifts?start_date={START_DATE}&amp;amp;end_date={END_DATE}&amp;#34;,
    headers=headers)

  for final_shift in response.json()[&amp;#34;results&amp;#34;]:
    user_pk = final_shift[&amp;#34;user_pk&amp;#34;]
    end = datetime.fromisoformat(final_shift[&amp;#34;shift_end&amp;#34;])
    start = datetime.fromisoformat(final_shift[&amp;#34;shift_start&amp;#34;])
    shift_time_in_seconds = (end - start).total_seconds()
    shift_time_in_hours = shift_time_in_seconds / (60 * 60)

    if user_pk in user_on_call_hours:
      user_on_call_hours[user_pk][&amp;#34;hours_on_call&amp;#34;] &amp;#43;= shift_time_in_hours
    else:
      user_on_call_hours[user_pk] = {
        &amp;#34;email&amp;#34;: final_shift[&amp;#34;user_email&amp;#34;],
        &amp;#34;hours_on_call&amp;#34;: shift_time_in_hours,
      }

with open(OUTPUT_FILE_NAME, &amp;#34;w&amp;#34;) as fp:
  csv_writer = csv.DictWriter(fp, [&amp;#34;user_pk&amp;#34;, &amp;#34;user_email&amp;#34;, &amp;#34;hours_on_call&amp;#34;])
  csv_writer.writeheader()

  for user_pk, user_info in user_on_call_hours.items():
    csv_writer.writerow({
      &amp;#34;user_pk&amp;#34;: user_pk, &amp;#34;user_email&amp;#34;: user_info[&amp;#34;email&amp;#34;], &amp;#34;hours_on_call&amp;#34;: user_info[&amp;#34;hours_on_call&amp;#34;]})&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="create-a-schedule">Create a schedule&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/schedules/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;name&amp;#34;: &amp;#34;Demo schedule iCal&amp;#34;,
&amp;#34;ical_url_primary&amp;#34;: &amp;#34;https://example.com/meow_calendar.ics&amp;#34;,
&amp;#34;slack&amp;#34;: {
&amp;#34;channel_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
&amp;#34;user_group_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
}
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Shift swaps HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/shift_swaps/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/shift_swaps/</guid><content><![CDATA[&lt;h1 id=&#34;create-a-shift-swap-request&#34;&gt;Create a shift swap request&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/shift_swaps/&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
        &amp;#34;schedule&amp;#34;: &amp;#34;SRJWJCMKD68AL&amp;#34;,
        &amp;#34;swap_start&amp;#34;: &amp;#34;2026-06-11T00:00:00Z&amp;#34;,
        &amp;#34;swap_end&amp;#34;: &amp;#34;2026-07-19T22:00:00Z&amp;#34;,
        &amp;#34;description&amp;#34;: &amp;#34;Anyone to cover my shifts?&amp;#34;,
        &amp;#34;beneficiary&amp;#34;: &amp;#34;UWJWIN8MQ1GYL&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
   &amp;#34;benefactor&amp;#34; : null,
   &amp;#34;beneficiary&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
   &amp;#34;created_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064677Z&amp;#34;,
   &amp;#34;description&amp;#34; : &amp;#34;Anyone to cover my shifts?&amp;#34;,
   &amp;#34;id&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;,
   &amp;#34;schedule&amp;#34; : &amp;#34;SRJWJCMKD68AL&amp;#34;,
   &amp;#34;shifts&amp;#34; : [
      {
         &amp;#34;all_day&amp;#34; : false,
         &amp;#34;calendar_type&amp;#34; : 0,
         &amp;#34;end&amp;#34; : &amp;#34;2026-06-11T03:00:00Z&amp;#34;,
         &amp;#34;is_empty&amp;#34; : false,
         &amp;#34;is_gap&amp;#34; : false,
         &amp;#34;is_override&amp;#34; : false,
         &amp;#34;missing_users&amp;#34; : [],
         &amp;#34;priority_level&amp;#34; : 2,
         &amp;#34;shift&amp;#34; : {
            &amp;#34;pk&amp;#34; : &amp;#34;OTI13GNNE5V1L&amp;#34;
         },
         &amp;#34;source&amp;#34; : &amp;#34;web&amp;#34;,
         &amp;#34;start&amp;#34; : &amp;#34;2026-06-11T00:00:00Z&amp;#34;,
         &amp;#34;users&amp;#34; : [
            {
               &amp;#34;avatar_full&amp;#34; : &amp;#34;http://avatar.url&amp;#34;,
               &amp;#34;display_name&amp;#34; : &amp;#34;testing&amp;#34;,
               &amp;#34;email&amp;#34; : &amp;#34;testing&amp;#34;,
               &amp;#34;pk&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
               &amp;#34;swap_request&amp;#34; : {
                  &amp;#34;pk&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;
               }
            }
         ]
      }
   ],
   &amp;#34;status&amp;#34; : &amp;#34;open&amp;#34;,
   &amp;#34;swap_end&amp;#34; : &amp;#34;2026-07-19T22:00:00.000000Z&amp;#34;,
   &amp;#34;swap_start&amp;#34; : &amp;#34;2026-06-11T00:00:00.000000Z&amp;#34;,
   &amp;#34;updated_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064922Z&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Unique&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;schedule&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of the schedule.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;swap_start&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start date/time for the swap request. Must be a ISO 8601 formatted datetime string.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;swap_end&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;End date/time for the swap request. Must be a ISO 8601 formatted datetime string.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Optional&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A description message to be displayed along the request.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;beneficiary&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of the user requesting the swap.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/shift_swaps/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;get-a-shift-swap-request&#34;&gt;Get a shift swap request&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/shift_swaps/SSRG1TDNBMJQ1NC/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
   &amp;#34;benefactor&amp;#34; : null,
   &amp;#34;beneficiary&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
   &amp;#34;created_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064677Z&amp;#34;,
   &amp;#34;description&amp;#34; : &amp;#34;Anyone to cover my shifts?&amp;#34;,
   &amp;#34;id&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;,
   &amp;#34;schedule&amp;#34; : &amp;#34;SRJWJCMKD68AL&amp;#34;,
   &amp;#34;shifts&amp;#34; : [
      {
         &amp;#34;all_day&amp;#34; : false,
         &amp;#34;calendar_type&amp;#34; : 0,
         &amp;#34;end&amp;#34; : &amp;#34;2026-06-11T03:00:00Z&amp;#34;,
         &amp;#34;is_empty&amp;#34; : false,
         &amp;#34;is_gap&amp;#34; : false,
         &amp;#34;is_override&amp;#34; : false,
         &amp;#34;missing_users&amp;#34; : [],
         &amp;#34;priority_level&amp;#34; : 2,
         &amp;#34;shift&amp;#34; : {
            &amp;#34;pk&amp;#34; : &amp;#34;OTI13GNNE5V1L&amp;#34;
         },
         &amp;#34;source&amp;#34; : &amp;#34;web&amp;#34;,
         &amp;#34;start&amp;#34; : &amp;#34;2026-06-11T00:00:00Z&amp;#34;,
         &amp;#34;users&amp;#34; : [
            {
               &amp;#34;avatar_full&amp;#34; : &amp;#34;http://avatar.url&amp;#34;,
               &amp;#34;display_name&amp;#34; : &amp;#34;testing&amp;#34;,
               &amp;#34;email&amp;#34; : &amp;#34;testing&amp;#34;,
               &amp;#34;pk&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
               &amp;#34;swap_request&amp;#34; : {
                  &amp;#34;pk&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;
               }
            }
         ]
      }
   ],
   &amp;#34;status&amp;#34; : &amp;#34;open&amp;#34;,
   &amp;#34;swap_end&amp;#34; : &amp;#34;2026-07-19T22:00:00.000000Z&amp;#34;,
   &amp;#34;swap_start&amp;#34; : &amp;#34;2026-06-11T00:00:00.000000Z&amp;#34;,
   &amp;#34;updated_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064922Z&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/shift_swaps/&amp;lt;SHIFT_SWAP_REQUEST_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;list-shift-swap-requests&#34;&gt;List shift swap requests&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/shift_swaps/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
   &amp;#34;count&amp;#34; : 2,
   &amp;#34;current_page_number&amp;#34; : 1,
   &amp;#34;next&amp;#34; : null,
   &amp;#34;page_size&amp;#34; : 50,
   &amp;#34;previous&amp;#34; : null,
   &amp;#34;results&amp;#34; : [
      {
         &amp;#34;benefactor&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
         &amp;#34;beneficiary&amp;#34; : &amp;#34;UCGEIXI1MR1NZ&amp;#34;,
         &amp;#34;created_at&amp;#34; : &amp;#34;2023-08-07T18:44:15.249679Z&amp;#34;,
         &amp;#34;description&amp;#34; : &amp;#34;Taking a few days off.&amp;#34;,
         &amp;#34;id&amp;#34; : &amp;#34;SSRK2EH2TR6E4F9&amp;#34;,
         &amp;#34;schedule&amp;#34; : &amp;#34;SRZZFY1QI9FLL&amp;#34;,
         &amp;#34;status&amp;#34; : &amp;#34;taken&amp;#34;,
         &amp;#34;swap_end&amp;#34; : &amp;#34;2024-09-29T03:00:18.000000Z&amp;#34;,
         &amp;#34;swap_start&amp;#34; : &amp;#34;2024-09-26T03:00:18.000000Z&amp;#34;,
         &amp;#34;updated_at&amp;#34; : &amp;#34;2024-08-07T18:44:15.249960Z&amp;#34;
      },
      {
         &amp;#34;benefactor&amp;#34; : null,
         &amp;#34;beneficiary&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
         &amp;#34;created_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064677Z&amp;#34;,
         &amp;#34;description&amp;#34; : &amp;#34;Anyone to cover my shifts?&amp;#34;,
         &amp;#34;id&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;,
         &amp;#34;schedule&amp;#34; : &amp;#34;SRJWJCMKD68AL&amp;#34;,
         &amp;#34;status&amp;#34; : &amp;#34;open&amp;#34;,
         &amp;#34;swap_end&amp;#34; : &amp;#34;2026-07-19T22:00:00.000000Z&amp;#34;,
         &amp;#34;swap_start&amp;#34; : &amp;#34;2026-06-11T00:00:00.000000Z&amp;#34;,
         &amp;#34;updated_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064922Z&amp;#34;
      }
   ],
   &amp;#34;total_pages&amp;#34; : 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameters may be provided as a &lt;code&gt;GET&lt;/code&gt; arguments:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;starting_after&lt;/code&gt; (an ISO 8601 timestamp string, filter requests starting after the specified datetime)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;schedule_id&lt;/code&gt; (Exact match, schedule ID)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;beneficiary&lt;/code&gt; (Exact match, user ID)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;benefactor&lt;/code&gt; (Exact match, user ID)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;open_only&lt;/code&gt; (set to &lt;code&gt;true&lt;/code&gt; to filter active untaken requests only)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/shift_swaps/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;update-a-shift-swap-request&#34;&gt;Update a shift swap request&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/shift_swaps/SSRG1TDNBMJQ1NC/&amp;#34; \
  --request PUT \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
        &amp;#34;schedule&amp;#34;: &amp;#34;SRJWJCMKD68AL&amp;#34;,
        &amp;#34;swap_start&amp;#34;: &amp;#34;2026-06-11T00:00:00Z&amp;#34;,
        &amp;#34;swap_end&amp;#34;: &amp;#34;2026-07-20T22:00:00Z&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
   &amp;#34;benefactor&amp;#34; : null,
   &amp;#34;beneficiary&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
   &amp;#34;created_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064677Z&amp;#34;,
   &amp;#34;description&amp;#34; : &amp;#34;Anyone to cover my shifts?&amp;#34;,
   &amp;#34;id&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;,
   &amp;#34;schedule&amp;#34; : &amp;#34;SRJWJCMKD68AL&amp;#34;,
   &amp;#34;shifts&amp;#34; : [
      {
         &amp;#34;all_day&amp;#34; : false,
         &amp;#34;calendar_type&amp;#34; : 0,
         &amp;#34;end&amp;#34; : &amp;#34;2026-06-11T03:00:00Z&amp;#34;,
         &amp;#34;is_empty&amp;#34; : false,
         &amp;#34;is_gap&amp;#34; : false,
         &amp;#34;is_override&amp;#34; : false,
         &amp;#34;missing_users&amp;#34; : [],
         &amp;#34;priority_level&amp;#34; : 2,
         &amp;#34;shift&amp;#34; : {
            &amp;#34;pk&amp;#34; : &amp;#34;OTI13GNNE5V1L&amp;#34;
         },
         &amp;#34;source&amp;#34; : &amp;#34;web&amp;#34;,
         &amp;#34;start&amp;#34; : &amp;#34;2026-06-11T00:00:00Z&amp;#34;,
         &amp;#34;users&amp;#34; : [
            {
               &amp;#34;avatar_full&amp;#34; : &amp;#34;http://avatar.url&amp;#34;,
               &amp;#34;display_name&amp;#34; : &amp;#34;testing&amp;#34;,
               &amp;#34;email&amp;#34; : &amp;#34;testing&amp;#34;,
               &amp;#34;pk&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
               &amp;#34;swap_request&amp;#34; : {
                  &amp;#34;pk&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;
               }
            }
         ]
      }
   ],
   &amp;#34;status&amp;#34; : &amp;#34;open&amp;#34;,
   &amp;#34;swap_end&amp;#34; : &amp;#34;2026-07-20T22:00:00.000000Z&amp;#34;,
   &amp;#34;swap_start&amp;#34; : &amp;#34;2026-06-11T00:00:00.000000Z&amp;#34;,
   &amp;#34;updated_at&amp;#34; : &amp;#34;2023-08-11T19:45:53.096811Z&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PUT {{API_URL}}/api/v1/shift_swaps/&amp;lt;SHIFT_SWAP_REQUEST_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;delete-a-shift-swap-request&#34;&gt;Delete a shift swap request&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/shift_swaps/SSRG1TDNBMJQ1NC/&amp;#34; \
  --request DELETE \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DELETE {{API_URL}}/api/v1/shift_swaps/&amp;lt;SHIFT_SWAP_REQUEST_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;h1 id=&#34;take-a-shift-swap-request&#34;&gt;Take a shift swap request&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/shift_swaps/SSRG1TDNBMJQ1NC/take&amp;#34; \
  --request POST \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34; \
  --data &amp;#39;{
        &amp;#34;benefactor&amp;#34;: &amp;#34;UCGEIXI1MR1NZ&amp;#34;
  }&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
   &amp;#34;benefactor&amp;#34; : &amp;#34;UCGEIXI1MR1NZ&amp;#34;,
   &amp;#34;beneficiary&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;,
   &amp;#34;created_at&amp;#34; : &amp;#34;2023-08-11T19:20:17.064677Z&amp;#34;,
   &amp;#34;description&amp;#34; : &amp;#34;Anyone to cover my shifts?&amp;#34;,
   &amp;#34;id&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;,
   &amp;#34;schedule&amp;#34; : &amp;#34;SRJWJCMKD68AL&amp;#34;,
   &amp;#34;shifts&amp;#34; : [
      {
         &amp;#34;all_day&amp;#34; : false,
         &amp;#34;calendar_type&amp;#34; : 0,
         &amp;#34;end&amp;#34; : &amp;#34;2026-06-11T03:00:00Z&amp;#34;,
         &amp;#34;is_empty&amp;#34; : false,
         &amp;#34;is_gap&amp;#34; : false,
         &amp;#34;is_override&amp;#34; : false,
         &amp;#34;missing_users&amp;#34; : [],
         &amp;#34;priority_level&amp;#34; : 2,
         &amp;#34;shift&amp;#34; : {
            &amp;#34;pk&amp;#34; : &amp;#34;OTI13GNNE5V1L&amp;#34;
         },
         &amp;#34;source&amp;#34; : &amp;#34;web&amp;#34;,
         &amp;#34;start&amp;#34; : &amp;#34;2026-06-11T00:00:00Z&amp;#34;,
         &amp;#34;users&amp;#34; : [
            {
               &amp;#34;avatar_full&amp;#34; : &amp;#34;http://avatar.url&amp;#34;,
               &amp;#34;display_name&amp;#34; : &amp;#34;anotherone&amp;#34;,
               &amp;#34;email&amp;#34; : &amp;#34;anotherone&amp;#34;,
               &amp;#34;pk&amp;#34; : &amp;#34;UCGEIXI1MR1NZ&amp;#34;,
               &amp;#34;swap_request&amp;#34; : {
                  &amp;#34;pk&amp;#34; : &amp;#34;SSRG1TDNBMJQ1NC&amp;#34;,
                  &amp;#34;user&amp;#34; : {
                     &amp;#34;avatar_full&amp;#34; : &amp;#34;http://avatar.url&amp;#34;,
                     &amp;#34;display_name&amp;#34; : &amp;#34;testing&amp;#34;,
                     &amp;#34;email&amp;#34; : &amp;#34;testing&amp;#34;,
                     &amp;#34;pk&amp;#34; : &amp;#34;UWJWIN8MQ1GYL&amp;#34;
                  }
               }
            }
         ]
      }
   ],
   &amp;#34;status&amp;#34; : &amp;#34;taken&amp;#34;,
   &amp;#34;swap_end&amp;#34; : &amp;#34;2026-07-20T22:00:00.000000Z&amp;#34;,
   &amp;#34;swap_start&amp;#34; : &amp;#34;2026-06-11T00:00:00.000000Z&amp;#34;,
   &amp;#34;updated_at&amp;#34; : &amp;#34;2023-08-11T19:51:38.622037Z&amp;#34;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Unique&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Required&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;benefactor&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ID of the user taking the swap.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;POST {{API_URL}}/api/v1/shift_swaps/&amp;lt;SHIFT_SWAP_REQUEST_ID&amp;gt;/take&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="create-a-shift-swap-request">Create a shift swap request&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/shift_swaps/&amp;#34; \
--request POST \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34; \
--data &amp;#39;{
&amp;#34;schedule&amp;#34;: &amp;#34;SRJWJCMKD68AL&amp;#34;,
&amp;#34;swap_start&amp;#34;: &amp;#34;2026-06-11T00:00:00Z&amp;#34;,
&amp;#34;swap_end&amp;#34;: &amp;#34;2026-07-19T22:00:00Z&amp;#34;,
&amp;#34;description&amp;#34;: &amp;#34;Anyone to cover my shifts?&amp;#34;,
&amp;#34;beneficiary&amp;#34;: &amp;#34;UWJWIN8MQ1GYL&amp;#34;
}&amp;#39;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Slack Channels HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/slack_channels/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/slack_channels/</guid><content><![CDATA[&lt;h1 id=&#34;list-slack-channels&#34;&gt;List Slack Channels&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/slack_channels/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 1,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;name&amp;#34;: &amp;#34;meow_channel&amp;#34;,
      &amp;#34;slack_id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The following available filter parameter should be provided as a &lt;code&gt;GET&lt;/code&gt; argument:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;channel_name&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP Request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/slack_channels/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="list-slack-channels">List Slack Channels&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/slack_channels/&amp;#34; \
--request GET \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>OnCall User Groups HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/user_groups/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/user_groups/</guid><content><![CDATA[&lt;!--Used in escalation policies with type = `notify_user_group` and in schedules.--&gt;
&lt;h1 id=&#34;list-user-groups&#34;&gt;List user groups&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/user_groups/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 1,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;GPFAPH7J7BKJB&amp;#34;,
      &amp;#34;type&amp;#34;: &amp;#34;slack_based&amp;#34;,
      &amp;#34;slack&amp;#34;: {
        &amp;#34;id&amp;#34;: &amp;#34;MEOW_SLACK_ID&amp;#34;,
        &amp;#34;name&amp;#34;: &amp;#34;Meow Group&amp;#34;,
        &amp;#34;handle&amp;#34;: &amp;#34;meow_group&amp;#34;
      }
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 50,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Unique&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;User Group ID&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://slack.com/intl/en-ru/help/articles/212906697-Create-a-user-group&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Slack-defined user groups&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;slack&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Metadata retrieved from Slack.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/user_groups/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;!--Used in escalation policies with type = `notify_user_group` and in schedules.-->
&lt;h1 id="list-user-groups">List user groups&lt;/h1>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/user_groups/&amp;#34; \
--request GET \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item><item><title>Grafana OnCall Users HTTP API</title><link>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/users/</link><pubDate>Tue, 07 Apr 2026 10:28:26 +0000</pubDate><guid>https://grafana.com/docs/oncall/v1.6.x/oncall-api-reference/users/</guid><content><![CDATA[&lt;h1 id=&#34;get-a-user&#34;&gt;Get a user&lt;/h1&gt;
&lt;p&gt;This endpoint retrieves the user object.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/users/current/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
  &amp;#34;email&amp;#34;: &amp;#34;public-api-demo-user-1@grafana.com&amp;#34;,
  &amp;#34;slack&amp;#34;: [
    {
      &amp;#34;user_id&amp;#34;: &amp;#34;UALEXSLACKDJPK&amp;#34;,
      &amp;#34;team_id&amp;#34;: &amp;#34;TALEXSLACKDJPK&amp;#34;
    }
  ],
  &amp;#34;username&amp;#34;: &amp;#34;alex&amp;#34;,
  &amp;#34;role&amp;#34;: &amp;#34;admin&amp;#34;,
  &amp;#34;timezone&amp;#34;: &amp;#34;UTC&amp;#34;,
  &amp;#34;teams&amp;#34;: []
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/users/&amp;lt;USER_ID&amp;gt;/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;{{API_URL}}/api/v1/users/current&lt;/code&gt; to retrieve the current user.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: center&#34;&gt;Unique&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes/org&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;User ID&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;email&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes/org&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;User e-mail&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;slack&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes/org&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of user IDs from connected Slack. User linking key is e-mail.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;Yes/org&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;User username&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;role&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;One of: &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;observer&lt;/code&gt;, &lt;code&gt;admin&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timezone&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;timezone of the user one of &lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_tz_database_time_zones&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;time zones&lt;/a&gt;.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;teams&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: center&#34;&gt;No&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;List of team IDs the user belongs to&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h1 id=&#34;list-users&#34;&gt;List Users&lt;/h1&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;shell&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-shell&#34;&gt;curl &amp;#34;{{API_URL}}/api/v1/users/&amp;#34; \
  --request GET \
  --header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
  --header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The above command returns JSON structured in the following way:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;#34;count&amp;#34;: 1,
  &amp;#34;next&amp;#34;: null,
  &amp;#34;previous&amp;#34;: null,
  &amp;#34;results&amp;#34;: [
    {
      &amp;#34;id&amp;#34;: &amp;#34;U4DNY931HHJS5&amp;#34;,
      &amp;#34;email&amp;#34;: &amp;#34;public-api-demo-user-1@grafana.com&amp;#34;,
      &amp;#34;slack&amp;#34;: [
        {
          &amp;#34;user_id&amp;#34;: &amp;#34;UALEXSLACKDJPK&amp;#34;,
          &amp;#34;team_id&amp;#34;: &amp;#34;TALEXSLACKDJPK&amp;#34;
        }
      ],
      &amp;#34;username&amp;#34;: &amp;#34;alex&amp;#34;,
      &amp;#34;role&amp;#34;: &amp;#34;admin&amp;#34;,
      &amp;#34;timezone&amp;#34;: &amp;#34;UTC&amp;#34;,
      &amp;#34;teams&amp;#34;: [&amp;#34;TAAM1K1NNEHAG&amp;#34;]
    }
  ],
  &amp;#34;current_page_number&amp;#34;: 1,
  &amp;#34;page_size&amp;#34;: 100,
  &amp;#34;total_pages&amp;#34;: 1
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This endpoint retrieves all users.&lt;/p&gt;
&lt;p&gt;The following available filter parameter should be provided as a &lt;code&gt;GET&lt;/code&gt; argument:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;username&lt;/code&gt; (Exact match)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HTTP request&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;GET {{API_URL}}/api/v1/users/&lt;/code&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="get-a-user">Get a user&lt;/h1>
&lt;p>This endpoint retrieves the user object.&lt;/p>
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">shell&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-shell">curl &amp;#34;{{API_URL}}/api/v1/users/current/&amp;#34; \
--request GET \
--header &amp;#34;Authorization: meowmeowmeow&amp;#34; \
--header &amp;#34;Content-Type: application/json&amp;#34;&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>The above command returns JSON structured in the following way:&lt;/p></description></item></channel></rss>