Integration API

🚧

If using the EU instance of Opsgenie, the URL needs to be https://api.eu.opsgenie.com for requests to be successful.

General Information

List Integrations

Optional Parameters

Parameter
typeType of the integration. If type parameter is given, the result will be filtered by type
teamIdThe ID of the team. If the team ID parameter is given, the result will be filtered by teamId
teamNameThe name of the team. If the team name parameter is given, the result will be filtered by teamName

πŸ“˜

If the apiKey belongs to a team integration, only that team's integrations will be listed. In that case teamId and teamName parameters are not allowed

Sample Request

curl -X GET 'https://api.opsgenie.com/v2/integrations?apiKey=xxxx'

Response:

{
  "code": 200,
  "data": [
    {
      "id": "055082dc-9427-48dd-85e0-f93a76e5f4a2",
      "name": "Signal Sciences",
      "enabled": true,
      "type": "SignalSciences",
      "teamId": ""
    },
    {
      "id": "073e8e6a-a481-4b9b-8619-5c31d9a6e5da",
      "name": "Default API",
      "enabled": true,
      "type": "API",
      "teamId": ""
    },
    {
      "id": "3163a9f9-5950-4e73-b99f-92562956e39c",
      "name": "Datadog",
      "enabled": false,
      "type": "Datadog",
      "teamId": ""
    },
    {
      "id": "55e405e3-a130-4c7a-9866-664e498f39a9",
      "name": "Observium2",
      "enabled": false,
      "type": "ObserviumV2",
      "teamId": ""
    },
    {
      "id": "72f6f51b-1ea9-4efd-be1b-4f29d1f593c6",
      "name": "Solarwinds",
      "enabled": false,
      "type": "Solarwinds",
      "teamId": ""
    },
    {
      "id": "733388de-2ac1-4d70-8a2e-82834cb679d6",
      "name": "Webhook",
      "enabled": false,
      "type": "Webhook",
      "teamId": ""
    },
    {
      "id": "8418d193-2dab-4490-b331-8c02cdd196b7",
      "name": "Marid",
      "enabled": false,
      "type": "Marid",
      "teamId": ""
    }
  ],
  "took": 0,
  "requestId": "9ceeb66b-9890-4687-9dbb-a38abc71eda3"
}

Get Integration

πŸ“˜

If the apiKey belongs to a team integration, only that team's integrations can be retrieved.

Sample Request

curl -X GET 'https://api.opsgenie.com/v2/integrations/8418d193-2dab-4490-b331-8c02cdd196b7?apiKey=xxxx'

Response:

{
  "code": 200,
  "data": {
    "_readOnly": [
      "isAdvanced",
      "isGlobal"
    ],
    "alertActions": [
      "Create",
      "Acknowledge",
      "UnAcknowledge",
      "Snooze",
      "EscalateToNext",
      "AddNote",
      "AddRecipient",
      "AddTeam",
      "AddTags",
      "RemoveTags",
      "Close",
      "Delete",
      "CustomAction",
      "AssignOwnership",
      "TakeOwnership"
    ],
    "alertFilter": {
      "conditionMatchType": "Match All",
      "conditions": []
    },
    "sendAlertActions": true,
    "enabled": false,
    "allowConfigurationAccess": false,
    "allowWriteAccess": true,
    "ignoreRecipientsFromPayload": false,
    "ignoreTeamsFromPayload": false,
    "isAdvanced": false,
    "recipients": [],
    "suppressNotifications": false,
    "isGlobal": true,
    "name": "Marid",
    "type": "Marid"
  },
  "took": 0,
  "requestId": "d6e1300e-6ec8-4eeb-9c8e-096799424c1b"
}

Create API Based Integration

Mandatory Parameters

ParameterDescription
typeType of the integration. (For instance, "API" for API Integration.
nameName of the integration. Name must be unique for each integration.

Optional Parameters

ParameterDescription
enabledThis parameter is for specifying whether the integration will be enabled or not. Defaults to true
allowConfigurationAccessThis parameter is for allowing or restricting the configuration access. If configuration access is restricted, the integration will be limited to Alert API requests, Incident API requests and sending heartbeats. Defaults to false.
allowWriteAccessThis parameter is for configuring the read-only access of integration. If the integration is limited to read-only access, the integration will not be authorized to perform any create, update or delete action within any domain. Defaults to true.
ignoreRecipientsFromPayloadIf enabled, the integration will ignore recipients sent in request payloads. Defaults to false.
ignoreTeamsFromPayloadIf enabled, the integration will ignore teams sent in request payloads. Defaults to false.
recipientsOptional user, schedule, teams or escalation names to calculate which users will receive the notifications of the alert. Recipients which are exceeding the limit are ignored. The possible values for recipients are:
user
escalation
schedule
team
all
none

For example: "recipients": [{"type": "team","name": "team1"},{"type": "user","username": "[email protected]"}]
suppressNotificationsIf enabled, notifications that come from alerts will be suppressed. Defaults to false.
ownerTeamOwner team of the integration, consisting id and/or name of the owner team.

ownerTeam field example:

{
    "ownerTeam": {
        "name":"operations_team"
    }
}
{
    "ownerTeam": {
        "id":"8418d193-2alp-4490-b331-8c02cdd196b7"
    }
}

Sample Requests

curl -X POST 'https://api.opsgenie.com/v2/integrations'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "type": "API",
  "name": "API Integration",
  "ownerTeam": {
    	"name": "ops_team"
    },
  "allowWriteAccess": true,
  "ignoreRecipientsFromPayload": false,
  "ignoreTeamsFromPayload": false,
  "recipients": [
    {
      "type": "team",
      "name": "team1"
    },
    {
      "type": "user",
      "username": "[email protected]"
    },
    {
      "type": "escalation",
      "name": "team1_escalation"
    },
    {
      "type": "schedule",
      "name": "weekdaySchedule"
    }
  ],
  "suppressNotifications": false
}'

Response:

{
  "code": 201,
  "data": {
    "id": "6683487a-f06e-4b2e-b52c-3cbc30f9a59e",
    "name": "API Integration",
    "enabled": true,
    "type": "API",
    "teamId": "",
    "apiKey": "24393670-fff1-45ed-913e-8d6aeebebc30"
  },
  "took": 0,
  "requestId": "b3578948-55b3-4acc-9bf1-2ce2db3e15a2"
}

Create Email Based Integration

Mandatory Parameters

ParameterDescription
typeType of the integration. It should be set as "Email" for Email integrations.
nameName of the integration. Name must be unique for each integration.
emailUsernameThe username part of the email address. It must be unique for each integration.

Optional Parameters

ParameterDescription
enabledThis parameter is for specifying whether the integration will be enabled or not. Defaults to true.
ignoreRecipientsFromPayloadIf enabled, the integration will ignore recipients sent in request payloads. Defaults to false.
ignoreTeamsFromPayloadIf enabled, the integration will ignore teams sent in request payloads. Defaults to false.
recipientsOptional user, schedule, teams or escalation names to calculate which users will receive the notifications of the alert. Recipients which are exceeding the limit are ignored. The possible values for recipients are:
user
escalation
schedule
team
all
none


For example: "recipients": [{"type": "team","name": "team1"},{"type": "user","username": "[email protected]"}]
suppressNotificationsIf enabled, notifications that come from alerts will be suppressed. Defaults to false.

Sample Request

curl -X POST https://api.opsgenie.com/v2/integrations
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "type": "Email",
  "name": "Email Integration",
  "emailUsername": "xyz",
  "ignoreRecipientsFromPayload": false,
  "ignoreTeamsFromPayload": false,
  "recipients": [{"type": "all"}],
  "suppressNotifications": false
}'

Response:

{
  "code": 201,
  "data": {
    "id": "9bb2a0bb-6b39-4578-8dd9-768df103aad6",
    "name": "Email Integration",
    "enabled": true,
    "type": "Email",
    "emailAddress": "[email protected]"
  },
  "took": 0,
  "requestId": "117c0352-bc80-4960-8298-fdd59bf27d02"
}

Update Integration

🚧

This call updates all information of the integration. If a parameter is not given in the payload, those parameters will be updated to their default values. We recommend you to use GET actions first, then modify the necessary parts and PUT the whole payload back again.

Mandatory Parameters

ParameterDescription
typeType of the integration. It should be set as "Email" for generic Email integrations.
nameName of the integration. Name must be unique for each integration.
emailUsername (only for email integrations)The username part of the email address. It must be unique for each integration.

Optional Parameters

ParameterDescription
enabledThis parameter is for specifying whether the integration will be enabled or not. Defaults to true.
ignoreRecipientsFromPayloadIf enabled, the integration will ignore recipients sent in request payloads. Defaults to false.
ignoreTeamsFromPayloadIf enabled, the integration will ignore teams sent in request payloads. Defaults to false.
recipientsOptional user, schedule, teams or escalation names to calculate which users will receive the notifications of the alert. Recipients which are exceeding the limit are ignored. The possible values for recipients are:
user
escalation
schedule
team
all
none

For example: "recipients": [{"type": "team","name": "team1"},{"type": "user","username": "[email protected]"}]
suppressNotificationsIf enabled, notifications that come from alerts will be suppressed. Defaults to false.

πŸ“˜

If the apiKey belongs to a team integration, only that team's integrations can be updated.

Sample Request

curl -X PUT 'https://api.opsgenie.com/v2/integrations/bb2a0bb-6b39-4578-8dd9-768df103aad6'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "type": "Email",
  "name": "Email Integration-1",
  "emailUsername": "xyz",
  "ignoreRecipientsFromPayload": false,
  "ignoreTeamsFromPayload": false,
  "recipients": [{"type": "all"}],
  "suppressNotifications": false
}

Response

{
  "code": 200,
  "data": {
    "id": "ff2e93b1-7e0c-460d-9093-10b6ad897133",
    "name": "Email Integration-1",
    "enabled": true,
    "type": "Email",
    "teamId": "",
    "emailAddress": "[email protected]"
  },
  "took": 0,
  "requestId": "9ae63dd7-ed00-4c81-86f0-c4ffd33142c9"
}

Delete Integration

πŸ“˜

If the apiKey belongs to a team integration, only that team's integrations can be deleted.

Sample Request

curl -X DELETE 'https://api.opsgenie.com/v2/integrations/8418d193-2dab-4490-b331-8c02cdd196b7?apiKey=xxxx'

Response

{
  "result": "Deleted successful",
  "took": 0,
  "requestId": "d1aace7d-18c6-4aec-888d-d2b1308f9cd1"
}

Enable Integration

πŸ“˜

If the apiKey belongs to a team integration, only that team's integrations can be enabled.

Sample Request

curl -X POST 'https://api.opsgenie.com/v2/integrations/8418d193-2dab-4490-b331-8c02cdd196b7/enable'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'

Response

{
  "code": 200,
  "data": {
    "id": "74410a0a-f57e-4f0a-bc87-cf6c96bbb2b9",
    "name": "API Integration76",
    "enabled": true,
    "teamId": "",
    "type": "API"
  },
  "took": 0,
  "requestId": "cc32c4e5-de24-4fa3-a9d5-aa4883d11f8e"
}

Disable Integration

πŸ“˜

If the apiKey belongs to a team integration, only that team's integrations can be disabled.

Sample Request

curl -X POST 'https://api.opsgenie.com/v2/integrations/8418d193-2dab-4490-b331-8c02cdd196b7/disable'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'

Response

{
  "code": 200,
  "data": {
    "id": "74410a0a-f57e-4f0a-bc87-cf6c96bbb2b9",
    "name": "API Integration",
    "enabled": false,
    "teamId": "",
    "type": "API"
  },
  "took": 0,
  "requestId": "bb51d27a-b763-4ae5-9a7f-b575578e703d"
}

Authenticate Integration

JSON Body Fields

FieldsMandatoryDescription
typetrueType of the integration. Possible values are;

Sample Request

curl -X POST 'https://api.opsgenie.com/v2/integrations/authenticate'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{ "type":"api" }'

Response

{
  "result": "Integration [api] is valid",
  "took": 0.093,
  "requestId": "a0199601-0245-4ed9-b7d7-0752e2f4824b"
}

Get Integration Actions

πŸ“˜

If the apiKey belongs to a team integration, only that the actions of that team's integrations can be retrieved.

Sample Request

curl -X GET 'https://api.opsgenie.com/v2/integrations/bcb4856b-8823-48c8-9f7c-c75a9e8b1c66/actions
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'

Response:

{
  "code": 200,
  "data": {
    "_parent": {
      "id": "bcb4856b-8823-48c8-9f7c-c75a9e8b1c66",
      "name": "API",
      "enabled": true,
      "type": "API"
    },
    "ignore": [],
    "create": [
      {
        "type": "create",
        "name": "Create Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": [
            {
              "field": "alias",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      }
    ],
    "close": [
      {
        "type": "close",
        "name": "Close Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": [
            {
              "field": "alias",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "acknowledge": [
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "addNote": [
      {
        "type": "addNote",
        "name": "Add Note",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ]
  },
  "took": 0,
  "requestId": "85e0cf9a-599b-496b-b03d-f0d1b515b411"
}

Create a New Integration Action

Available Methods

Mandatory Parameters

ParameterDescription
typeThe type of the action. Type can be:
create
close
acknowledge
addNote
nameName of the action.
aliasUsed for alert deduplication. Alias is a user defined identifier for alerts. There can be only one open alert with the same alias. Alias field provides the ability to assign a known ID and later this ID can be used to perform additional actions such as log, close, attach for the same alert.

Optional Parameters

ParameterDescription
orderIt is an integer value that defines in which order the action will be performed.
userOwner of the execution for integration action.
noteAdditional alert action note.
filterIt is a map which takes conditionMatchType and conditions list as parameters. For example: "filter": {"conditionMatchType": "Match All Conditions","conditions": [{"field": "alias","isNot": false,"operation": "Is Empty","expectedValue": ""}}
conditionMatchTypeIt specifies which condition match type will be used for filtering. The options are:
Match All for Match all data option
Match Any Condition for Match one or more conditions below option
* Match All Conditions for Match all conditions below option
conditionsA comma separated list of conditions which are set for filtering.For example: "conditions": [{"field": "alias","isNot": false,"operation": "Is Empty","expectedValue": ""}, {"field": "message","isNot": true,"operation": "Contains","expectedValue": "testAlert"}]
fieldIt specifies which field will be checked for filtering.

For API Based Integration the fields are given below:

Alias
Actions
Description
Entity
Extra Properties
Message
Priority
Recipients
Source
Tags
Teams


For Email Based Integration the fields are given below:

Conversation Subject
From Address
From Name
Messages
Subject
isNotIt is a boolean parameter whose default value is false.
operationIt specifies which operation should be satisfied to perform the actions. The conditions are listed below:
Contains
Equals
Matches
Starts With
Ends With
Is Empty
* Equals Ignore Whitespace
expectedValueIt specifies what is the expected value of the field for filtering condition.
source (Only for create action)User defined field to specify source of action.
message (Only for create action)Alert text limited to 130 characters.
description (Only for create action)This field can be used to provide a detailed description of the alert, anything that may not have fit in the Message field.
entity (Only for create action)The entity the alert is related to.
tags (Only for create action)A comma separated list of labels attached to the alert.
extraProperties (Only for create action)Set of user defined properties. This will be specified as a nested JSON map such as: "extraProperties" : {"prop1":"prop1Value", "prop2":"prop2Value"}
ignoreRecipientsFromPayload (Only for create action)If enabled, the integration will ignore recipients sent in request payloads. Defaults to false.
ignoreTeamsFromPayload (Only for create action)If enabled, the integration will ignore teams sent in request payloads. Defaults to false.
recipients (Only for create action)Optional user, schedule, teams or escalation names to calculate which users will receive the notifications of the alert. Recipients which are exceeding the limit are ignored. The possible values for recipients are:
user
escalation
schedule
team
all
none


For example: "recipients": [{"type": "team","name": "team1"},{"type": "user","username": "[email protected]"}]

Sample Request for Create Integration Action

curl -X POST 'https://api.opsgenie.com/v2/integrations/bcb4856b-8823-48c8-9f7c-c75a9e8b1c66/actions
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "type": "create",
  "name": "Create Alert 2",
  "order": 1,
  "filter": {
    "conditionMatchType": "Match Any Condition",
    "conditions": [
      {
        "field": "tags",
        "isNot": false,
        "operation": "Is Empty",
        "expectedValue": ""
      }
    ]
  },
  "user": "{{user}}",
  "note": "{{note}}",
  "alias": "{{alias}}",
  "source": "{{source}}",
  "message": "{{message}}",
  "description": "{{description}}",
  "entity": "{{entity}}",
  "appendAttachments": true,
  "alertActions": [],
  "ignoreAlertActionsFromPayload": false,
  "recipients": [],
  "ignoreRecipientsFromPayload": false,
  "ignoreTeamsFromPayload": false,
  "tags": [],
  "ignoreTagsFromPayload": false,
  "extraProperties": {},
  "ignoreExtraPropertiesFromPayload": false
}'

Response

{
  "code": 201,
  "data": {
    "_parent": {
      "id": "bcb4856b-8823-48c8-9f7c-c75a9e8b1c66",
      "name": "API",
      "enabled": true,
      "type": "API"
    },
    "ignore": [],
    "create": [
      {
        "type": "create",
        "name": "Create Alert 2",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Is Empty",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      },
      {
        "type": "create",
        "name": "Create Alert",
        "order": 2,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Is Empty",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      }
    ],
    "close": [
      {
        "type": "close",
        "name": "Close Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All Conditions",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Equals",
              "expectedValue": "closeAlert"
            }
          ]
        },
        "user": "API",
        "note": "",
        "alias": "{{alias}}"
      }
    ],
    "acknowledge": [
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "addNote": [
      {
        "type": "addNote",
        "name": "Add Note",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ]
  },
  "took": 0,
  "requestId": "789d5080-9d06-4820-a258-18aa879d4201"
}'

Sample Request for Creating Close Alert Action

curl -X POST 'https://api.opsgenie.com/v2/integrations/bcb4856b-8823-48c8-9f7c-c75a9e8b1c66/actions'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "type": "close",
  "name": "Close Alert 3",
  "order": 1,
  "filter": {
    "conditionMatchType": "Match All Conditions",
    "conditions": [
      {
        "field": "tags",
        "isNot": false,
        "operation": "Equals",
        "expectedValue": "closeAlert"
      }
    ]
  },
  "user": "API",
  "note": "",
  "alias": "{{alias}}"
}'

Response

{
  "code": 201,
  "data": {
    "_parent": {
      "id": "bcb4856b-8823-48c8-9f7c-c75a9e8b1c66",
      "name": "API",
      "enabled": true,
      "type": "API"
    },
    "ignore": [],
    "create": [
      {
        "type": "create",
        "name": "Create Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "alias",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      },
          {
        "type": "create",
        "name": "Create Alert",
        "order": 2,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Is Empty",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      }
    ],
    "close": [
      {
        "type": "close",
        "name": "Close Alert 3",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All Conditions",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Equals",
              "expectedValue": "closeAlert"
            }
          ]
        },
        "user": "API",
        "note": "",
        "alias": "{{alias}}"
      },
      {
        "type": "close",
        "name": "Close Alert 2",
        "order": 2,
        "filter": {
          "conditionMatchType": "Match All Conditions",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": "closeAlert"
            }
          ]
        },
        "user": "API",
        "note": "",
        "alias": "{{alias}}"
      },
      {
        "type": "close",
        "name": "Close Alert",
        "order": 3,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": [
            {
              "field": "alias",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "acknowledge": [
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "addNote": [
      {
        "type": "addNote",
        "name": "Add Note",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ]
  },
  "took": 0,
  "requestId": "ca3c9c5d-f71e-4c7d-9df4-322d497af13c"
}

Sample Request for Creating Acknowledge Alert Action

curl -X POST 'https://api.opsgenie.com/v2/integrations/bcb4856b-8823-48c8-9f7c-c75a9e8b1c66/actions'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "type": "acknowledge",
  "name": "Acknowledge Alert 2",
  "order": 1,
  "filter": {
    "conditionMatchType": "Match All Conditions",
    "conditions": [
      {
        "field": "actions",
        "isNot": false,
        "operation": "Contains",
        "expectedValue": "Acknowledge"
      }
    ]
  },
  "user": "{{user}}",
  "note": "{{note}}",
  "alias": "{{alias}}"
}'

Response

{
  "code": 201,
  "data": {
    "_parent": {
      "id": "bcb4856b-8823-48c8-9f7c-c75a9e8b1c66",
      "name": "API",
      "enabled": true,
      "type": "API"
    },
    "ignore": [],
    "create": [
      {
        "type": "create",
        "name": "Create Alert 2",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Is Empty",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      },
      {
        "type": "create",
        "name": "Create Alert",
        "order": 2,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Is Empty",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      }
    ],
    "close": [
      {
        "type": "close",
        "name": "Close Alert 3",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All Conditions",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Equals",
              "expectedValue": "closeAlert"
            }
          ]
        },
        "user": "API",
        "note": "",
        "alias": "{{alias}}"
      },
      {
        "type": "close",
        "name": "Close Alert",
        "order": 3,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": [
            {
              "field": "alias",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "acknowledge": [
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert 2",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All Conditions",
          "conditions": [
            {
              "field": "actions",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": "Acknowledge"
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      },
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert",
        "order": 2,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "addNote": [
      {
        "type": "addNote",
        "name": "Add Note",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ]
  },
  "took": 0,
  "requestId": "a7809462-b1d9-4fb5-a10a-620986bb45b6"
}

Sample Request for Creating Add Note Action

curl -X POST 'https://api.opsgenie.com/v2/integrations/bcb4856b-8823-48c8-9f7c-c75a9e8b1c66/actions'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "type": "addNote",
  "name": "Add Note 2",
  "order": 1,
  "filter": {
    "conditionMatchType": "Match All",
    "conditions": []
  },
  "user": "{{user}}",
  "note": "{{note}}",
  "alias": "{{alias}}"
}'

Response

{
  "code": 201,
  "data": {
    "_parent": {
      "id": "bcb4856b-8823-48c8-9f7c-c75a9e8b1c66",
      "name": "API",
      "enabled": true,
      "type": "API"
    },
    "ignore": [],
    "create": [
      {
        "type": "create",
        "name": "Create Alert 2",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Is Empty",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      },
      {
        "type": "create",
        "name": "Create Alert",
        "order": 2,
        "filter": {
          "conditionMatchType": "Match Any Condition",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Is Empty",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      }
    ],
    "close": [
      {
        "type": "close",
        "name": "Close Alert 3",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All Conditions",
          "conditions": [
            {
              "field": "tags",
              "isNot": false,
              "operation": "Equals",
              "expectedValue": "closeAlert"
            }
          ]
        },
        "user": "API",
        "note": "",
        "alias": "{{alias}}"
      },
      {
        "type": "close",
        "name": "Close Alert",
        "order": 3,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": [
            {
              "field": "alias",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": ""
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "acknowledge": [
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert 2",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All Conditions",
          "conditions": [
            {
              "field": "actions",
              "isNot": false,
              "operation": "Contains",
              "expectedValue": "Acknowledge"
            }
          ]
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      },
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert",
        "order": 2,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "addNote": [
      {
        "type": "addNote",
        "name": "Add Note",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      },
      {
        "type": "addNote",
        "name": "Add Note 2",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ]
  },
  "took": 0,
  "requestId": "a7809462-b1d9-4fb5-a10a-620986bb45b6"
}

Update All Integration Actions

🚧

This method updates all of the actions of the integration. If an action is not put on the payload, that action will be deleted. We recommend you to use GET actions first, then modify the necessary parts and PUT the whole payload back again.

Available Methods

Mandatory Parameters

typeThe type of the action. Type can be:
create
close
acknowledge
addNote
nameName of the action.
aliasUsed for alert deduplication. Alias is a user defined identifier for alerts. There can be only one open alert with the same alias. Alias field provides the ability to assign a known ID and later this ID can be used to perform additional actions such as log, close, attach for the same alert.

Optional Parameters

orderIt is an integer value that defines in which order the action will be performed.
userOwner of the execution for integration action.
noteAdditional alert action note.
filterIt is a map which takes conditionMatchType and conditions list as parameters. For example: "filter": {"conditionMatchType": "Match All Conditions","conditions": [{"field": "alias","isNot":false,"operation": "Is Empty","expectedValue": ""}}
conditionMatchTypeIt specifies which condition match type will be used for filtering. The options are:
Match All for Match all data option
Match Any Condition for Match one or more conditions below option
* Match All Conditions for Match all conditions below option
conditionsA comma separated list of conditions which are set for filtering.For example: "conditions": [{"field": "alias","isNot": false,"operation": "Is Empty","expectedValue": ""}, {"field": "message","isNot": true,"operation": "Contains","expectedValue": "testAlert"}]
fieldIt specifies which field will be checked for filtering.

For API Based Integration the fields are given below:
Alias
Actions
Description
Entity
Extra Properties
Message
Priority
Recipients
Source
Tags
Teams


For Email Based Integration the fields are given below:
Conversation Subject
From Address
From Name
Messages
Subject
isNotIt is a boolean parameter whose default value is false.
operationIt specifies which operation should be satisfied to perform the actions. The conditions are listed below:
Contains
Equals
Matches
Starts With
Ends With
Is Empty
* Equals Ignore Whitespace
expectedValueIt specifies what is the expected value of the field for filtering condition.
source (Only for create action)User defined field to specify source of action.
message (Only for create action)Alert text limited to 130 characters.
description (Only for create action)This field can be used to provide a detailed description of the alert, anything that may not have fit in the Message field.
entity (Only for create action)The entity the alert is related to.
tags (Only for create action)A comma separated list of labels attached to the alert.
extraProperties (Only for create action)Set of user defined properties. This will be specified as a nested JSON map such as: "extraProperties" : {"prop1":"prop1Value", "prop2":"prop2Value"}
ignoreRecipientsFromPayload (Only for create action)If enabled, the integration will ignore recipients sent in request payloads. Defaults to false.
ignoreTeamsFromPayload (Only for create action)If enabled, the integration will ignore teams sent in request payloads. Defaults to false.
recipients (Only for create action)Optional user, schedule, teams or escalation names to calculate which users will receive the notifications of the alert. Recipients which are exceeding the limit are ignored. The possible values for recipients are:
user
escalation
schedule
team
all
none


For example: "recipients": [{"type": "team","name": "team1"},{"type":"user","username": "[email protected]"}]

Sample Request for Create Integration Action

curl -X PUT  'https://api.opsgenie.com/v2/integrations/bcb4856b-8823-48c8-9f7c-c75a9e8b1c66/actions'
  --header 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1alpf565c889'
  --header 'Content-Type: application/json'
  --data '{
  "ignore": [],
  "create": [
    {
      "type": "create",
      "name": "Creating Alert",
      "order": 1,
      "filter": {
        "conditionMatchType": "Match All",
        "conditions": []
      },
      "user": "{{user}}",
      "note": "{{note}}",
      "alias": "{{alias}}",
      "source": "{{source}}",
      "message": "{{message}}",
      "description": "{{description}}",
      "entity": "{{entity}}",
      "appendAttachments": true,
      "alertActions": [],
      "ignoreAlertActionsFromPayload": false,
      "recipients": [],
      "ignoreRecipientsFromPayload": false,
      "ignoreTeamsFromPayload": false,
      "tags": [],
      "ignoreTagsFromPayload": false,
      "extraProperties": {},
      "ignoreExtraPropertiesFromPayload": false
    }
  ],
  "close": [
    {
      "type": "close",
      "name": "Close Alert",
      "order": 1,
      "filter": {
        "conditionMatchType": "Match All",
        "conditions": []
      },
      "user": "{{user}}",
      "note": "{{note}}",
      "alias": "{{alias}}"
    }
  ],
  "acknowledge": [
    {
      "type": "acknowledge",
      "name": "Acknowledge Alert",
      "order": 1,
      "filter": {
        "conditionMatchType": "Match All",
        "conditions": []
      },
      "user": "{{user}}",
      "note": "{{note}}",
      "alias": "{{alias}}"
    }
  ],
  "addNote": [
    {
      "type": "addNote",
      "name": "Add Note",
      "order": 1,
      "filter": {
        "conditionMatchType": "Match All",
        "conditions": []
      },
      "user": "{{user}}",
      "note": "{{note}}",
        "alias": "{{alias}}"
    }
  ]
}'

Response

{
  "code": 200,
  "data": {
    "_parent": {
      "id": "bcb4856b-8823-48c8-9f7c-c75a9e8b1c66",
      "name": "API",
      "enabled": true,
      "type": "API"
    },
    "ignore": [],
    "create": [
      {
        "type": "create",
        "name": "Creating Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}",
        "source": "{{source}}",
        "message": "{{message}}",
        "description": "{{description}}",
        "entity": "{{entity}}",
        "appendAttachments": true,
        "alertActions": [],
        "ignoreAlertActionsFromPayload": false,
        "recipients": [],
        "ignoreRecipientsFromPayload": false,
        "ignoreTeamsFromPayload": false,
        "tags": [],
        "ignoreTagsFromPayload": false,
        "extraProperties": {},
        "ignoreExtraPropertiesFromPayload": false
      }
    ],
    "close": [
      {
        "type": "close",
        "name": "Close Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "acknowledge": [
      {
        "type": "acknowledge",
        "name": "Acknowledge Alert",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ],
    "addNote": [
      {
        "type": "addNote",
        "name": "Add Note",
        "order": 1,
        "filter": {
          "conditionMatchType": "Match All",
          "conditions": []
        },
        "user": "{{user}}",
        "note": "{{note}}",
        "alias": "{{alias}}"
      }
    ]
  },
  "took": 0,
  "requestId": "1dc984f2-49a3-4582-a077-31a5ea6a33ee"
}