Opsgenie Actions API

πŸ“˜

Create an API Integration and obtain your apiKey to make requests listed below.

🚧

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

Create Action Channel

JSON Body Fields

FieldMandatoryDescription
nametrueName of the channel
actionTypetrueType of action channel
Possible values are: "rest", "aws-systems-manager", "aws-sns" and "oec"
awsSmActionChannelIf actionType value is "aws-systems-manager" then trueAWS Systems Manager configurations
awsSnsActionChannelIf actionType value is "aws-sns" then trueAWS SNS configurations
restChannelIf actionType value is "rest" then trueRESTful configurations

awsSmActionChannel field example:

"awsSmActionChannel" : {
    "roleName" : "opsgenie-automation-action-cem",
    "accountId" : "1234567-21325467",
    "region" : "us-west-2"
}

awsSnsActionChannel field example:

"awsSnsActionChannel": {
    "topicName" : "example-topic-name",
    "accountId" : "123",
    "region" : "eu-central-1"
}

restChannel field example:

"restActionChannel": {
  "url" : "https://cem.ngrok.io",
  "headers" : {
    "test1" : "test2"
  }
}

Sample Request

curl --request POST \
  --url 'https://api.opsgenie.com/v1/actions/channels?teamId=40fba2a9-503a-4460-b0e0-7059335d7e68' \
  --header 'authorization: GenieKey f9f5b3aa-6822-4391-8b36-ab8847ec58ea' \
  --header 'content-type: application/json' \
  --data '{
    "actionType" : "aws-systems-manager",
    "name" : "new-test",
    "awsSmActionChannel": {
        "roleName" : "opsgenie-automation-action-cem",
        "accountId" : "123",
        "region" : "us-west-2"
    }
}'

Sample Response

{
  "data": {
    "id": "4a3c42d8-78c1-4639-8d55-23a68394c151"
  },
  "took": 0.356,
  "requestId": "e18bc2f2-f0b9-4b84-a4a2-efbca447e5ad"
}

RESPONSE CODE: 201

πŸ“˜

For OEC channel type after Create API call is successful, ApiKey for the OEC channel will become visible on OpsGenie UI under Teams -> Actions -> Action Channels (select your channel)

Update Action Channel

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested channel

JSON Body Fields

FieldMandatoryDescription
nametrueName of the channel
awsSmActionChannelIf actionType value was "aws-systems-manager" then trueAWS Systems Manager configurations
awsSnsActionChannelIf actionType value was "aws-sns" then trueAWS SNS configurations
restChannelIf actionType value was "rest" then trueRESTful configurations

Sample Request

curl --request PATCH \
  --url 'https://api.opsgenie.com/v1/actions/channels/13683609-1432-4d98-bae0-ffdb6ae4ae0d?teamId=40fba2a9-503a-4460-b0e0-7059335d7e68' \
  --header 'authorization: GenieKey f9f5b3aa-6822-4391-8b36-ab8847ec58ea' \
  --header 'content-type: application/json' \
  --data '{
    "name" : "hepbirlikte",
    "restActionChannel": {
        "url" : "https://updated-opsgenie.io"
    }   
}'

Sample Response

{
  "data": {
    "id": "13683609-1432-4d98-bae0-ffdb6ae4ae0d"
  },
  "took": 0.109,
  "requestId": "79b6c050-e882-4570-8dcd-74646972b249"
}

RESPONSE CODE: 200

Delete Action Channel

In-Line Parameters

Referred NameDescription
channelIdChannel ID of the requested channel

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested channel

Sample Requests

curl --request DELETE \
  --url 'https://api.opsgenie.com/v1/actions/channels/4a3c42d8-78c1-4639-8d55-23a68394c151?teamId=40fba2a9-503a-4460-b0e0-7059335d7e68' \
  --header 'authorization: GenieKey f9f5b3aa-6822-4391-8b36-ab8847ec58ea'

Sample Response

{
  "data": {
    "result": "Deleted"
  },
  "took": 0.283,
  "requestId": "cb133e41-8952-4118-888e-374d927c7895"
}

RESPONSE CODE: 200

Get Action Channel

In-Line Parameters

Referred NameDescription
channelIdChannel ID of the requested channel

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested channel

Sample Request

curl -X GET -H "Authorization: GenieKey eb243592-faa2-4ba2-a551q-1afdf565c889" 'https://api.opsgenie.com/v1/actions/channels/d903a1dd-8afd-49ba-88f7-34498eb8113c?teamId=f57e4588-0c96-410b-8afa-24b31b117c22'

Sample Response

{
  "data": {
    "id": "13683609-1432-4d98-bae0-ffdb6ae4ae0d",
    "teamId": "40fba2a9-503a-4460-b0e0-7059335d7e68",
    "name": "test_1",
    "actionType": "rest",
    "restActionChannel": {
      "url": "https://test.com",
      "headers": {}
    }
  },
  "took": 1.886,
  "requestId": "6d0c548d-f109-458f-a702-184cb38e02c9"
}

RESPONSE CODE: 200

List Action Channels

Query Parameters

ParameterMandatoryDescription
teamIdtrueGetting channels for specified team

Sample Request

curl -X GET -H "Authorization: GenieKey eb243592-faa2-4ba2-a551q-1afdf565c889" 'https://api.opsgenie.com/v1/actions/channels?teamId=f57e4588-0c96-410b-8afa-24b31b117c22'

Sample Response

{
  "data": [
    {
      "id": "13683609-1432-4d98-bae0-ffdb6ae4ae0d",
      "teamId": "40fba2a9-503a-4460-b0e0-7059335d7e68",
      "name": "hepbirlikte",
      "actionType": "rest",
      "restActionChannel": {
        "url": "",
        "headers": {}
      }
    },
    {
      "id": "9299521f-11ee-4b1d-93a4-a963b65423c1",
      "teamId": "40fba2a9-503a-4460-b0e0-7059335d7e68",
      "name": "",
      "actionType": "aws-systems-manager",
      "awsSmActionChannel": {
        "accountId": "123",
        "roleName": "opsgenie-automation-action-cem",
        "region": "us-west-2"
      }
    }
  ],
  "took": 0.063,
  "requestId": "38b62f10-ad1f-477c-b895-5dc80cd90429"
}

RESPONSE CODE: 200

Create Action

❗️

Create Action API only supports Rest and OEC channel types for now.

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested channel

JSON Body Fields

FieldMandatoryDescription
nametrueName of the action
channelIdtrueChannel ID who owns the requested action
channelTypetrueChannel type who owns the requested action
statetrueState of being enabled or disabled
permissionstruePermissions that specifies to allowed member to perform the action
parametersfalse
awsSmDocumentIf channelType value is "aws-systems-manager" then trueAWS Systems Manager configurations

Sample Requests

curl -X POST \
  'https://api.opsgenie.com/v1/actions/actions?teamId=f57e4588-0c96-410b-8afa-24b31b117c22' \
  -H 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1afdf565c889' \
  -H 'content-type: application/json' \
  -d '{
    "name" : "Action2",
    "channelId": "e72b4966-f5de-4b00-b062f-16c4f300000",
    "channelType": "rest",
    "state": {
        "enabled" : false,
        "disableReason" : "something went wrong"
    },
    "permissions": {
        "allTeamMembersAllowed" : true,
        "allowedMembers" : [
            {
                "username" : "[email protected]"
            }
        ],
        "policiesEnabled" : false
    },
    "parameters" : [
        {
            "name": "parameter123",
            "description": "this makes difference",
            "valueType": "string",
            "required" : "true",
            "defaultValue" : [
                "val1", "val2"
            ],
            "parameterType": "prompt-user",
            "inputType": "free-form",
            "availableValues" : [
                "val1", "val2"
            ]
        }
    ]
}'

Sample Response

{
    "data": {
        "name": "Action2",
        "teamId": "f57e4588-0c96-410b-8afa-24b31b117c22",
        "channelId": "e72b4966-f5de-4b00-b062f-16c4f300000",
        "channelType": "rest",
        "state": {
            "enabled": false,
            "disableReason": "something went wrong"
        },
        "permissions": {
            "allTeamMembersAllowed": true,
            "allowedMembers": [
                {
                    "username": "[email protected]",
                    "id": "80ab38b5-4434-4a17-9092c-14974b00000"
                }
            ],
            "policiesEnabled": false
        },
        "parameters": [
            {
                "name": "parameter123",
                "description": "this makes difference",
                "valueType": "string",
                "required": true,
                "defaultValue": [],
                "parameterType": "prompt-user",
                "inputType": "free-form",
                "availableValues": [
                    "val2",
                    "val1"
                ]
            }
        ]
    },
    "took": 0.385,
    "requestId": "6aad4cde-9e9a-4ce8-acf50-f3074500000"
}

RESPONSE CODE: 201

Update Action

❗️

Update Action API only supports Rest and OEC channel types for now.

In-Line Parameters

Referred NameDescription
actionNameAction name of the requested action.

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested channel

πŸ“˜

Updates are applied as partially, so only altered fields are sufficient to update according to the fields in Create Action section.

Sample Request

curl -X PUT \
  'https://api.opsgenie.com/v1/actions/actions/Action2?teamId=f57e4588-0c96-410b-8afa-24b31b117c22' \
  -H 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1afdf565c889' \
  -H 'content-type: application/json' \
  -d '{
    "name" : "Updated-Action2",
    "channelType": "oec",
    "permissions": {
        "allTeamMembersAllowed" : false,
        "allowedMembers" : [
            {
                "username" : "[email protected]"
            },
            {
                "id" : "80ab38b5-4434-4a17-9092c-14974b00000"
            }
        ]
    }
}'

Sample Response

{
  "data": {
    "name": "Updated-Action2",
    "channelId": "e72b4966-f5de-4b00-b062f-16c4f300000",
    "channelType": "oec",
    "state": {
      "enabled": false,
      "disableReason": "something went wrong"
    },
    "permissions": {
      "allTeamMembersAllowed": false,
      "allowedMembers": [
        {
          "username": "[email protected]",
          "id": "80ab38b5-4434-4a17-9092c-14974b00001"
        },
        {
          "username": "[email protected]",
          "id": "80ab38b5-4434-4a17-9092c-14974b00000"
        }
      ],
      "policiesEnabled": false
    },
    "parameters": [
      {
        "name": "parameter123",
        "description": "this makes difference",
        "valueType": "string",
        "required": true,
        "defaultValue": [],
        "parameterType": "prompt-user",
        "inputType": "free-form",
        "availableValues": [
          "val2",
          "val1"
        ]
      }
    ]
  },
  "took": 0.546,
  "requestId": "d0e1130f-1326-4cd9-81f51-4bf28400000"
}

RESPONSE CODE: 200

Delete Action

In-Line Parameters

Referred NameDescription
actionNameAction name of the requested action.

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested channel

Sample Request

curl -X DELETE \
  'https://api.opsgenie.com/v1/actions/actions/Action2?teamId=f57e4588-0c96-410b-8afa-24b31b117c22' \
  -H 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1afdf565c889'

Sample Response

{
  "result": "Deleted",
  "took": 0.476,
  "requestId": "1c99bc61-3414-4b29-a18a7-373c9300000"
}

RESPONSE CODE: 200

Get Action

In-Line Parameters

Referred NameDescription
actionNameAction name of the requested action.

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested action

Sample Request

curl -X GET \
  'https://api.opsgenie.com/v1/actions/actions/Action1?teamId=f57e4588-0c96-410b-8afa-24b31b117c22' \
  -H 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1afdf565c889'

Sample Response

{
  "data": {
    "name": "Action1",
    "teamId": "f57e4588-0c96-410b-8afa-24b31b117c22",
    "channelId": "e72b4966-f5de-4b00-b062f-16c4f300000",
    "channelType": "rest",
    "state": {
      "enabled": true,
      "disableReason": ""
    },
    "permissions": {
      "allTeamMembersAllowed": false,
      "allowedMembers": [
        {
          "username": "[email protected]",
          "id": "2065a58b-61f8-44e3-b7fd-efc4d7500000"
        }
      ],
      "policiesEnabled": true
    },
    "parameters": []
  },
  "took": 1.749,
  "requestId": "7e08524c-3efb-45ef-a5a35-12c8fe00000"
}

RESPONSE CODE: 200

List Action

Query Parameters

ParameterMandatoryDescription
teamIdtrueTeam ID who owns the requested action

Sample Request

curl -X GET \
  'https://api.opsgenie.com/v1/actions/actions?teamId=f57e4588-0c96-410b-8afa-24b31b117c22' \
  -H 'Authorization: GenieKey eb243592-faa2-4ba2-a551q-1afdf565c889'

Sample Response

{
  "data": [
    {
      "name": "Action1",
      "channelId": "e72b4966-f5de-4b00-b062f-16c4f300000",
      "channelType": "rest",
      "state": {
        "enabled": true,
        "disableReason": ""
      }
    },
    {
      "name": "Action2",
      "channelId": "e72b4966-f5de-4b00-b062f-16c4f300000",
      "channelType": "rest",
      "state": {
        "enabled": true,
        "disableReason": ""
      }
    }
  ],
  "took": 2.241,
  "requestId": "2e0a501d-530d-4b41-89e66-5a366e00000"
}

RESPONSE CODE: 200

Execute Action

In-line Parameters

ParameterMandatoryDescription
actionNametrueThe name of Opsgenie action

JSON Body Fields

ParameterMandatoryDescription
identifiertrueIdentifier id of entity(alert or incident)
typetrueType of entity. It can be alert or incident. You can refer below for example values.
ownerTeamtrueOwner team of entity. Either name or id should be provided.
parametersfalseParameter fields are mandatory for only defined as prompted-user and required fields. name, valueType and values fields are mandatory for each item. You can refer below for example values.

Sample Request

curl -X POST \
  'https://api.opsgenie.com/v1/actions/actions/executions/post-to-rest-endpoint' \
  -H 'Authorization: GenieKey fe8b5cec-2e53-4d94-86fc-fcdea7f06bd5' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{
  
  "identifier":"f16dfd3a-f5ba-454b-8da4-1b0f32c45ed2-1590670606997",
  "type": "alert",
  "ownerTeam":{
      "id":"e5f85ef7-3bd3-4c32-9d69-dcaf20079d0e",
      "name":"teamName"
    },
  "parameters":[
    {
        "name":"testValue",
        "valueType": "boolean",
        "values":["true"]
    }]
}'
curl -X POST \
  'https://api.opsgenie.com/v1/actions/actions/executions/startInstanceEx1' \
  -H 'Authorization: GenieKey 2asdlkf2b-516d-asd2-a0f7-83e234ee82d8' \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/json' \
  -d '{
  
  "identifier":"0asdkke-6ca2-234n-lkas-cb2f23hdns4f-155las1232472",
  "type": "alert",
   "ownerTeam":{
      "id":"e5f85ef7-3bd3-4c32-9d69-dcaf20079d0e",
      "name":"teamName"
   },
  "parameters":[
    {
        "name":"InstanceId",
        "valueType": "string-list",
        "values":["i-019d86dcb5ac833ab"]
    }]
}'

Sample Response

{
    "data": {
        "message": "Request will be processed"
    },
    "took": 1.824,
    "requestId": "763f9d3e-0e95-4b49-8cc5-587ca9591879"
}

Get Execution Request Status

In-line Parameters

ParameterMandatoryDescription
requestIdtrueUniversally unique identifier of the tracked request. Please note: that ID of the request was provided within execution action response.

Sample Request

curl -X GET 'https://api.opsgenie.com/v1/actions/actions/executions/9ans345370-d120-498c-laks1-66dlajsd20d3' \
-H 'Authorization: GenieKey fe8b5cec-2e53-4d94-86fc-fcdea7f06bd5' \
-H 'Content-Type: application/json'

Sample Response

{
    "data": {
        "requestId": "1885e8ab-e227-4874-8af6-71cf39114a31",
        "opsgenieEntity": {
            "id": "f16dfd3a-f5ba-454b-8da4-1b0f32c45ed2-1590670606997",
            "type": "alert"
        },
        "actionName": "post-to-rest-endpoint",
        "success": true,
        "result": "Successfully processed action: ActionExecutionState{actionType='rest', state=finished}"
    },
    "took": 1.393,
    "requestId": "b1f69f62-7961-4022-99b9-71c24cda462c"
}