---
title: "Integrations HTTP API | Grafana OnCall documentation"
description: "Create an integration shell Copy 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 in the following way:"
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Create an integration

shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```shell
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 in the following way:

JSON ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```json
{
    "id": "CFRPV98RPR1U8",
    "name": "Grafana :blush:",
    "team_id": null,
    "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
    "type": "grafana",
    "default_route": {
        "id": "RVBE4RKQSCGJ2",
        "escalation_chain_id": "F5JU6KJET33FE",
        "slack": {
            "channel_id": "CH23212D"
        }
    },
    "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 alert groups for Grafana OnCall. For example, to learn how to integrate Grafana OnCall with Alertmanager see [Alertmanager](../../integrations/add-alertmanager/).

**HTTP request**

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

# Get integration

shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

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

The above command returns JSON structured in the following way:

JSON ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```json
{
    "id": "CFRPV98RPR1U8",
    "name": "Grafana :blush:",
    "team_id": null,
    "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
    "type": "grafana",
    "default_route": {
        "id": "RVBE4RKQSCGJ2",
        "escalation_chain_id": "F5JU6KJET33FE",
        "slack": {
            "channel_id": "CH23212D"
        }
    },
    "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 alert groups for Grafana OnCall.

**HTTP request**

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

# List integrations

shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

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

The above command returns JSON structured in the following way:

JSON ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```json
{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "CFRPV98RPR1U8",
            "name": "Grafana :blush:",
            "team_id": null,
            "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
            "type": "grafana",
            "default_route": {
                "id": "RVBE4RKQSCGJ2",
                "escalation_chain_id": "F5JU6KJET33FE", 
                "slack": {
                    "channel_id": "CH23212D"
                }
            },
            "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

shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```shell
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 in the following way:

JSON ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```json
{
    "id": "CFRPV98RPR1U8",
    "name": "Grafana :blush:",
    "team_id": null,
    "link": "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/",
    "type": "grafana",
    "default_route": {
        "id": "RVBE4RKQSCGJ2",
        "escalation_chain_id": "F5JU6KJET33FE",
        "slack": {
            "channel_id": "CH23212D"
        }
    },
    "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 alert groups or alerts.

shell ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

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

**HTTP request**

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