Integrations HTTP API Note
⚠️ msteams
templates are only available on Grafana CloudCreate an integration Required permission : grafana-oncall-app.integrations:write
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:
Expand code
{
"id" : "CFRPV98RPR1U8" ,
"name" : "Grafana :blush:" ,
"team_id" : null ,
"link" : "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/" ,
"inbound_email" : null ,
"type" : "grafana" ,
"default_route" : {
"id" : "RVBE4RKQSCGJ2" ,
"escalation_chain_id" : "F5JU6KJET33FE" ,
"slack" : {
"channel_id" : "CH23212D"
}
} ,
"templates" : {
"grouping_key" : null ,
"resolve_signal" : null ,
"acknowledge_signal" : null ,
"source_link" : null ,
"slack" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"web" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"sms" : {
"title" : null
} ,
"phone_call" : {
"title" : null
} ,
"telegram" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"mobile_app" : {
"title" : null ,
"message" : null
} ,
"email" : {
"title" : null ,
"message" : null
} ,
"msteams" : {
"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 refer to Alertmanager .
HTTP request
POST {{API_URL}}/api/v1/integrations/
Get integration Required permission : grafana-oncall-app.integrations:read
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:
Expand code
{
"id" : "CFRPV98RPR1U8" ,
"name" : "Grafana :blush:" ,
"team_id" : null ,
"link" : "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/" ,
"inbound_email" : null ,
"type" : "grafana" ,
"default_route" : {
"id" : "RVBE4RKQSCGJ2" ,
"escalation_chain_id" : "F5JU6KJET33FE" ,
"slack" : {
"channel_id" : "CH23212D"
}
} ,
"templates" : {
"grouping_key" : null ,
"resolve_signal" : null ,
"acknowledge_signal" : null ,
"source_link" : null ,
"slack" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"web" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"sms" : {
"title" : null
} ,
"phone_call" : {
"title" : null
} ,
"telegram" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"mobile_app" : {
"title" : null ,
"message" : null
} ,
"email" : {
"title" : null ,
"message" : null
} ,
"msteams" : {
"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 Required permission : grafana-oncall-app.integrations:read
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:
Expand code
{
"count" : 1 ,
"next" : null ,
"previous" : null ,
"results" : [
{
"id" : "CFRPV98RPR1U8" ,
"name" : "Grafana :blush:" ,
"team_id" : null ,
"link" : "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/" ,
"inbound_email" : null ,
"type" : "grafana" ,
"default_route" : {
"id" : "RVBE4RKQSCGJ2" ,
"escalation_chain_id" : "F5JU6KJET33FE" ,
"slack" : {
"channel_id" : "CH23212D"
}
} ,
"templates" : {
"grouping_key" : null ,
"resolve_signal" : null ,
"acknowledge_signal" : null ,
"source_link" : null ,
"slack" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"web" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"sms" : {
"title" : null
} ,
"phone_call" : {
"title" : null
} ,
"telegram" : {
"title" : null ,
"message" : null ,
"image_url" : null
} ,
"mobile_app" : {
"title" : null ,
"message" : null
} ,
"email" : {
"title" : null ,
"message" : null
} ,
"msteams" : {
"title" : null ,
"message" : null ,
"image_url" : null
}
}
}
] ,
"current_page_number" : 1 ,
"page_size" : 50 ,
"total_pages" : 1
}
Note : The response is paginated . You may need to make multiple requests to get all records.
HTTP request
GET {{API_URL}}/api/v1/integrations/
Update integration Required permission : grafana-oncall-app.integrations:write
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:
Expand code
{
"id" : "CFRPV98RPR1U8" ,
"name" : "Grafana :blush:" ,
"team_id" : null ,
"link" : "{{API_URL}}/integrations/v1/grafana/mReAoNwDm0eMwKo1mTeTwYo/" ,
"inbound_email" : null ,
"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
} ,
"mobile_app" : {
"title" : null ,
"message" : null
}
}
}
HTTP request
PUT {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/
Delete integration Required permission : grafana-oncall-app.integrations:write
Deleted integrations will stop recording new alerts from monitoring. Integration removal won’t trigger removal of
related alert groups or alerts.
curl "{{API_URL}}/api/v1/integrations/CFRPV98RPR1U8/" \
--request DELETE \
--header "Authorization: meowmeowmeow"
HTTP request
DELETE {{API_URL}}/api/v1/integrations/<INTEGRATION_ID>/