Alerts & Notifications

Alerts

Get an Alert

v6

v7

GET /v6/alerts/{alertId}

GET /v7/alerts/{alertId}

Response Body

{

    "alert": [

        {

            "active": 1,

            "agents": [

                {

                    "active": 1,

                    "agentId": 2345,

                    "agentName": "Beijing, China (China Unicom)",

                    "dateStart": "2025-03-11 14:20:00",

                    "metricsAtEnd": "Active",

                    "metricsAtStart": "Error: \"Connection timed out after 60 milliseconds\"",

                    "permalink": "https://app.thousandeyes.com/alerts/list/?__a=2067002&alertId=7c32734e-ba62-40cb-90f6-b99e43d5649f&agentId=2345"

                }

            ],

            "alertId": "7c32734e-ba62-40cb-90f6-b99e43d5649f",

            "dateEnd": "2025-03-11T14:55:00Z ",

            "dateStart": "2025-03-11 14:25:00",

            "type": "HTTP Server",

            "severity": "INFO",

            "suppressed": 0,

            "violationCount": 1,

            "ruleExpression": "((probDetail != \"\"))",

            "ruleId": 11608213,

            "ruleName": "APPLICATION AVAILABILITY PROBLEM",

            "testId": 5671106,

            "testName": "Salesforce.com",

            "metadata": {

                "version": 1

            },

            "apiLinks": [

                {

                    "href": "https://api.thousandeyes.com/v6/tests/5671106",

                    "rel": "related"

                },

                {

                    "href": "https://api.thousandeyes.com/v6/web/http-server/5671106",

                    "rel": "data"

                }

            ],

            "permalink": "https://app.thousandeyes.com/alerts/list/?__a=2067002&alertId=7c32734e-ba62-40cb-90f6-b99e43d5649f"

 

        }

    ]

}

{

    "state": "trigger",

    "alertState": "trigger",

    "details": [

        {

            "id": "2345",

            "name": "Beijing, China (China Unicom)",

            "start": {

                "metrics": "Error: \"Connection timed out after 60 milliseconds\""

            },

            "state": "trigger",

            "type": "cea_agent"

        }

    ],

    "id": "7c32734e-ba62-40cb-90f6-b99e43d5649f",

    "startDate": "2025-03-11T14:25:00Z",

    "endDate": "2025-03-11T14:55:00Z",

    "alertType": "http-server",

    "severity": "info",

    "alertSeverity": "info",

    "suppressed": false,

    "violationCount": 1,

    "meta": {

        "version": 1

    },

    "_links": {

        "appLink": {

            "href": "https://app.thousandeyes.com/alerts/list/?__a=2067002&alertId=7c32734e-ba62-40cb-90f6-b99e43d5649f"

        },

        "rule": {

            "href": "https://api.thousandeyes.com/v7/alerts/rules/11608213"

        },

        "self": {

            "href": "https://api.thousandeyes.com/v7/alerts/7c32734e-ba62-40cb-90f6-b99e43d5649f"

        },

        "test": {

            "href": "https://api.thousandeyes.com/v7/tests/http-server/5671106"

        }

    }

}

Comments:

1.    The response is no longer structured as a list of objects at the top-most level. Instead, a single alert object is returned.

2.    The `active` field has been renamed to `alertState`, and its value has changed from integer to string.

3.    The `agents` and `monitors` fields have been removed and replaced by the `details` list field. Objects in this `details` list indicate what type of vantage point triggered the alert within their `type` field.

4.    The `alertId` field has been renamed to `id`.  

5.    The `dateStart` and `dateEnd` fields have been renamed to `startDate` and `endDate` fields have been renamed, and the format of their values is now an ISO 8601 format with timezone (e.g., "2024-11-14T05:09:50Z").

6.    The `type` field has been renamed `alertType`, and its values have changed. See the full list of enum values at https://developer.cisco.com/docs/thousandeyes/alerttype/.

7.    The `severity` field has been renamed `alertSeverity`, and its values have changed from "INFO", "MAJOR", "MINOR", "CRITICAL" to "info", "major", "minor", "critical", "unknown".

8.    The value type of the `suppressed` field has changed from integer to boolean. 

9.    Related alert rule details (e.g, `ruleExpression`, `ruleName`, and `ruleId`) and test details (e.g, `testId` and `testName`) are no longer returned in the response body. Instead, details for related resources can be queried from the links within the `_links` field.

10.  The `permalink` field has been replaced by the `appLink` withfield in the `_links` list field.

11. The `apiLinks` field has been removed.

12. Note: While the `state` and `severity` properties are present in the v7 response, we recommend using the `alertState` and `alertSeverity` properties for consistency with the List all Alerts API endpoint.

 

List all Alerts

v6

v7

GET /v6/alerts

GET /v7/alerts

Response Body

{

    "alert": [

        {

            "alertId": "26b42473-15b8-4f15-9cf2-fd9888cc0e66",

            "active": 1,

            "severity": "INFO",

            "dateStart": "2025-03-11 15:20:00",

            "ruleId": 11608213,

            "ruleExpression": "((probDetail != \"\"))",

            "ruleName": "APPLICATION AVAILABILITY PROBLEM",

            "suppressed": 0,

            "testId": 5699033,

            "testName": "Workday",

            "type": "HTTP Server",

            "violationCount": 1,

            "metadata": {

                "version": 1

            },

            "agents": [

                {

                    "active": 1,

                    "agentId": 1423359,

                    "agentName": "SJC-VLAN100",

                    "dateStart": "2025-03-11 15:15:00",

                    "metricsAtEnd": "Active",

                    "metricsAtStart": "Error: \"Connection timed out after 220 milliseconds\"",

                    "permalink": "https://app.thousandeyes.com/alerts/list/?__a=2067002&alertId=26b42473-15b8-4f15-9cf2-fd9888cc0e66&agentId=1423359"

                }

            ],

            "permalink": "https://app.thousandeyes.com/alerts/list/?__a=2067002&alertId=26b42473-15b8-4f15-9cf2-fd9888cc0e66",

            "apiLinks": [

                {

                    "href": "https://api.thousandeyes.com/v6/tests/5699033",

                    "rel": "related"

                },

                {

                    "href": "https://api.thousandeyes.com/v6/web/http-server/5699033",

                    "rel": "data"

                }

            ]

        }

    ]

}

{

    "alerts": [

        {

            "id": "26b42473-15b8-4f15-9cf2-fd9888cc0e66",

            "alertState": "trigger",

            "alertSeverity": "info",

            "startDate": "2025-03-11T15:20:00Z",

            "ruleId": 11608213,

            "alertType": "http-server",

            "suppressed": false,

            "violationCount": 1,

            "duration": 0,

            "_links": {

                "appLink": {

                    "href": "https://app.thousandeyes.com/alerts/list/?__a=2067002&alertId=26b42473-15b8-4f15-9cf2-fd9888cc0e66"

                },

                "rule": {

                    "href": "https://api.thousandeyes.com/v7/alerts/rules/11608213"

                },

                "self": {

                    "href": "https://api.thousandeyes.com/v7/alerts/26b42473-15b8-4f15-9cf2-fd9888cc0e66"

                },

                "test": {

                    "href": "https://api.thousandeyes.com/v7/tests/http-server/5699033"

                }

            }

        }

    ],

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alerts"

        }

    },

}

Comments:

1.    Note that the addition of the `state` query parameter. The APIv6 endpoint returns both triggered and cleared alerts in responses, however the APIv7 endpoint only returns either triggered or cleared alerts based on the value of the `state` query parameter (defaults to "trigger" if not included in the request). 

2.    The top-most field name in the response has changed from `alert` to `alerts.

3.  The `alertId` field has been renamed to `id`. 

4.    The `active` field has been renamed to `alertState`, and its value has changed from integer to string.

5.    The `severity` field has been renamed to `alertSeverity`, and its values have changed from "INFO", "MAJOR", "MINOR", "CRITICAL" to "info", "major", "minor", "critical", "unknown".

6.    The `dateStart` and `dateEnd` fields have been renamed to `startDate` and `endDate`, and the format of their values is now an ISO 8601 format with timezone (e.g., "2024-11-14T05:09:50Z").

7.    The `type` field has been renamed `alertType`, and its values have changed. See the full list of enum values at https://developer.cisco.com/docs/thousandeyes/alerttype/.

8.    The value type of the `suppressed` field has changed from integer to boolean. 

9.    The `agents` and `monitors` fields have been removed.

10.  Related alert rule details (e.g, `ruleExpression`, `ruleName`) and test details (e.g, `testId` and `testName`) are no longer returned in the response body. Instead, details for related resources can be queried from the links within the `_links` field.

13.  The `permalink` field has been replaced by the `appLink` field within the `_links` list field.

11.  The `apiLinks` field has been removed.

 

Alerts Rules

Get an Alert Rule

v6

v7

GET /v6/alert-rules/{ruleId}

GET /v7/alerts/rules/{ruleId}

Response Body

{

    "alertRules": [

        {

            "alertGroupType": "cloud-enterprise",

            "alertType": "End-to-End (Server)",

            "expression": "((Auto(avgLatency >= Medium sensitivity)))",

            "default": 0,

            "minimumSources": 1,

            "notifyOnClear": 1,

            "roundsViolatingMode": "AUTO",

            "roundsViolatingOutOf": 1,

            "roundsViolatingRequired": 1,

            "ruleId": 11607857,

            "ruleName": "ABNORMAL NETWORK LATENCY DETECTED",

            "sensitivityLevel": "LOW",

            "severity": "INFO",

            "notifications": {

                "customWebhook": [

                    {

                        "integrationId": "f11ba44d-3720-4798-8ea2-d1502cb59faa",

                        "integrationName": "Webex Chat Alerts",

                        "integrationType": "CUSTOM_WEBHOOK",

                        "target": "https://webexapis.com/v1/messages"

                    }

                ],

                "email": {

                    "message": "",

                    "recipient": []

                }

            },

            "tests": [

                ...

            ]

        }

    ]

}

{

    "alertGroupType": "cloud-enterprise",

    "alertType": "end-to-end-server",

    "expression": "((Auto(avgLatency >= Medium sensitivity)))",

    "isDefault": false,

    "minimumSources": 1,

    "notifyOnClear": true,

    "roundsViolatingMode": "auto",

    "roundsViolatingOutOf": 1,

    "roundsViolatingRequired": 1,

    "ruleId": "11607857",

    "ruleName": "ABNORMAL NETWORK LATENCY DETECTED",

    "sensitivityLevel": "low",

    "severity": "info",

    "notifications": {

        "customWebhook": [

            {

                "integrationId": "f11ba44d-3720-4798-8ea2-d1502cb59faa",

                "integrationName": "Webex Chat Alerts",

                "integrationType": "custom-webhook",

                "target": "https://webexapis.com/v1/messages"

            }

        ],

        "email": {

            "message": "",

            "recipients": ["email@example.com"]

        }

    },

    "tests": [

        ...

    ],

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alerts/rules/11607857"

        }

    }

}

 

Comments:

1.    The request URL has changed from `/v6/alert-rules/{ruleId}` to `/v7/alerts/rules/{ruleId}` 

2.    The response is no longer structured as a list of objects at the top-most level. Instead, a single alert rule object is returned.

3.    The values of the `alertType` field have changed. See the full list of enum values at https://developer.cisco.com/docs/thousandeyes/alerttype/.

4.    The `default` field has been renamed `isDefault`, and its value type has changed from integer to boolean.

5.    The value type of the `notifyOnClear` field has changed from integer to boolean.

6.    The values of the `roundsViolatingMode` field have changed from "EXACT", "ANY", "AUTO" to "exact", "any", "auto".

7.    The value type of the `ruleId` field has changed from integer to string.

8.    The values of the ` sensitivityLevel` field have changed from "HIGH", "MEDIUM", "LOW" to "high", "medium", "low". (This field is only present when `roundsViolatingMode` is set to "auto").

9.    The values of the `severity` field have changed from "INFO", "MAJOR", "MINOR", "CRITICAL" to "info", "major", "minor", "critical", "unknown".

10.  Within the `notifications` list field, the values for the `integrationType` field have changed from "PAGER_DUTY", "SLACK", "APP_DYNAMICS", "SERVICE_NOW", "WEBHOOK", "CUSTOM_WEBHOOK" to "pager-duty", "slack", "app-dynamics", "service-now", "webhook", "custom-webhook".

11.  For email notification types, the `recipient` field has been renamed `recipients`, and is not included in the response if it is empty.

 

Create an Alert Rule

v6

v7

POST /v6/alert-rules/new

POST /v7/alerts/rules

Request Body

{

    "alertType": "FTP",

    "default": 0,

    "expression": "((ftpErrorType != \"None\"))",

    "minimumSources": 10,

    "notifyOnClear": 1,

    "roundsViolatingOutOf": 4,

    "roundsViolatingRequired": 2,

    "roundsViolatingMode": "ANY",

    "ruleName": "My FTP Alert Rule",

    "severity": "MAJOR",

    "notifications": {

        "email": {

            "message": "",

            "recipient": [

                "email@example.com"

            ]

        },

        "thirdParty": [{

            "integrationId": "sl-1234",

            "integrationType": "SLACK"

        }],

        "webhook": [{

            "integrationId": "wb-5678",

            "integrationType": "WEBHOOK"

        }]

    },

    "testIds": [

        5622486

    ],

    "notes": "FTP Alert rule created using write api",

    "description": "TE FTP Alert rule with write api"

}

 

{

  "alertType": "ftp",

  "isDefault": false,

  "expression": "((ftpErrorType != \"None\"))",

  "minimumSources": 10,

  "notifyOnClear": true,

  "roundsViolatingOutOf": 4,

  "roundsViolatingRequired": 2,

  "roundsViolatingMode": "any",

  "ruleName": "My FTP Alert Rule",

  "severity": "major",

  "notifications": {

    "email": {

      "message": "Notification message",

      "recipients": [

        "email@example.com"

      ]

    },

    "thirdParty": [{

        "integrationId": "sl-1234",

        "integrationType": "slack"

    }],

    "webhook": [{

        "integrationId": "wb-5678",

        "integrationType": "webhook"

    }]

  },

  "testIds": [

    "5622486"

  ]

}

 

Response Body

{

    "alertRuleId": 12345678,

    "alertType": "FTP",

    "ruleName": "My FTP Alert Rule",

    "expression": "((ftpErrorType != \"None\"))",

    "notifications": {

        "email": {

            "message": "",

            "recipient": [

                "email@example.com"

            ]

        },

        "thirdParty": [

            {

                "integrationId": "sl-1234",

                "integrationType": "SLACK"

            }

        ],

        "webhook": [

            {

                "integrationId": "wb-5678",

                "integrationType": "WEBHOOK"

            }

        ]

    },

    "notifyOnClear": 1,

    "default": 0,

    "minimumSources": 10,

    "roundsViolatingRequired": 2,

    "roundsViolatingOutOf": 4,

    "roundsViolatingMode": "ANY",

    "severity": "MAJOR",

    "testIds": [

        5622486

    ],

    "description": "TE FTP Alert rule with write api"

}

{

    "ruleId": "12345678",

    "alertType": "ftp",

    "ruleName": "My FTP Alert Rule",

    "expression": "((ftpErrorType != \"None\"))",

    "notifications": {

        "email": {

            "message": "Notification message",

            "recipients": [

                "email@example.com"

            ]

        },

        "thirdParty": [

            {

                "integrationId": "sl-1234",

                "integrationType": "slack"

            }

        ],

        "webhook": [

            {

                "integrationId": "wb-5678",

                "integrationType": "webhook"

            }

        ]

    },

    "notifyOnClear": true,

    "isDefault": false,

    "minimumSources": 10,

    "roundsViolatingRequired": 2,

    "roundsViolatingOutOf": 4,

    "roundsViolatingMode": "any",

    "severity": "major",

    "testIds": [

        "5622486"

    ],

    "alertGroupType": "cloud-enterprise",

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alerts/rules/11734498"

        }

    }

}

Comments:

1.    The request URL has changed from `/v6/alert-rules/new ` to `/v7/alerts/rules/`.

2.    The values of the `alertType` field have changed. See the full list of enum values at https://developer.cisco.com/docs/thousandeyes/alerttype/.

3.    The value type of the `notifyOnClear` field has changed from integer to boolean.

4.    The `default` field has been renamed `isDefault`, and its value type has changed from integer to boolean.

5.    The values of the `roundsViolatingMode` field have changed from "EXACT", "ANY", "AUTO" to "exact", "any", "auto".

6.    The values of the `severity` field have changed from "INFO", "MAJOR", "MINOR", "CRITICAL" to "info", "major", "minor", "critical", "unknown".

7.    The values of the `sensitivityLevel` field have changed from "HIGH", "MEDIUM", "LOW" to "high", "medium", "low" (This field is only present when `roundsViolatingMode` is set to "auto").

8.    For email notification types, the `recipient` field has been renamed `recipients`.

9.    In the `testIds` property, entries have changed from integers to strings. 

10.  The `notes` and `description` fields have been removed.

11.  For "bgp" alert types, the `includeCoveredPrefixes` field has changed from an integer to a boolean.

12.  For "end-to-end-agent" and "path-trace` alert types, the `direction` field has changed from an integer to a boolean.

13.  In the response body, the `alertRuleId` field has been renamed `ruleId`, and its type has changed from integer to string.

 

List all Alert Rules

v6

v7

GET /v6/alert-rules

GET /v7/alerts/rules

Response Body

{

    "alertRules": [

        {

            "alertType": "End-to-End (Server)",

            "default": 0,

            "expression": "((Auto(avgLatency >= Medium sensitivity)))",

            "minimumSources": 1,

            "notifyOnClear": 1,

            "roundsViolatingOutOf": 1,

            "roundsViolatingRequired": 1,

            "roundsViolatingMode": "AUTO",

            "sensitivityLevel": "LOW",

            "severity": "INFO",

            "ruleId": 12345,

            "ruleName": "ABNORMAL NETWORK LATENCY DETECTED"

        },

        {

            "alertType": "HTTP Server",

            "default": 0,

            "expression": "((probDetail != \"\"))",

            "minimumSources": 1,

            "notifyOnClear": 1,

            "roundsViolatingOutOf": 2,

            "roundsViolatingRequired": 2,

            "roundsViolatingMode": "EXACT",

            "severity": "INFO",

            "ruleId": 67890,

            "ruleName": "APPLICATION AVAILABILITY PROBLEM"

        }

    ]

}

{

    "alertRules": [

        {

            "alertType": "end-to-end-server",

            "isDefault": false,

            "expression": "((Auto(avgLatency >= Medium sensitivity)))",

            "minimumSources": 1,

            "notifyOnClear": true,

            "roundsViolatingOutOf": 1,

            "roundsViolatingRequired": 1,

            "roundsViolatingMode": "auto",

            "sensitivityLevel": "low",

            "severity": "info",

            "ruleId": "12345",

            "alertGroupType": "cloud-enterprise",

            "ruleName": "ABNORMAL NETWORK LATENCY DETECTED"

        },

        {

            "alertType": "http-server",

            "isDefault": false,

            "expression": "((probDetail != \"\"))",

            "minimumSources": 1,

            "notifyOnClear": true,

            "roundsViolatingOutOf": 2,

            "roundsViolatingRequired": 2,

            "roundsViolatingMode": "exact",

            "severity": "info",

            "ruleId": "67890",

            "alertGroupType": "cloud-enterprise",

            "ruleName": "APPLICATION AVAILABILITY PROBLEM"

        }

    ]

}

Comments:

1.    The request URL has changed from `/v6/alert-rules/new ` to `/v7/alerts/rules/`.

2.    The values of the `alertType` field have changed. See the full list of enum values at https://developer.cisco.com/docs/thousandeyes/alerttype/.

3.    The `default` field has been renamed `isDefault`, and its value type has changed from integer to boolean.

4.    The value type of the `notifyOnClear` field has changed from integer to boolean.

5.    The values of the `roundsViolatingMode` field have changed from "EXACT", "ANY", "AUTO" to "exact", "any", "auto".

6.    The values of the `severity` field have changed from "INFO", "MAJOR", "MINOR", "CRITICAL" to "info", "major", "minor", "critical", "unknown".

7.    The values of the ` sensitivityLevel` field have changed from "HIGH", "MEDIUM", "LOW" to "high", "medium", "low" (This field is only present when `roundsViolatingMode` is set to "auto").

 

Update an Alert Rule

v6

v7

POST /v6/alert-rules/{ruleId}/update

PUT /v7/alerts/rules/{ruleId}

Request Body

{

    "alertType": "FTP",

    "default": 0,

    "expression": "((ftpErrorType != \"None\"))",

    "minimumSources": 10,

    "notifyOnClear": 1,

    "roundsViolatingOutOf": 4,

    "roundsViolatingRequired": 2,

    "roundsViolatingMode": "ANY",

    "ruleName": "My FTP Alert Rule",

    "severity": "MAJOR",

    "notifications": {

        "email": {

            "message": "",

            "recipient": [

                "email@example.com"

            ]

        },

        "thirdParty": [{

            "integrationId": "sl-1234",

            "integrationType": "SLACK"

        }],

        "webhook": [{

            "integrationId": "wb-5678",

            "integrationType": "WEBHOOK"

        }]

    },

    "testIds": [

        5622486

    ],

    "notes": "FTP Alert rule created using write api",

    "description": "TE FTP Alert rule with write api"

}

 

{

  "alertType": "ftp",

  "isDefault": false,

  "expression": "((ftpErrorType != \"None\"))",

  "minimumSources": 10,

  "notifyOnClear": true,

  "roundsViolatingOutOf": 4,

  "roundsViolatingRequired": 2,

  "roundsViolatingMode": "any",

  "ruleName": "My FTP Alert Rule",

  "severity": "major",

  "notifications": {

    "email": {

      "message": "Notification message",

      "recipients": [

        "email@example.com"

      ]

    },

    "thirdParty": [{

        "integrationId": "sl-1234",

        "integrationType": "slack"

    }],

    "webhook": [{

        "integrationId": "wb-5678",

        "integrationType": "webhook"

    }]

  },

  "testIds": [

    "5622486"

  ]

}

 

Response Body

{

    "alertRuleId": 12345678,

    "alertType": "FTP",

    "ruleName": "My FTP Alert Rule",

    "expression": "((ftpErrorType != \"None\"))",

    "notifications": {

        "email": {

            "message": "",

            "recipient": [

                "email@example.com"

            ]

        },

        "thirdParty": [

            {

                "integrationId": "sl-1234",

                "integrationType": "SLACK"

            }

        ],

        "webhook": [

            {

                "integrationId": "wb-5678",

                "integrationType": "WEBHOOK"

            }

        ]

    },

    "notifyOnClear": 1,

    "default": 0,

    "minimumSources": 10,

    "roundsViolatingRequired": 2,

    "roundsViolatingOutOf": 4,

    "roundsViolatingMode": "ANY",

    "severity": "MAJOR",

    "testIds": [

        5622486

    ],

    "description": "TE FTP Alert rule with write api"

}

{

    "ruleId": "12345678",

    "alertType": "ftp",

    "ruleName": "My FTP Alert Rule",

    "expression": "((ftpErrorType != \"None\"))",

    "notifications": {

        "email": {

            "message": "Notification message",

            "recipients": [

                "email@example.com"

            ]

        },

        "thirdParty": [

            {

                "integrationId": "sl-1234",

                "integrationType": "slack"

            }

        ],

        "webhook": [

            {

                "integrationId": "wb-5678",

                "integrationType": "webhook"

            }

        ]

    },

    "notifyOnClear": true,

    "isDefault": false,

    "minimumSources": 10,

    "roundsViolatingRequired": 2,

    "roundsViolatingOutOf": 4,

    "roundsViolatingMode": "any",

    "severity": "major",

    "testIds": [

        "5622486"

    ],

    "alertGroupType": "cloud-enterprise",

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alerts/rules/11734498"

        }

    }

}

Comments:

1.    The request URL has changed from `/v6/alert-rules/new ` to `/v7/alerts/rules/`. 

2.    The values of the `alertType` field have changed. See the full list of enum values at https://developer.cisco.com/docs/thousandeyes/alerttype/.

3.    The value type of the `notifyOnClear` field has changed from integer to boolean.

4.    The `default` field has been renamed `isDefault`, and its value type has changed from integer to boolean.

5.    The values of the `roundsViolatingMode` field have changed from "EXACT", "ANY", "AUTO" to "exact", "any", "auto".

6.    The values of the `severity` field have changed from "INFO", "MAJOR", "MINOR", "CRITICAL" to "info", "major", "minor", "critical", "unknown".

7.    The values of the `sensitivityLevel` field have changed from "HIGH", "MEDIUM", "LOW" to "high", "medium", "low" (This field is only present when `roundsViolatingMode` is set to "auto").

8.    For email notification types, the `recipient` field has been renamed `recipients`.

9.    In the `testIds` property, entries have changed from integers to strings. 

10.  The `notes` and `description` fields have been removed.

11.  For "bgp" alert types, the `includeCoveredPrefixes` field has changed from an integer to a boolean.

12.  For "end-to-end-agent" and "path-trace` alert types, the `direction` field has changed from an integer to a boolean.

13.  In the response body, the `alertRuleId` field has been renamed `ruleId`, and its type has changed from integer to string.

 

Delete an Alert Rule

v6

v7

POST /v6/alert-rules/{ruleId}/delete

DELETE /v7/alerts/rules/{ruleId}

Response Body

Response returned with HTTP 204 response code. No response body will be returned.

Response returned with HTTP 204 response code. No response body will be returned.

Comments:

1.    The request URL has changed from `/v6/alert-rules/{ruleId}/delete ` to `/v7/alerts/rules/{ruleId}`. 

2.    The request method has changed from POST to DELETE.  

 

Alert Suppression Window

Create an Alert Suppression Window

v6

v7

POST /v6/alert-suppression-windows/new

POST /v7/alert-suppression-windows

Request Body

{

    "alertSuppressionWindowName": "Monthly maintenance",

    "enabled": 1,

    "startDateTime": "2024-05-29 05:00:00",

    "timezone": "America/Los_Angeles",

    "duration": 1800,

    "repeat": {

      "type": "WEEK",

      "intervalType":"DAY",

      "intervalLength": 2,

      "daysOfWeek": [ "SUN" ]

    },

    "endRepeat": {

      "type": "DATE",

      "date": "2024-09-01"

    },

   "tests": [{"testId": 6754634}]

  }

 

{

    "name": "Monthly maintenance",

    "isEnabled": true,

    "startDate": "2024-05-29T05:00:00Z",

    "duration": 1800,

    "repeat": {

        "type": "week",

        "intervalType": "day",

        "intervalLength": 2,

        "daysOfWeek": [ "sun" ]

    },

    "endRepeat": {

        "type": "date",

        "date": "2024-09-01"

    },

    "testIds": [ "6754634" ]

}

Response Body

{

    "alertSuppressionWindows": [

        {

            "alertSuppressionWindowId": 1588029,

            "alertSuppressionWindowName": "ASW",

            "enabled": 1,

            "status": "INACTIVE",

            "startDateTime": "2024-06-15 00:00:00",

            "timezone": "America/Los_Angeles",

            "duration": 1800,

            "repeat": {

                "type": "WEEK"

            },

            "endRepeat": {

                "type": "DATE",

                "date": "2024-09-01"

            },

            "tests": [

                ...

            ]

        }

    ]

}

{

    "alertSuppressionWindowId": "1588029",

    "name": "ASW",

    "isEnabled": true,

    "status": "inactive",

    "startDate": "2024-07-01T05:00:00Z",

 

    "duration": 1800,

    "repeat": {

        "type": "week"

    },

    "endRepeat": {

        "type": "date",

        "date": "2024-09-01"

    },

    "tests": [

        ...

    ],

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alert-suppression-windows/1588029"

        }

    }

}

Comments:

1.    The request URL has changed from `/v6/alert-suppression-windows/new` to `/v7/alert-suppression-windows`.

2.    The response is no longer structured as a list of objects at the top-most level. Instead, a single object is returned.

3.    The `alertSuppressionWindowId` field type has changed from integer to string.

4.    The `alertSuppressionWindowName` field has been renamed to `name`.

5.    The `enabled` field has been renamed to `isEnabled`, and its type has changed from integer to boolean.

6.    The ` startDateTime` field has been renamed to `startDate`, and the timestamp format has changed to ISO 8601.

7.    The `timezone` field has been removed.

8.    Within the `repeat` field:

a.  The values for `type` are now lowercase: changed from "DAY", "WEEK", "MONTH", "CUSTOM" to "day", "week", "month", "custom".

b.  The values for `intervalType` are now lowercase: changed from "DAY", "WEEK", "MONTH" to "day", "week", "month".

c.  The values for `daysOfWeek` are now lowercase: changed from "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" to "sun", "mon", "tue", "wed", "thu", "fri", "sat".

9.    Within the `endRepeat` field, the values for `type` are now lowercase: changed from "COUNT", "NEVER", "DATE" to "count", "never", "date".

10.  The `tests` field has been renamed to `testIds`, and its value has changed from a list of objects to a list of strings.

11.  The values for the `status` field have changed from "ACTIVE", "INACTIVE", "ENDED" to "active", "inactive", "ended".

12.  v6 responses always include `tests`, v7 requires `expand=test` query parameter to include the `tests` field in the response.

 

 

Get an Alert Suppression Window

v6

v7

GET /v6/alert-suppression-windows/{alertSuppressionWindowId}

GET /v7/alert-suppression-windows/{windowId}

Response Body

{

    "alertSuppressionWindows": [

        {

            "alertSuppressionWindowId": 1588029,

            "alertSuppressionWindowName": "ASW",

            "enabled": 1,

            "status": "INACTIVE",

            "startDateTime": "2024-06-15 00:00:00",

            "timezone": "America/Los_Angeles",

            "duration": 1800,

            "repeat": {

                "type": "WEEK"

            },

            "endRepeat": {

                "type": "DATE",

                "date": "2024-09-01"

            },

            "tests": [

                ...

            ]

        }

    ]

}

{

    "alertSuppressionWindowId": "1588029",

    "name": "ASW",

    "isEnabled": true,

    "status": "inactive",

    "startDate": "2024-07-01T05:00:00Z",

 

    "duration": 1800,

    "repeat": {

        "type": "week"

    },

    "endRepeat": {

        "type": "date",

        "date": "2024-09-01"

    },

    "tests": [

        ...

    ],

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alert-suppression-windows/1588029"

        }

    }

}

Comments:

1.    The response is no longer structured as a list of objects at the top-most level. Instead, a single object is returned.

2.    The `alertSuppressionWindowId` field type has changed from integer to string.

3.    The `alertSuppressionWindowName` field has been renamed to `name`

4.    The `enabled` field has been renamed to `isEnabled`, and its type has changed from integer to boolean.

5.    The values for the `status` field have changed from "ACTIVE", "INACTIVE", "ENDED" to "active", "inactive", "ended".

6.    The ` startDateTime` field has been renamed to `startDate`, and the timestamp format has changed to ISO 8601.

7.    The `timezone` field has been removed.

8.    Within the `repeat` field:

a.  The values for `type` are now lowercase: changed from "DAY", "WEEK", "MONTH", "CUSTOM" to "day", "week", "month", "custom".

b.  The values for `intervalType` are now lowercase: changed from "DAY", "WEEK", "MONTH" to "day", "week", "month".

c.  The values for `daysOfWeek` are now lowercase: changed from "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" to "sun", "mon", "tue", "wed", "thu", "fri", "sat".

9.    Within the `endRepeat` field, the values for `type` are now lowercase: changed from "COUNT", "NEVER", "DATE" to "count", "never", "date".

10.  The `tests` field has been renamed to `testIds`, and its value has changed from a list of objects to a list of strings.

11.  v6 responses always include `tests`, v7 requires `expand=test` query parameter to include the `tests` field in the response.

 

List all Alert Suppression Windows

v6

v7

GET /v6/alert-suppression-windows

GET /v7/alert-suppression-windows

Request Body

None

None

Response Body

{

    "alertSuppressionWindows": [

        {

            "alertSuppressionWindowId": 1234567,

            "alertSuppressionWindowName": "TestingASW",

            "enabled": 1,

            "status": "ENDED",

            "startDateTime": "2025-01-24 20:33:00",

            "timezone": "America/New_York",

            "duration": 3600,

            "repeat": {

                "type": "NONE"

            },

            "endRepeat": {

                "type": "NEVER"

            }

        }

    ]

}

{

    "alertSuppressionWindows": [

        {

            "alertSuppressionWindowId": "1234567",

            "name": "TestingASW",

            "isEnabled": true,

            "status": "ended",

            "startDate": "2025-01-24T20:33:00-05:00",

            "duration": 3600,

            "repeat": {

                "type": "none"

            },

            "endRepeat": {

                "type": "never"

            },

            "_links": {

                "self": {

                    "href": "https://api.thousandeyes.com/v7/alert-suppression-windows/1234567"

                }

            }

        }

    ],

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alert-suppression-windows"

        }

    }

}

Comments:

1.    The `alertSuppressionWindowId` field type has changed from integer to string.

2.    The `alertSuppressionWindowName` field has been renamed to `name`.

3.    The `enabled` field has been renamed to `isEnabled`, and its type has changed from integer to boolean.

4.    The values for the `status` field have changed from "ACTIVE", "INACTIVE", "ENDED" to "active", "inactive", "ended".

5.    The ` startDateTime` field has been renamed to `startDate`, and the timestamp format has changed to ISO 8601.

6.    The `timezone` field has been removed.

7.    Within the `repeat` field:

a.  The values for `type` are now lowercase: changed from "DAY", "WEEK", "MONTH", "CUSTOM" to "day", "week", "month", "custom"

b.  The values for `intervalType` are now lowercase: changed from "DAY", "WEEK", "MONTH" to "day", "week", "month"

c.  The values for `daysOfWeek` are now lowercase: changed from "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" to "sun", "mon", "tue", "wed", "thu", "fri", "sat".

8.    Within the `endRepeat` field, the values for `type` are now lowercase: changed from "COUNT", "NEVER", "DATE" to "count", "never", "date".

 

Update an Alert Suppression Window

v6

v7

POST /v6/alert-suppression-windows/{alertSuppressionWindowId}/update

PUT /v7/alert-suppression-windows/{windowId}

Request Body

{

    "alertSuppressionWindowName": "Monthly maintenance",

    "enabled": 1,

    "startDateTime": "2024-05-29 05:00:00",

    "timezone": "America/Los_Angeles",

    "duration": 1800,

    "repeat": {

      "type": "WEEK",

      "intervalType":"DAY",

      "intervalLength": 2,

      "daysOfWeek": [ "SUN" ]

    },

    "endRepeat": {

      "type": "DATE",

      "date": "2024-09-01"

    },

   "tests": [{"testId": 6754634}]

  }

 

{

    "name": "Monthly maintenance",

    "isEnabled": true,

    "startDate": "2024-05-29T05:00:00Z",

    "duration": 1800,

    "repeat": {

        "type": "week",

        "intervalType": "day",

        "intervalLength": 2,

        "daysOfWeek": [ "sun" ]

    },

    "endRepeat": {

        "type": "date",

        "date": "2024-09-01"

    },

    "testIds": [ "6754634" ]

}

Response Body

{

    "alertSuppressionWindows": [

        {

            "alertSuppressionWindowId": 1588029,

            "alertSuppressionWindowName": "ASW",

            "enabled": 1,

            "status": "INACTIVE",

            "startDateTime": "2024-06-15 00:00:00",

            "timezone": "America/Los_Angeles",

            "duration": 1800,

            "repeat": {

                "type": "WEEK"

            },

            "endRepeat": {

                "type": "DATE",

                "date": "2024-09-01"

            },

            "tests": [

                ...

            ]

        }

    ]

}

{

    "alertSuppressionWindowId": "1588029",

    "name": "ASW",

    "isEnabled": true,

    "status": "inactive",

    "startDate": "2024-07-01T05:00:00Z",

 

    "duration": 1800,

    "repeat": {

        "type": "week"

    },

    "endRepeat": {

        "type": "date",

        "date": "2024-09-01"

    },

    "tests": [

        ...

    ],

    "_links": {

        "self": {

            "href": "https://api.thousandeyes.com/v7/alert-suppression-windows/1588029"

        }

    }

}

Comments:

1.    The request method has changed from POST to PUT, and the URL has changed from `/v6/alert-suppression-windows/{alertSuppressionWindowId}/update` to `/v7/alert-suppression-windows/{windowId}`.

2.    The response is no longer structured as a list of objects at the top-most level. Instead, a single object is returned.

3.    The `alertSuppressionWindowId` field type has changed from integer to string.

4.    The `alertSuppressionWindowName` field has been renamed to `name`.

5.    The `enabled` field has been renamed to `isEnabled`, and its type has changed from integer to boolean.

6.    The ` startDateTime` field has been renamed to `startDate`, and the timestamp format has changed to ISO 8601.

7.    The `timezone` field has been removed.

8.    Within the `repeat` field:

a.  The values for `type` are now lowercase: changed from "DAY", "WEEK", "MONTH", "CUSTOM" to "day", "week", "month", "custom".

b.  The values for `intervalType` are now lowercase: changed from "DAY", "WEEK", "MONTH" to "day", "week", "month".

c.  The values for `daysOfWeek` are now lowercase: changed from "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" to "sun", "mon", "tue", "wed", "thu", "fri", "sat".

9.    Within the `endRepeat` field, the values for `type` are now lowercase: changed from "COUNT", "NEVER", "DATE" to "count", "never", "date".

10.  The `tests` field has been renamed to `testIds`, and its value has changed from a list of objects to a list of strings.

11.  The values for the `status` field have changed from "ACTIVE", "INACTIVE", "ENDED" to "active", "inactive", "ended".

12.  v6 responses always include `tests`, v7 requires `expand=test` query parameter to include the `tests` field in the response.

 

Delete an Alert Suppression Window

v6

v7

POST /v6/alert-suppression-windows/{alertSuppressionWindowId}/delete

DELETE /v7/alert-suppression-windows/{windowId}

 

Response Body

Response returned with HTTP 204 response code. No response body will be returned.

Response returned with HTTP 204 response code. No response body will be returned.

Comments:

1.    The request URL has changed from `/v6/alert-suppression-windows/{alertSuppressionWindowId}/delete` to `/v7/alert-suppression-windows/{windowId}`.

2.    The request method has changed from POST to DELETE.