Grafana OnCallGrafana OnCall API referenceIntegrations HTTP API

Create an integration

curl "{{API_URL}}/api/v1/integrations/" \
  --request POST \
  --header "Authorization: meowmeowmeow" \
  --header "Content-Type: application/json" \
  --data '{
      "type":"grafana"
  }'

The above command returns JSON structured like this:

{
    "id": "CFRPV98RPR1U8",
    "name": "Grafana :blush:",
    "team_id": null,
    "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
    "incidents_count": 1,
    "type": "grafana",
    "default_route_id": "RVBE4RKQSCGJ2",
    "templates": {
        "grouping_key": null,
        "resolve_signal": null,
        "slack": {
            "title": null,
            "message": null,
            "image_url": null
        },
        "web": {
            "title": null,
            "message": null,
            "image_url": null
        },
        "email": {
            "title": null,
            "message": null
        },
        "sms": {
            "title": null
        },
        "phone_call": {
            "title": null
        },
        "telegram": {
            "title": null,
            "message": null,
            "image_url": null
        }
    }
}

Integrations are sources of alerts and incidents for Grafana OnCall. For example, to learn how to integrate Grafana OnCall with Alertmanager see Alertmanager.

HTTP request

POST {{API_URL}}/api/v1/integrations/

Get integration

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

The above command returns JSON structured like this:

{
    "id": "CFRPV98RPR1U8",
    "name": "Grafana :blush:",
    "team_id": null,
    "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
    "incidents_count": 1,
    "type": "grafana",
    "default_route_id": "RVBE4RKQSCGJ2",
    "templates": {
        "grouping_key": null,
        "resolve_signal": null,
        "slack": {
            "title": null,
            "message": null,
            "image_url": null
        },
        "web": {
            "title": null,
            "message": null,
            "image_url": null
        },
        "email": {
            "title": null,
            "message": null
        },
        "sms": {
            "title": null
        },
        "phone_call": {
            "title": null
        },
        "telegram": {
            "title": null,
            "message": null,
            "image_url": null
        }
    }
}

This endpoint retrieves an integration. Integrations are sources of alerts and incidents for Grafana OnCall.

HTTP request

GET {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/

List integrations

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

The above command returns JSON structured like this:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "CFRPV98RPR1U8",
            "name": "Grafana :blush:",
            "team_id": null,
            "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
            "incidents_count": 3,
            "type": "grafana",
            "default_route_id": "RVBE4RKQSCGJ2",
            "templates": {
                "grouping_key": null,
                "resolve_signal": null,
                "slack": {
                    "title": null,
                    "message": null,
                    "image_url": null
                },
                "web": {
                    "title": null,
                    "message": null,
                    "image_url": null
                },
                "email": {
                    "title": null,
                    "message": null
                },
                "sms": {
                    "title": null
                },
                "phone_call": {
                    "title": null
                },
                "telegram": {
                    "title": null,
                    "message": null,
                    "image_url": null
                }
            }
        }
    ]
}

HTTP request

GET {{API_URL}}/api/v1/integrations/

Update integration

curl "{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/" \
  --request PUT \
  --header "Authorization: meowmeowmeow" \
  --header "Content-Type: application/json" \
  --data '{
      "templates": {
          "grouping_key": null,
          "resolve_signal": null,
          "slack": {
             "title": null,
             "message": null,
             "image_url": null
          }
      }
  }'

The above command returns JSON structured like this:

{
    "id": "CFRPV98RPR1U8",
    "name": "Grafana :blush:",
    "team_id": null,
    "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
    "incidents_count": 1,
    "type": "grafana",
    "default_route_id": "RVBE4RKQSCGJ2",
    "templates": {
        "grouping_key": null,
        "resolve_signal": null,
        "slack": {
           "title": null,
           "message": null,
           "image_url": null
        },
        "web": {
            "title": null,
            "message": null,
            "image_url": null
        },
        "email": {
            "title": null,
            "message": null
        },
        "sms": {
            "title": null
        },
        "phone_call": {
            "title": null
        },
        "telegram": {
            "title": null,
            "message": null,
            "image_url": null
        }
    }
}

HTTP request

PUT {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/

Delete integration

Deleted integrations will stop recording new alerts from monitoring. Integration removal won’t trigger removal of related incidents or alerts.

curl "{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/" \
  --request DELETE \
  --header "Authorization: meowmeowmeow"

HTTP request

DELETE {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/