ThousandEyes Alerts API

You can manage the following alert functionalities on the ThousandEyes platform using the Alerts API: * **Alerts**: Retrieve alert details. Alerts are assigned to tests through alert rules. * **Alert Rules**: Conditions that you configure in order to highlight or be notified of events of interest in your ThousandEyes tests. When an alert rule’s conditions are met, the associated alert is triggered and the alert becomes active. It remains active until the alert is cleared. Alert rules are reusable across multiple tests.. * **Alert Suppression Windows**: Suppress alerts for tests during periods such as planned maintenance. Windows can be one-time events or recurring events to handle periodic occurrences such as monthly downtime for maintenance. For more information about the alerts, see Alerts.

OpenAPI Specification

thousandeyes-alerts-openapi.yml Raw ↑
openapi: 3.0.1
security:
- BearerAuth: []
servers:
- description: ThousandEyes API production URL
  url: https://api.thousandeyes.com/v7
info:
  title: Alerts API
  description: '**Note:** API operations for the creation or retrieval of API, Page Load, or Web-Transaction alert rules are
    not available for ThousandEyes for Government instance.


    You can manage the following alert functionalities on the ThousandEyes platform using the Alerts API:


    * **Alerts**: Retrieve alert details. Alerts are assigned to tests through alert rules.


    * **Alert Rules**: Conditions that you configure in order to highlight or be notified of events of interest in your ThousandEyes
    tests. When an alert rule’s conditions are met, the associated alert is triggered and the alert becomes active. It remains
    active until the alert is cleared. Alert rules are reusable across multiple tests..


    * **Alert Suppression Windows**: Suppress alerts for tests during periods such as planned maintenance. Windows can be
    one-time events or recurring events to handle periodic occurrences such as monthly downtime for maintenance.


    For more information about the alerts, see [Alerts](https://docs.thousandeyes.com/product-documentation/alerts).

    '
  version: 7.0.100
  x-provenance:
    method: harvested
    authored_by: Cisco ThousandEyes
    harvested_by: API Evangelist
    harvested_on: '2026-08-19'
    first_party: true
    provider_published: true
    source_host: pubhub.devnetcloud.com
    note: 27 OpenAPI 3.0 documents (26 per-area plus a unified 326-operation document) served anonymously from Cisco's DevNet
      CDN. api.thousandeyes.com itself 401s every path, so the contract is public while the API host is gated.
  x-evidence:
  - type: source
    url: https://pubhub.devnetcloud.com/media/000-v7-apis/docs/reference/
  - type: source
    url: https://developer.cisco.com/docs/thousandeyes/
tags:
- name: Alerts
- name: Alert Rules
- name: Alert Suppression Windows
paths:
  /alerts:
    get:
      tags:
      - Alerts
      summary: List alerts
      operationId: getAlerts
      description: 'Returns a list of alerts. Only active (triggered) alerts are returned by default.

        When no time filter is specified, only triggered alerts from the last 90 days are returned. To retrieve triggered
        alerts from a specific date range, specify `state=trigger` with `startDate` and `endDate`. Only use `window` for a
        lookback interval ending at the current request time.

        To retrieve cleared alerts, specify `clear` in the optional `state` parameter. Note that the `state` parameter only
        accepts a single value, so to get both active and cleared alerts within a time range, two separate requests are needed.

        Time filters (`window`, `startDate`, `endDate`) are applied differently depending on state: - For `state=trigger`:
        filters by when the alert started. - For `state=clear`: filters by when the alert cleared. - When state is not specified:
        returns cleared alerts within the time range plus any currently active alerts that started before the end of the range.'
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/Window'
      - $ref: '#/components/parameters/StartDateParameter'
      - $ref: '#/components/parameters/EndDateParameter'
      - $ref: '#/components/parameters/PaginationMax'
      - $ref: '#/components/parameters/PaginationCursor'
      - $ref: '#/components/parameters/State'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Alerts'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /alerts/{alertId}:
    get:
      tags:
      - Alerts
      summary: Retrieve alert details
      operationId: getAlert
      description: Returns detailed information about an alert using its ID.
      parameters:
      - $ref: '#/components/parameters/AlertId'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AlertDetail'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /alerts/rules:
    get:
      tags:
      - Alert Rules
      summary: List alert rules
      operationId: getAlertsRules
      description: Returns a list of alert rules. Default rules for each test type are indicated with a boolean response (true
        or false); these default alert rules automatically apply to their respective test types. This endpoint is limited
        to alert rules for Network & App Synthetics tests and Routing tests.
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Rules'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
    post:
      tags:
      - Alert Rules
      summary: Create alert rule
      operationId: createAlertRule
      description: 'Creates a new alert rule in your account, using the provided POST data. This endpoint is limited to alert
        rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required to create
        an alert rule.

        Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.'
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleDetailUpdate'
      responses:
        '201':
          description: Created
          headers:
            Location:
              $ref: '#/components/headers/Location'
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Rule'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /alerts/rules/{ruleId}:
    get:
      tags:
      - Alert Rules
      summary: Retrieve alert rule
      operationId: getAlertRule
      description: Returns detailed information about an alert rule using the `ruleId`. This endpoint is limited to alert
        rules for Network & App Synthetics tests and Routing tests. If the `ruleId` doesn’t exist or is inaccessible by your
        account, an empty response is returned.
      parameters:
      - $ref: '#/components/parameters/RuleId'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/RuleDetail'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
    put:
      tags:
      - Alert Rules
      summary: Update alert rule
      operationId: updateAlertRule
      description: 'Modifies an existing alert rule in your account, using the provided POST data. This endpoint is limited
        to alert rules for Network & App Synthetics tests and Routing tests. The `Edit alert rules` permission is required
        to modify an alert rule.


        Note: Assigning an alert rule to a test during creation requires the `Edit tests` permission.'
      parameters:
      - $ref: '#/components/parameters/RuleId'
      - $ref: '#/components/parameters/AccountGroupId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleDetailUpdate'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Rule'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
    delete:
      tags:
      - Alert Rules
      summary: Delete alert rule
      operationId: deleteAlertRule
      description: Deletes an alert rule from your account. Users must have both `Edit alert rules` and `Edit tests` permissions,
        especially if the rule is linked to any tests. Without these permissions, an error occurs. This endpoint is limited
        to alert rules for Network & App Synthetics tests and Routing tests.
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/RuleId'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /alert-suppression-windows:
    get:
      tags:
      - Alert Suppression Windows
      summary: List alert suppression windows
      operationId: getAlertSuppressionWindows
      description: Returns a list of all alert suppression windows configured in your account group.
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AlertSuppressionWindows'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
    post:
      tags:
      - Alert Suppression Windows
      summary: Create alert suppression window
      operationId: createAlertSuppressionWindow
      description: Creates a new alert suppression window in ThousandEyes, using the  provided POST data. Only Account Admins
        can create alert suppression windows.
      parameters:
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandAlert'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlertSuppressionWindowRequest'
      responses:
        '201':
          description: Created
          headers:
            Location:
              $ref: '#/components/headers/Location'
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AlertSuppressionWindowDetail'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /alert-suppression-windows/{windowId}:
    get:
      tags:
      - Alert Suppression Windows
      summary: Retrieve alert suppression window
      operationId: getAlertSuppressionWindow
      description: Returns detailed information about an alert suppression window configured in your account group.
      parameters:
      - $ref: '#/components/parameters/WindowId'
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandAlert'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AlertSuppressionWindowDetail'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
    put:
      tags:
      - Alert Suppression Windows
      summary: Update alert suppression window
      operationId: updateAlertSuppressionWindow
      description: Updates an alert suppression window in ThousandEyes, using the  provided POST data. Only Account Admins
        can update alert suppression windows.
      parameters:
      - $ref: '#/components/parameters/WindowId'
      - $ref: '#/components/parameters/AccountGroupId'
      - $ref: '#/components/parameters/ExpandAlert'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlertSuppressionWindowRequest'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/AlertSuppressionWindowDetail'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
    delete:
      tags:
      - Alert Suppression Windows
      summary: Delete alert suppression window
      operationId: deleteAlertSuppressionWindow
      description: Deletes an alert suppression window.
      parameters:
      - $ref: '#/components/parameters/WindowId'
      - $ref: '#/components/parameters/AccountGroupId'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer authentication token
  parameters:
    AlertId:
      name: alertId
      in: path
      description: Unique alert ID.
      example: e9c3bf02-a48c-4aa8-9e5f-898800d6f569
      required: true
      schema:
        type: string
        format: uuid
    RuleId:
      name: ruleId
      in: path
      description: Unique alert rule ID.
      example: '127094'
      required: true
      schema:
        type: string
    WindowId:
      name: windowId
      in: path
      description: Unique window ID.
      example: '2411'
      required: true
      schema:
        type: string
    ExpandAlert:
      name: expand
      in: query
      style: form
      explode: false
      description: Optional parameter on whether or not to expand alert related resources.  Without this parameter, there's
        no default expansion. For example, to expand the "tests" resource, use the `?expand=test` query.
      schema:
        type: array
        items:
          $ref: '#/components/schemas/ExpandAlertTestOptions'
        example:
        - test
    State:
      name: state
      in: query
      style: form
      required: false
      explode: false
      description: Optional parameter to match a specific alert state. If not specified, it defaults to `trigger`.
      schema:
        allOf:
        - $ref: '#/components/schemas/State'
        - example: trigger
    AccountGroupId:
      name: aid
      in: query
      description: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the
        `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter
        without being assigned to the target account group will result in an error response.
      required: false
      schema:
        type: string
        example: '1234'
    Window:
      name: window
      in: query
      description: 'A dynamic time interval up to the current time of the request. Specify the interval as a number followed
        by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days,
        and `w` for weeks.

        For a precise date range, use `startDate` and `endDate`.'
      schema:
        type: string
        pattern: ^\d+(?:[smhdw]{1})?$
        example: 12h
    StartDateParameter:
      name: startDate
      in: query
      description: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone,
        following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used
        with `window`.
      schema:
        type: string
        format: date-time
        example: '2022-07-17T22:00:54Z'
    EndDateParameter:
      name: endDate
      in: query
      description: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete
        time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for
        reference. Please note that this parameter can't be used with `window`.
      schema:
        type: string
        format: date-time
        example: '2022-07-18T22:00:54Z'
    PaginationMax:
      name: max
      in: query
      description: (Optional) Maximum number of objects to return.
      schema:
        type: integer
        example: 5
    PaginationCursor:
      name: cursor
      in: query
      example: null
      description: (Optional) Opaque cursor used for pagination. Clients should use `next` value from `_links` instead of
        this parameter.
      schema:
        type: string
        example: null
  schemas:
    AlertSimpleTest:
      description: Each test includes additional fields depending on its `type`. Refer `/tests/{type}` endpoint to know the
        set of fields returned by a given `type`.
      additionalProperties: true
      type: object
      properties:
        interval:
          $ref: '#/components/schemas/TestInterval'
        alertsEnabled:
          type: boolean
          description: Indicates if alerts are enabled.
          example: true
        enabled:
          $ref: '#/components/schemas/Enabled'
        createdBy:
          $ref: '#/components/schemas/TestCreatedBy'
        createdDate:
          $ref: '#/components/schemas/TestCreatedDate'
        description:
          type: string
          description: A description of the test.
          example: ThousandEyes Test
        liveShare:
          type: boolean
          description: Indicates if the test is shared with the account group.
          example: false
          readOnly: true
        modifiedBy:
          type: string
          description: User that modified the test.
          example: user@user.com
          readOnly: true
        modifiedDate:
          type: string
          format: date-time
          description: UTC last modification date (ISO date-time format).
          readOnly: true
          example: '2022-07-17T22:00:54Z'
        savedEvent:
          type: boolean
          description: 'Indicates if the test is a saved event.

            **Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect
            API.'
          readOnly: true
        testId:
          type: string
          description: Each test is assigned an unique ID; this is used to access test information and results from other
            endpoints.
          readOnly: true
          example: '281474976710706'
        testName:
          type: string
          description: The name of the test. Test name must be unique.
          example: ThousandEyes Test
        type:
          $ref: '#/components/schemas/AlertTestType'
        _links:
          $ref: '#/components/schemas/TestLinks'
    AlertTestType:
      type: string
      enum:
      - api
      - agent-to-agent
      - agent-to-server
      - bgp
      - http-server
      - page-load
      - web-transactions
      - ftp-server
      - dns-trace
      - dns-server
      - dnssec
      - sip-server
      - voice
      - endpoint-http-server
      - endpoint-network-server
      - endpoint-path-trace
      description: Valid Alert Types for which to return test links.
      readOnly: true
      example: agent-to-server
    ExpandAlertTestOptions:
      type: string
      enum:
      - test
    Rules:
      type: object
      properties:
        alertRules:
          type: array
          items:
            $ref: '#/components/schemas/BaseRule'
        _links:
          $ref: '#/components/schemas/SelfLinks'
    BaseRule:
      type: object
      required:
      - ruleName
      - expression
      - alertType
      - roundsViolatingOutOf
      properties:
        ruleId:
          $ref: '#/components/schemas/RuleId'
        ruleName:
          type: string
          description: Name of the alert rule.
          example: The End of the Internet
        expression:
          type: string
          description: The expression of the alert rule.
          example: ((hops((hopDelay >= 100 ms))))
        description:
          type: string
          description: A description of the alert rule.
          example: A rule description string
        direction:
          $ref: '#/components/schemas/AlertDirection'
        notifyOnClear:
          type: boolean
          description: Send notification when alert clears.
          example: true
        isDefault:
          type: boolean
          description: If set to `true`, this alert rule becomes the default for its test type and is automatically applied
            to newly created tests with relevant metrics. Only one default alert rule is allowed per test type.
          example: true
        alertType:
          $ref: '#/components/schemas/AlertType'
        alertGroupType:
          $ref: '#/components/schemas/AlertGroupType'
        minimumSources:
          type: integer
          description: The minimum number of agents or monitors that must meet the specified criteria to trigger the alert.
          example: 10
        minimumSourcesPct:
          type: integer
          description: The minimum percentage of all assigned agents or monitors that must meet the specified criteria to
            trigger the alert.
          example: 99
        roundsViolatingMode:
          $ref: '#/components/schemas/AlertRoundsViolationMode'
        roundsViolatingOutOf:
          type: integer
          description: Specifies the divisor (y value) in the “X of Y times” condition.
          example: 5
        roundsViolatingRequired:
          type: integer
          description: Specifies the numerator (x value) in the “X of Y times” condition.
          example: 2
        includeCoveredPrefixes:
          type: boolean
          description: Set true to include covered prefixes in the BGP alert rule. Only applicable to BGP alert rules.
          example: true
        sensitivityLevel:
          $ref: '#/components/schemas/SensitivityLevel'
        severity:
          $ref: '#/components/schemas/Severity'
        endpointAgentIds:
          description: An array of endpoint agent IDs associated with the rule (get `id` from `/endpoint/agents` API). This
            is applicable when `alertGroupType` is `browser-session`.
          type: array
          items:
            description: Unique ID of the agent.
            type: string
            example: '281474976710706'
        endpointLabelIds:
          description: An array of label IDs used to assign specific Endpoint Agents to the test (get `id` from `/endpoint/labels`).
            This is applicable when `alertGroupType` is `browser-session`.
          type: array
          items:
            description: An Endpoint label ID.
            type: string
            example: '123456'
        visitedSitesFilter:
          description: A list of website domains visited during the session. This is applicable when `alertGroupType` is `browser-session`.
          type: array
          items:
            type: string
          example:
          - app.thousandeyes.com
    Rule:
      allOf:
      - $ref: '#/components/schemas/RuleDetailUpdate'
      - type: object
        properties:
          _links:
            $ref: '#/components/schemas/SelfLinks'
    RuleDetail:
      allOf:
      - $ref: '#/components/schemas/BaseRule'
      - type: object
        properties:
          notifications:
            $ref: '#/components/schemas/AlertNotification'
          tests:
            type: array
            items:
              $ref: '#/components/schemas/AlertSimpleTest'
            readOnly: true
          testIds:
            type: array
            description: Array of test IDs to link to alert rule (get `testId` from `/tests` endpoint).
            readOnly: true
            items:
              type: string
            example:
            - '281474976710706'
            - '271659'
          _links:
            $ref: '#/components/schemas/SelfLinks'
    RuleDetailUpdate:
      allOf:
      - $ref: '#/components/schemas/BaseRule'
      - type: object
        properties:
          notifications:
            $ref: '#/components/schemas/AlertNotification'
          testIds:
            $ref: '#/components/schemas/RuleTestIds'
    AlertMeta:
      type: object
      properties:
        version:
          type: integer
          format: int32
          description: Indicates the number of times this alert has re-entered the 'trigger' state after being suppressed.
            It starts at 1 and increments whenever a real-time ASW ends and the alert conditions remain active.
          example: 1
    BaseAlert:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: A unique ID for each individual alert occurrence.
          example: e9c3bf02-a48c-4aa8-9e5f-898800d6f569
          readOnly: true
        alertType:
          $ref: '#/components/schemas/AlertType'
        startDate:
          $ref: '#/components/schemas/StartDate'
        endDate:
          $ref: '#/components/schemas/EndDate'
        violationCount:
          type: integer
          description: Number of sources that meet the alert criteria.
          example: 2
        duration:
          type: integer
          format: int64
          description: Duration in seconds the alert was active
          example: 60
        suppressed:
          type: boolean
          description: Indicates whether the alert is currently suppressed by a real-time ASW.
          example: false
        meta:
          $ref: '#/components/schemas/AlertMeta'
        _links:
          $ref: '#/components/schemas/AlertLinks'
    LegacyAlert:
      type: object
      deprecated: true
      properties:
        alertId:
          deprecated: true
          type: string
          format: uuid
          description: A unique ID for each individual alert occurrence.
          example: e9c3bf02-a48c-4aa8-9e5f-898800d6f569
          readOnly: true
        dateStart:
          deprecated: true
          type: string
          description: The start date and time for querying alerts.
          example: '2020-04-23 13:43:16'
          readOnly: true
        dateEnd:
          deprecated: true
          type: string
          description: The end date and time for querying alerts.
          example: '2020-04-23 13:43:16'
          readOnly: true
        ruleId:
          deprecated: true
          type: integer
          format: int64
          description: Unique ID of the rule.
          example: 127094
          readOnly: true
        state:
          deprecated: true
          type: string
          description: 'Current state of the alert. Possible values: clear or trigger.'
          enum:
          - ACTIVE
          - CLEARED
          example: ACTIVE
          readOnly: true
        severity:
          deprecated: true
          type: string
          description: The severity of the alert.
          enum:
          - INFO
          - MAJOR
          - MINOR
          - CRITICAL
          - UNKNOWN
          example: MAJOR
        permalink:
          deprecated: true
          type: string
          description: Hyperlink to alerts list, with row expanded
          example: https://app.thousandeyes.com/alerts/list?__a=75&alertId=2783&agentId=12
        apiLinks:
          deprecated: true
          type: array
          description: List of hyperlinks to other areas of the API
          items:
            type: object
            additionalProperties: true
    Alerts:
      type: object
      properties:
        alerts:
          x-paginated-items: true
          type: array
          items:
            $ref: '#/components/schemas/Alert'
        _links:
          $ref: '#/components/schemas/PaginationLinks'
    Alert:
      allOf:
      - $ref: '#/components/schemas/BaseAlert'
      - $ref: '#/components/schemas/LegacyAlert'
      - type: object
        properties:
          alertRuleId:
            $ref: '#/components/schemas/RuleId'
          alertState:
            $ref: '#/components/schemas/State'
          alertSeverity:
            $ref: '#/components/schemas/Severity'
    AlertDetail:
      allOf:
      - $ref: '#/components/schemas/BaseAlert'
      - $ref: '#/components/schemas/LegacyAlertDetail'
      - type: object
        properties:
          alertState:
            $ref: '#/components/schemas/State'
          alertSeverity:
            $ref: '#/components/schemas/Severity'
          details:
            type: array
            items:
              $ref: '#/components/schemas/AlertMetricDetail'
          _embedded:
            $ref: '#/components/schemas/AlertEmbedded'
    AlertEmbedded:
      type: object
      description: Container for embedded resources in alert responses (HATEOAS).
      properties:
        asn:
          $ref: '#/components/schemas/Asn'
    Asn:
      type: object
      description: Autonomous System Number (ASN) information for network outage alerts.
      properties:
        id:
          type: string
          description: ASN identifier.
          example: '13445'
        name:
          type: string
          description: Autonomous system name.
          example: Cisco Webex LLC
        type:
          type: string
          description: Resource type.
          example: asn
    LegacyAlertDetail:
      type: object
      deprecated: true
      properties:
        state:
          $ref: '#/components/schemas/State'
        severity:
          $ref: '#/components/schemas/Severity'
    AlertMetricDetail:
      type: object
      properties:
        end:
          $ref: '#/components/schemas/EndAlertMetrics'
        id:
          type: string
          description: Unique metric detail id.
          example: '3379'
        name:
          type: string
          descri

# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thousandeyes/refs/heads/main/openapi/thousandeyes-alerts-openapi.yml