Notification Rule API

Overview

Create an API Integration and obtain your apiKey to make requests listed below.
You can refer Notification Settings for detailed information about the notification rules and their steps.

Notification Rule API Requests

Add Notification Rule Request

Add Notification Rule request is used to add a new notification rule to the specified user in OpsGenie.

Adding a notification rule with step(s) is not supported. You should create a notification rule without its steps first and then configure the steps by using the Notification Rule Step API requests to achieve this.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
name Name of the notification rule.
actionType Type of the action that notification rule will have. Should be one of New Alert, Acknowledged Alert, Closed Alert, Schedule Start, Renotified Alert, Assigned Alert, Add Note, Schedule End.
conditionMatchType Type of the operation will be applied on conditions. Should be one of Match All, Match Any Condition, Match All Conditions
conditions List of conditions will be checked before applying notification rule. Mandatory when actionType is not Schedule Start/End and conditionMatchType is Match Any Condition or Match All Conditions. You can refer here for more about the parameter definition.
notifyBefore List of Time Periods that notification for schedule start/end will be sent. Mandatory for Schedule Start/End rules. Can be Just Before, 15 mins, 1 hour, 1 day

Optional Parameters

Parameter
applyOrder The order of the notification rule within the notification rules with the same action type. applyOrder value is actually the index of the notification rule whose minimum value is 0 and whose maximum value is n-1 where the number of notification rules with the same action type is n. If the number of notification rules with the given type is greater than or equal to applyOrder value, the behavior will be the same as not providing this parameter.
restrictions Time interval that notification rule will work. It can be just one restriction which will be applied all days, or list of restrictions will be applied to the specified days. You may refer here for more about the parameter definition.
schedules This field is valid for Schedule Start/End rules. It can be list of schedule names/ids that notification rule will be applied when on call of that schedule starts/ends. This field shall only be populated with the specified user's schedules.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule' -d '

{
    "username":"john@opsgenie.com",
    "name": "New Alert Night",
    "actionType": "New Alert",
    "conditionMatchType": "Match All Conditions",
    "conditions": [
        {
            "not": "false",
            "field": "message",
            "operation": "contains",
            "expectedValue": "night"
        },
        {
            "not": "true",
            "field": "extraProperties",
            "operation": "contains Key",
            "expectedValue": "prop1"
        }

    ],
    "restrictions":{
        "startHour":"15",
        "startMinute":"04",
        "endHour":"18",
        "endMinute":"58"
    }
}'
Response:
{
     "id" : "d609c2d4-c7e0-4c3c-b339-40bb58f89963",
     "status" : "successful",
     "code" : 200
}
Sample Schedule Start Notification Rule Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule' -d '
{
    "username":"john@opsgenie.com",
    "name": "Schedule Start",
    "actionType": "Schedule Start",
    "schedules": ["network_team_schedule"],
    "notifyBefore": ["Just Before", "15 Mins"],
    "restrictions":[
        {
            "startHour":"15",
            "startMinute":"04",
            "endHour":"18",
            "endMinute":"58",
            "startDay":"Monday",
            "endDay": "Tuesday"
        },
        {
            "startHour":"10",
            "startMinute":"00",
            "endHour":"18",
            "endMinute":"15",
            "startDay":"Wednesday",
            "endDay": "Thursday"
        }
    ]
}
Response:
{
    "code": 200,
    "id": "56be7184-94d9-4335-b8d6-c3cab63f9455",
    "status": "successful"
}

Update Notification Rule Request

Update Notification Rule request is used to update notification rules of users in OpsGenie.

Updating notification rule with steps is not supported.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
id Id of the notification rule will be updated.

Optional Parameters

Parameter
name Name of the notification rule.
conditionMatchType Type of the operation will be applied on conditions.
conditions List of conditions will be checked before applying notification rule. You can refer here for more about the parameter definition.
notifyBefore List of Time Periods that notification for schedule start will be sent.
restrictions Time interval that notification rule will work. To remove all restrictions, this field should be populated with empty object ({}) or empty list ([]). You may refer here for more about the parameter definition.
schedules This field is valid for Schedule Start rules. It can be list of schedule names/ids that notification rule will be applied when on call of that schedule starts. This field shall only be populated with the users schedules.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule' -d '

{
    "username":"john@opsgenie.com",
    "id" : "d609c2d4-c7e0-4c3c-b339-40bb58f89963",
    "conditionMatchType": "Match All",
    "restrictions":{}
}'
Response:
{
     "id" : "d609c2d4-c7e0-4c3c-b339-40bb58f89963",
     "status" : "successful",
     "code" : 200
}
Sample Schedule Start Notification Rule Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule' -d '
{
    "username":"john@opsgenie.com",
    "id": "56be7184-94d9-4335-b8d6-c3cab63f9455",
    "schedules": [],
    "restrictions":[]
}
Response:
{
    "code": 200,
    "id": "56be7184-94d9-4335-b8d6-c3cab63f9455",
    "status": "successful"
}

Delete Notification Rule Request

Delete Notification Rule request is used to delete notification rules of users in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
id Id of notification rule will be deleted.
Sample Request
curl -XDELETE 'https://api.opsgenie.com/v1/json/user/notificationRule?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889&username=john@opsgenie.com&id=57d6bdbc-6ad2-4366-8438-6d1f4e10fb60'
Response:
{
  "code": 200,
  "status": "successful"
}

Enable Notification Rule Request

Enable Notification Rule request is used to enable notification rules of users in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
id Id of notification rule will be enabled.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/enable?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889' -d '
{
    "username": "john@opsgenie.com",
    "id": "8f38dcfb-b5ff-48ce-bedb-6322681eacb6"
}'
Response:
{
  "status": "success"
}

Disable Notification Rule Request

Disable Notification Rule request is used to disable notification rules of users in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
id Id of notification rule will be disabled.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/disable?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889' -d '
{
    "username": "john@opsgenie.com",
    "id": "8f38dcfb-b5ff-48ce-bedb-6322681eacb6"
}'
Response:
{
  "status": "success"
}

Change Notification Rule Order Request

Change Notification Rule Order Request is used to change the appliance order of the notification rule within the notification rules with same action type.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
id Id of the notification rule whose appliance order will be updated.
applyOrder The new order of the notification rule within the notification rules of same action type. applyOrder value is actually the index of the notification rule whose minimum value is 0 and whose maximum value is n-1 where the number of notification rules with the same action type is n.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/changeOrder?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889' -d '
{
    "username": "john@opsgenie.com",
    "id": "8f38dcfb-b5ff-48ce-bedb-6322681eacb6",
    "applyOrder" : 1
}'
Response:
{
  "status": "success"
}

Repeat Notification Rule Request

Repeat Notification Rule request is used to repeat notification rules of users in OpsGenie.

Repeat option is only valid for New Alert Notification Rules

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
id Id of notification rule will be repeated.
loopAfter The amount of time in minutes that notification steps will be repeatedly apply. If enabled parameter is specified with true, loopAfter parameter should also be specified. You may refer Notification Settings for further information about repeating.

Optional Parameters

Parameter
enabled Boolean value that will decide whether repeating is enabled or not. Possible values are true and false.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/repeat?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889' -d '
{
    "username": "john@opsgenie.com",
    "id": "8f38dcfb-b5ff-48ce-bedb-6322681eacb6",
    "loopAfter":"5"
}'
Response:
{
  "status": "success"
}

Get Notification Rule Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

Get Notification Rule request is used to retrieve notification rule details of users in OpsGenie. It takes the following parameters:

Mandatory Parameters 

Parameter
apiKey API key is used for authenticating API requests
id Id of the notification rule that will be retrieved.
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.

Sample Request

curl -XGET 'https://api.opsgenie.com/v1/json/user/notificationRule?apiKey=ba503523-f94c-4adb-a2f4-376e99f68885&username=john@opsgenie.com&id=67c4855a-4c1b-4cbf-9be2-87eb212760e9
Response:
{
  "actionType": "New Alert",
  "name": "New Alert",
  "restrictions": {
    "endHour": 18,
    "startHour": 0,
    "startMinute": 0,
    "endMinute": 0
  },
  "id": "67c4855a-4c1b-4cbf-9be2-87eb212760e9",
  "conditions": [
    {
      "not": false,
      "field": "message",
      "expectedValue": "new",
      "operation": "Contains"
    },
    {
      "not": false,
      "field": "actions",
      "expectedValue": "ping",
      "operation": "Contains"
    }
  ],
  "steps": [
    {
      "method": "voice",
      "to": "1-9999999999",
      "id": "6419cef5-ca1f-4842-9ddc-518952c60c2b",
      "sendAfter": 0,
      "enabled": true
    }
  ],
  "enabled": true,
  "conditionMatchType": "Match All Conditions",
  "loopAfter": 0
}

Sample Request for Schedule Start Notification Rule

curl -XGET 'https://api.opsgenie.com/v1/json/user/notificationRule?apiKey=ba503523-f94c-4adb-a2f4-376e99f68885&username=john@opsgenie.com&id=5ef5cc7f-23f4-4168-9f0f-d543d0c325b4
{
  "actionType": "Schedule Start",
  "schedules": [
    "network_team_schedule"
  ],
  "name": "Schedule Start",
  "notifyBefore": [
    "Just Before",
    "15 mins"
  ],
  "restrictions": [
    {
      "endHour": 0,
      "startDay": "SUNDAY",
      "startHour": 0,
      "endDay": "MONDAY",
      "startMinute": 0,
      "endMinute": 0
    }
  ],
  "id": "5ef5cc7f-23f4-4168-9f0f-d543d0c325b4",
  "steps": [
    {
      "method": "email",
      "to": "john@opsgenie.com",
      "id": "2dae31b1-5e89-4c33-a05f-d1f0e746c4db",
      "sendAfter": 0,
      "enabled": true
    }
  ],
  "enabled": true
}

List Notification Rules Request

This is a read request. Therefore, even if the integration of the API key is configured as read-only, the request will be accepted.

List Notification Rule request is used to retrieve all notification rules with details of users in OpsGenie. It takes the following parameters:

Mandatory Parameters 

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.

Sample Request

curl -XGET 'https://api.opsgenie.com/v1/json/user/notificationRule?apiKey=ba503523-f94c-4adb-a2f4-376e99f68885&username=john@opsgenie.com
Response:
{
  "rules": [
    {
      "actionType": "Schedule Start",
      "applyOrder": 0,
      "schedules": [
        "network_team_schedule"
      ],
      "name": "Schedule Start",
      "notifyBefore": [
        "Just Before",
        "15 mins"
      ],
      "restrictions": [
        {
          "endHour": 0,
          "startDay": "SUNDAY",
          "startHour": 0,
          "endDay": "MONDAY",
          "startMinute": 0,
          "endMinute": 0
        }
      ],
      "id": "5ef5cc7f-23f4-4168-9f0f-d543d0c325b4",
      "steps": [
        {
          "method": "email",
          "to": "john@opsgenie.com",
          "id": "2dae31b1-5e89-4c33-a05f-d1f0e746c4db",
          "sendAfter": 0,
          "enabled": true
        }
      ],
      "enabled": true
    },
    {
      "actionType": "New Alert",
      "applyOrder": 0,
      "name": "New Alert",
      "restrictions": {
        "endHour": 18,
        "startHour": 0,
        "startMinute": 0,
        "endMinute": 0
      },
      "id": "67c4855a-4c1b-4cbf-9be2-87eb212760e9",
      "conditions": [
        {
          "not": false,
          "field": "message",
          "expectedValue": "new",
          "operation": "Contains"
        },
        {
          "not": false,
          "field": "actions",
          "expectedValue": "ping",
          "operation": "Contains"
        }
      ],
      "steps": [
        {
          "method": "voice",
          "to": "1-9999999999",
          "id": "6419cef5-ca1f-4842-9ddc-518952c60c2b",
          "sendAfter": 0,
          "enabled": true
        }
      ],
      "enabled": true,
      "conditionMatchType": "Match All Conditions",
      "loopAfter": 0
    },
    {
      "actionType": "New Alert",
      "applyOrder": 1,
      "name": "New Alert Night",
      "restrictions": {
        "endHour": 18,
        "startHour": 15,
        "startMinute": 4,
        "endMinute": 58
      },
      "id": "d609c2d4-c7e0-4c3c-b339-40bb58f89963",
      "conditions": [
        {
          "not": false,
          "field": "message",
          "expectedValue": "asdf",
          "operation": "Equals"
        },
        {
          "not": true,
          "field": "extraProperties",
          "expectedValue": "asdf",
          "operation": "Contains Key"
        }
      ],
      "steps": [
        {
          "method": "email",
          "to": "john@opsgenie.com",
          "id": "bd96aa09-e161-4c7e-8d15-ba5e55b7b1e2",
          "sendAfter": 5,
          "enabled": true
        }
      ],
      "enabled": true,
      "conditionMatchType": "Match All Conditions",
      "loopAfter": 5
    }
  ]
}

Parameters of conditions

conditions field should contain list of condition objects. condition objects should have the following format:
Parameter
not
field Alert field will be checked for the condition.Available fields: message, alias, description, source, entity, tags, actions, extraProperties, recipients, teams.
operation Condition Operation which will be applied when comparing alert field and the expected value. Available operations changes according to the fields type.

  • String Operations: Contains, Equals, Starts With, Ends With, Matches, Is Empty, Equals Ignore Whitespace
  • List Operations: Contains, Is Empty
  • Map Operations: Contains, Contains Key, Contains Value, Is Empty
  • Number Operations: Matches, Equals, Greater Than, Less Than
  • Boolean Operations: Equals
expectedValue User defined value that will be compared with alert field according to the operation

Parameters Of Restriction

Restrictions can be only one restriction object which will be applied to all weekdays, or list of restriction objects containing additional startDay and endDay info.

To get detailed information about time restrictions, you can refer to our Time Constrains & Time Zones support document.
Parameter
startHour Value of the hour that notification rule start working.
startMinute Value of the minute that notification rule start working.
endHour Value of the hour that notification rule end working.
endMinute Value of the minute that notification rule end working.
startDay Name of day when restriction will start. Mandatory only list of restriction objects. May be one of monday, tuesday, wednesday, thursday, friday, saturday, sunday
endDay Name of day when restriction will end. Mandatory only list of restriction objects. May be one of monday, tuesday, wednesday, thursday, friday, saturday, sunday

Notification Rule Step API Requests

Add Notification Rule Step Request

Add Notification Rule Step request is used to add steps to notification rules in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
ruleId Id of the notification rule that step will belong to.
method Method of the contact that notification will be sent to, should be one of email, voice or sms.
to Address of the contact that notification will be sent to.
sendAfter Minute time period notification will be sent after. Valid and Mandatory only for New Alert and Assigned Alert notification rules.
Adding Notification Rule Step with a mobile contact is not supported.
Sample Request
{curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/step' -d '
    "username":"john@opsgenie.com",
    "ruleId":"d609c2d4-c7e0-4c3c-b339-40bb58f89963",
    "method":"email",
    "to":"john@opsgenie.com",
    "sendAfter":"5"
}
Response
{
  "code": 200,
  "id": "6680f7b3-715e-4add-86f0-690f08d31711",
  "status": "successful"
}

Update Notification Rule Step Request

Update Notification Rule Step request is used to update steps of notification rules in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
ruleId Id of the notification rule that step belongs to.
id Id of the rule step will be updated.

Optional Parameters

Parameter
method Method of the contact notification will be sent to, should be one of email, voice or sms.
to Address of the contact notification will be sent to.
sendAfter Minute time period notification will be sent after. Valid only for New Alert and Assigned Alert notification rules.
Updating Notification Rule Step with a mobile contact is not supported.
Sample Request
{curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/step' -d '
    "username":"john@opsgenie.com",
    "ruleId":"d609c2d4-c7e0-4c3c-b339-40bb58f89963",
    "id": "6680f7b3-715e-4add-86f0-690f08d31711",
    "method":"voice",
    "to":"1-9999999999"
}
Response
{
  "code": 200,
  "id": "6680f7b3-715e-4add-86f0-690f08d31711",
  "status": "successful"
}

Delete Notification Rule Step Request

Delete Notification Rule Step request is used to delete the notification rule step in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username ID or username of the user that the rule belongs to. Either of them should be specified.
ruleId Id of the notification rule that step belongs to.
id Id of the rule step will be deleted.
Sample Request
curl -XDELETE 'https://api.opsgenie.com/v1/json/user/notificationRule/step?apiKey=ba503523-f94c-4adb-a2f4-376e99f68885&username=john@opsgenie.com&ruleId=5ef5cc7f-23f4-4168-9f0f-d543d0c325b4&id=2dae31b1-5e89-4c33-a05f-d1f0e746c4db'
Response:
{
  "code": 200,
  "status": "successful"
}

Enable Notification Rule Step Request

Enable Notification Rule Step request is used to enable notification rule step in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
ruleId Id of the notification rule that step belongs to.
id Id of the rule step will be enabled.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/step/enable?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889' -d '
{
    "username":"john@opsgenie.com",
    "ruleId":"d609c2d4-c7e0-4c3c-b339-40bb58f89963",
    "id":"bd96aa09-e161-4c7e-8d15-ba5e55b7b1e2"
}'
Response:
{
  "status": "success"
}

Disable Notification Rule Step Request

Disable Notification Rule Step request is used to disable notification rule step in OpsGenie.

It takes the following parameters:

Mandatory Parameters

Parameter
apiKey API key is used for authenticating API requests
userId / username Id or username of the user that the rule belongs to. Either of them should be specified.
ruleId Id of the notification rule that step belongs to.
id Id of the rule step will be disabled.
Sample Request
curl -XPOST 'https://api.opsgenie.com/v1/json/user/notificationRule/step/disable?apiKey=eb243592-faa2-4ba2-a551q-1afdf565c889' -d '
{
    "username":"john@opsgenie.com",
    "ruleId":"d609c2d4-c7e0-4c3c-b339-40bb58f89963",
    "id":"bd96aa09-e161-4c7e-8d15-ba5e55b7b1e2"
}'
Response:
{
  "status": "success"
}