ControlUp Alerts API

Alerts let you receive notifications or automatically run an action when certain conditions occur on a device.

Business capability
IT Operations Management BC-600.40

Operations 13

GET /alerts List all Alerts #
POST /alerts Create an Alert #
GET /alerts/{id} Retrieve Alert #
POST /alerts/{id} Edit alert #
DELETE /alerts/{id} Delete alert #
GET /organizations/{orgId}/alert-configs List all Alerts #
GET /alerts/scouts List Scout IDs with alerts #
GET /alerts/{scoutId} List alerts for a Scout #
GET /scouts/{scoutId}/alerts List alert policies for a Scout #
POST /scouts/{scoutId}/alerts Create alert policy #
GET /scouts/{scoutId}/alerts/{alertId} Get alert policy details #
PATCH /scouts/{scoutId}/alerts/{alertId} Update alert policy #
DELETE /scouts/{scoutId}/alerts/{alertId} Delete alert policy #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/controlup-alerts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

controlup-alerts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Controlup Alerts API
  version: '1.0'
  description: 'Operations tagged Alerts across 3 of this provider''s published API definitions: controlup-desktops-openapi.yml, controlup-dex-alerts-openapi.yml, controlup-synthetic-monitoring-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.controlup.com/edge/api
- url: https://api.controlup.com/events/v1/alerts
- url: https://api.controlup.com/synthetic-monitoring/v2/
tags:
- name: Alerts
  description: Alerts let you receive notifications or automatically run an action when certain conditions occur on a device.
paths:
  /alerts:
    servers:
    - url: https://api.controlup.com/edge/api
    get:
      summary: List all Alerts
      tags:
      - Alerts
      description: "Returns a list of configured alerts.\n\nYou can either:\n  * Use `query` to use an OpenSearch query. Note that you can't create an OpenSearch query using the request builder built into the documentation.\n  * Use the remaining query parameters to query alerts.\n"
      operationId: get-alerts
      parameters:
      - in: query
        name: query
        description: An OpenSearch query.
        schema:
          type: object
          default: false
      - in: query
        name: size
        description: The number of rows returned per page.
        schema:
          type: integer
          default: 10000
          maximum: 10000
      - in: query
        name: page
        description: The page returned. The number of rows per page is set with the `size` parameter.
        schema:
          type: integer
          default: 1
      - in: query
        name: from
        description: The index of the `rows` array to start returning data from. The array index starts at 0. For example, if you set `from` = 2, the first two rows are excluded.
        schema:
          type: integer
          example: 2
      - $ref: '#/components/parameters/FilterField'
      - $ref: '#/components/parameters/FilterType'
      - $ref: '#/components/parameters/FilterValue'
      - $ref: '#/components/parameters/SorterField'
      - $ref: '#/components/parameters/SorterDir'
      responses:
        '200':
          description: List of configured alerts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  rows:
                    type: array
                    items:
                      allOf:
                      - type: object
                        properties:
                          _id:
                            type: string
                            description: Unique identifier for the alert.
                            example: izWJPJcBOClmoe-Yecr0
                      - $ref: '#/components/schemas/Alert'
        '400':
          description: The provided query is invalid.
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
    post:
      summary: Create an Alert
      description: Creates a new Alert.
      tags:
      - Alerts
      operationId: create-alert
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - platform
              - index
              - filters
              - results_threshold
              - results_threshold_seconds
              - retrigger_interval
              - severity
              properties:
                name:
                  $ref: '#/components/schemas/Alert/properties/name'
                description:
                  $ref: '#/components/schemas/Alert/properties/description'
                severity:
                  $ref: '#/components/schemas/Alert/properties/severity'
                enabled:
                  $ref: '#/components/schemas/Alert/properties/enabled'
                platform:
                  $ref: '#/components/schemas/Alert/properties/platform'
                results_threshold_seconds:
                  $ref: '#/components/schemas/Alert/properties/results_threshold_seconds'
                results_threshold:
                  $ref: '#/components/schemas/Alert/properties/results_threshold'
                retrigger_interval:
                  $ref: '#/components/schemas/Alert/properties/retrigger_interval'
                index:
                  $ref: '#/components/schemas/Alert/properties/index'
                filters:
                  $ref: '#/components/schemas/Alert/properties/filters'
                webhook_url:
                  $ref: '#/components/schemas/Alert/properties/webhook_url'
                script_id:
                  $ref: '#/components/schemas/Alert/properties/script_id'
                user_script_id:
                  $ref: '#/components/schemas/Alert/properties/user_script_id'
                survey_id:
                  $ref: '#/components/schemas/Alert/properties/survey_id'
                email_addresses:
                  $ref: '#/components/schemas/Alert/properties/email_addresses'
                servicenow_raise_incident:
                  $ref: '#/components/schemas/Alert/properties/servicenow_raise_incident'
                servicenow_ticket_type:
                  $ref: '#/components/schemas/Alert/properties/servicenow_ticket_type'
                servicenow_impact:
                  $ref: '#/components/schemas/Alert/properties/servicenow_impact'
                servicenow_urgency:
                  $ref: '#/components/schemas/Alert/properties/servicenow_urgency'
                servicenow_autoclose_interval:
                  $ref: '#/components/schemas/Alert/properties/servicenow_autoclose_interval'
      responses:
        '200':
          description: Alert created.
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
  /alerts/{id}:
    servers:
    - url: https://api.controlup.com/edge/api
    get:
      summary: Retrieve Alert
      tags:
      - Alerts
      description: 'Returns an alert by its ID.

        '
      operationId: get-alert
      parameters:
      - in: path
        name: id
        description: ID of the alert to retrieve.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Alert details.
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    _id:
                      type: string
                      description: Unique identifier for the alert.
                      example: izWJPJcBOClmoe-Yecr0
                - $ref: '#/components/schemas/Alert'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
    post:
      summary: Edit alert
      description: Edits an existing alert by its ID. Any parameters not passed are unchanged.
      tags:
      - Alerts
      operationId: edit-alert
      parameters:
      - in: path
        name: id
        description: ID of the alert to edit.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Alert'
      responses:
        '200':
          description: Alert edited
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
    delete:
      summary: Delete alert
      description: Deletes an existing alert by its ID.
      tags:
      - Alerts
      operationId: delete-alert
      parameters:
      - in: path
        name: id
        description: ID of the alert to delete.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Alert deleted
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
      - bearerAuth: []
  /organizations/{orgId}/alert-configs:
    servers:
    - url: https://api.controlup.com/events/v1/alerts
    get:
      operationId: AlertsConfigsController_getAll
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIPaginatedResponse_AlertMetadataDTO-Array_'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_BadRequestErrorMessages.HttpStatusCode.BAD_REQUEST.BadRequestErrorCodes__'
        '401':
          description: 'Unauthorized: Access is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Unauthorized.HttpStatusCode.UNAUTHORIZED.ErrorCode.Unauthorized__'
        '403':
          description: 'Forbidden: Access to this resource is denied'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.Forbidden.HttpStatusCode.FORBIDDEN.ErrorCode.Forbidden__'
        '404':
          description: 'Not Found: The requested resource could not be found'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.NotFound.HttpStatusCode.NOT_FOUND.ErrorCode.NotFound__'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBody_ErrorType_ErrorMessage.InternalServerError.HttpStatusCode.INTERNAL_SERVER_ERROR.ErrorCode.InternalServerError__'
      description: Returns a list of configured alerts.
      summary: List all Alerts
      tags:
      - Alerts
      security:
      - apiKey: []
      parameters:
      - description: 'The page of results to return.

          The first page is page number 1.'
        in: query
        name: _page
        required: false
        schema:
          default: '1'
          format: int32
          type: integer
          minimum: 1
        example: 1
        style: form
      - description: The number of results returned per page.
        in: query
        name: _limit
        required: false
        schema:
          default: '10'
          format: int32
          type: integer
          minimum: 1
        example: 10
        style: form
      - description: Sorts results according to the specified field.
        in: query
        name: _sortBy
        required: false
        schema:
          default: id
          type: string
        example: id
        style: form
      - description: The sort order (ascending / descending) of the field specified by the `_sortBy` parameter.
        in: query
        name: _order
        required: false
        schema:
          default: asc
          type: string
          enum:
          - asc
          - desc
        example: asc
        style: form
      - description: 'A search filter that is applied to all fields.

          Only results that contain the specified string are returned.'
        in: query
        name: _search
        required: false
        schema:
          type: string
        style: form
      - description: ID of your ControlUp organization. You can find your organization ID on the [API Key Management page](how-to-make-api-requests#how-to-find-your-controlup-organization-id) in the DEX platform.
        in: path
        name: orgId
        required: true
        schema:
          $ref: '#/components/schemas/UUID'
      - description: "JSON filter for narrowing results. Send this value as a URL-encoded JSON string.\n\nExample:\n```\n%7B%22and%22%3A%20%5B%7B%22filter%22%3A%20%7B%22key%22%3A%20%22type%22%2C%20%22op%22%3A%20%22equals%22%2C%20%22value%22%3A%20%22anomaly%22%7D%7D%2C%7B%22filter%22%3A%20%7B%22key%22%3A%20%22severity%22%2C%20%22op%22%3A%20%22equals%22%2C%20%22value%22%3A%20%22low%22%7D%7D%5D%7D\n```\n\nDecoded value:\n```\n{\n  \"and\": [\n    {\n      \"filter\": {\n        \"key\": \"type\",\n        \"op\": \"equals\",\n        \"value\": \"anomaly\"\n      }\n    },\n    {\n      \"filter\": {\n        \"key\": \"severity\",\n        \"op\": \"equals\",\n        \"value\": \"low\"\n      }\n    }\n  ]\n}\n```"
        in: query
        name: filters
        required: false
        schema:
          type: string
        style: form
  /alerts/scouts:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: List Scout IDs with alerts
      description: 'Returns a list of Scout IDs that have triggered an alert within the specified time frame. The default time frame is the last 24 hours.

        '
      operationId: honeycomb.api.get_scout_alerts
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - in: query
        name: start
        description: Start date and time of the search.
        schema:
          type: string
          format: date-time
        example: '2021-01-01 13:21:55'
      - in: query
        name: end
        description: End date and time of the search.
        schema:
          type: string
          format: date-time
        example: '2021-02-01 10:24:55'
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertList'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/alerts/scouts?start=2023-09-26 08:00:00&end=2023-09-27 01:30:00'' \

          -H ''x-scoutbees-key: API-key-here''

          '
  /alerts/{scoutId}:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: List alerts for a Scout
      description: Returns alerts generated within the specified time frame for a Scout. The default time frame is the last 24 hours.
      operationId: app.get_alert_for_scout
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: string
        required: true
      - name: start
        in: query
        description: Start date and time of the search. The start date can be up to 1 year in the past. The total search duration from the start time to the end time can be a maximum of 24 hours.
        schema:
          type: string
          format: date-time
        example: '2023-09-26 08:00:00'
      - name: end
        in: query
        description: End date and time of the search.
        schema:
          type: string
          format: date-time
        example: '2023-09-27 01:30:00'
      - name: page
        in: query
        description: The page of alerts to return. Each page contains up to 100 alerts. If your request returns more than 100 alerts, then the response is paginated.
        schema:
          type: integer
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertItem'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/alerts/7852?start=2023-09-26 08:00:00&end=2023-09-27 01:30:00'' \

          -H ''x-scoutbees-key: API-key-here''

          '
  /scouts/{scoutId}/alerts:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: List alert policies for a Scout
      description: Returns all alert policies configured for a Scout. Currently, each Scout supports only a single alert policy.
      operationId: app.get_scout_alert_policies
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertSummaryList'
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts'' \

          -H ''x-scoutbees-key: API-key-here''

          '
    post:
      summary: Create alert policy
      description: Creates a new alert policy for a Scout. A Scout can have only one alert policy. If one already exists, you can update it or delete it. Alerts trigger when the Scout's test results meet certain conditions.
      operationId: app.create_scout_alert
      security:
      - ApiKeyAuth:
        - write
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      requestBody:
        $ref: '#/components/requestBodies/AlertCreate'
      tags:
      - Alerts
      responses:
        '201':
          description: Alert created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Whether the request was successful.
                  data:
                    type: object
                    properties:
                      alertId:
                        type: integer
                        description: ID of the created alert.
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST 'https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts' \\\n-H 'x-scoutbees-key: API-key-here' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n    \"conditions\": {\n      \"field\": \"status\",\n      \"operator\": \"==\",\n      \"value\": \"failure\"\n    },\n    \"settings\": {\n      \"consecutiveMatchCount\": 2\n    }\n}'\n"
  /scouts/{scoutId}/alerts/{alertId}:
    servers:
    - url: https://api.controlup.com/synthetic-monitoring/v2/
    get:
      summary: Get alert policy details
      description: Returns detailed information about a specific alert policy for a Scout, including settings, notifications, and status.
      operationId: app.get_scout_alert
      security:
      - ApiKeyAuth:
        - read
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      - name: alertId
        in: path
        description: ID of the Scout's alert policy. Currently, each Scout supports only a single alert policy.
        schema:
          type: integer
        required: true
      tags:
      - Alerts
      responses:
        '200':
          $ref: '#/components/responses/AlertDetails'
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: 'curl -X GET ''https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts/123'' \

          -H ''x-scoutbees-key: API-key-here''

          '
    patch:
      summary: Update alert policy
      description: Updates an existing alert policy for a specific Scout. Any object not passed is unchanged.
      operationId: app.update_scout_alert
      security:
      - ApiKeyAuth:
        - write
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      - name: alertId
        in: path
        description: 'ID of the Scout''s alert policy. Currently, each Scout supports only a single alert policy.

          You can use [GET /scouts/{scoutId}/alerts](appget_scout_alert_policies) to get the ID of a Scout''s alert policy.

          '
        schema:
          type: integer
        required: true
      requestBody:
        $ref: '#/components/requestBodies/AlertUpdate'
      tags:
      - Alerts
      responses:
        '200':
          description: Alert was updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    description: Whether the request was successful.
                  data:
                    type: object
                    properties:
                      alertId:
                        type: integer
                        description: ID of the updated alert.
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: "curl -X PATCH 'https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts/123' \\\n-H 'x-scoutbees-key: API-key-here' \\\n-H 'Content-Type: application/json' \\\n--data-raw '{\n    \"disabled\": true,\n    \"conditions\": {\n      \"field\": \"status\",\n      \"operator\": \"==\",\n      \"value\": \"failure\"\n    },\n    \"settings\": {\n      \"consecutiveMatchCount\": 2\n    }\n}'\n"
    delete:
      summary: Delete alert policy
      description: Deletes an Scout's alert policy.
      operationId: app.delete_scout_alert
      security:
      - ApiKeyAuth:
        - write
      parameters:
      - name: scoutId
        in: path
        description: ID of the Scout.
        schema:
          type: integer
        required: true
      - name: alertId
        in: path
        description: ID of the Scout's alert policy. Currently, each Scout supports only a single alert policy.
        schema:
          type: integer
        required: true
      tags:
      - Alerts
      responses:
        '204':
          description: Alert was deleted successfully
        '400':
          $ref: '#/components/responses/New400'
        '401':
          $ref: '#/components/responses/New401'
        '404':
          $ref: '#/components/responses/New404'
        '500':
          $ref: '#/components/responses/New500'
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE 'https://api.scoutbees.io/honeycomb/v2/scouts/7852/alerts/123' \\\n-H 'x-scoutbees-key: API-key-here' \\\n-H 'Content-Type: application/json' \n"
components:
  schemas:
    AlertConditionGroupTraceroute:
      title: Condition Group
      description: 'Group of conditions or condition groups with AND/OR operators. Supports nesting up to 5 levels deep.

        '
      type: object
      required:
      - operator
      - rules
      properties:
        operator:
          type: string
          description: Logical operator for combining rules in this group.
          enum:
          - AND
          - OR
          example: AND
        rules:
          type: array
          description: "List of conditions or condition groups. Must contain at least \n1 and at most 5 items.\n"
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/AlertConditionObjectTraceroute'
          example:
          - field: status
            operator: ==
            value: failure
          - operator: OR
            rules:
            - field: latency
              operator: '>'
              value: 80
            - field: packetLoss
              operator: '>'
              value: 90
    ErrorCode.Forbidden:
      enum:
      - 4
      type: number
    AlertTerminalRuleWebTransactions:
      title: Condition
      description: A single alert condition that evaluates a test result property.
      type: object
      properties:
        field:
          type: string
          description: 'The test result property to compare against.


            | Field Name | Description | Type |

            | :--- | :--- | :--- |

            | status | Overall status for the test, either **`success`** or **`failure`**. | string |

            | failReason | The reason that the test failed. | string |

            | dest | Destination. | string |

            | totalDuration | Total Duration (ms). | number (float) |

            | stepsDuration | Steps Duration (ms). | number (float) |

            | duration | Page Load - Duration (ms). | number (float) |

            | firstPaint | Page Load - First Paint (ms). | number (float) |

            | contentfulPaint | Page Load - Contentful Paint (ms). | number (integer) |

            | domainLookup | Page Load - Domain Lookup (ms). | number (float) |

            | domInteractive | Page Load - DOM Interactive (ms). | number (float) |

            | downloadSize | Download Size (bytes). | number (integer) |

            '
          enum:
          - status
          - failReason
          - dest
          - totalDuration
          - stepsDuration
          - duration
          - firstPaint
          - contentfulPaint
          - domainLookup
          - domInteractive
          - downloadSize
        operator:
          type: string
          description: 'Comparison operator for evaluating the condition.

            * For string fields, use `==`, `!=`, `contains`, `not_contains`.

            * For number fields, use `>`, `<`, `>=`, `<=`, `==`, `!=`

            * For boolean fields, use `==`, `!=`.

            '
          enum:
          - '>'
          - <
          - '>='
          - <=
          - ==
          - '!='
          - contains
          - not_contains
          example: ==
        value:
          description: 'Value to compare against. The data type must match the data type of the test result property in the `field` parameter.

            '
          oneOf:
          - type: string
          - type: integer
          - type: number
          - type: boolean
          example: failure
    Alert:
      type: object
      properties:
        enabled:
          type: boolean
          description: Indicates if the alert is enabled.
          example: true
        platform:
          type: integer
          format: int32
          description: "OS platform. This determines which scripts are available to select as a followup action when the alert is triggered. This does not determine which devices can trigger the script. \n* 0 - No platform selected\n* 1 - Windows\n* 2 - macOS\n* 3 - Linux\n* 4 - ChromeOS \n"
          example: 1
        servicenow_raise_incident:
          type: string
          description: Indicates if the Alert raises a ServiceNow ticket when it activates. "true" means that a ticket is raised.
          example: 'true'
        servicenow_ticket_type:
          type: integer
          format: int32
          description: 'Type of ServiceNow ticket.

            * `1` = Incident

            * `2` = Event

            '
          example: 1
        servicenow_impact:
          type: integer
          format: int32
          description: 'Impact level for the ServiceNow ticket.

            * `1` = High

            * `2` = Medium

            * `3` = Low

            '
          example: 2
        servicenow_urgency:
          type: integer
          format: int32
          description: 'Urgency level for the ServiceNow ticket.

            * `1` = High

            * `2` = Medium

            * `3` = Low

            '
          example: 2
        servicenow_autoclose_interval:
          type: integer
          format: int32
          description: Auto-close interval for the ServiceNow ticket in seconds.
          example: 300
        name:
          type: string
          description: Name of the alert.
          example: My first alert
        description:
          type: string
          description: Description of the alert.
          example: Description of my first alert goes here
        index:
          type: string
          description: Index associated with the alert. The alerts conditions (located in `filters) must be based off of fields in the data index.
          example: device_status
        filters:
          type: array
          description: List of conditions for the alert to activate. Multiple conditions are combined using AND operators.
          items:
            type: object
            properties:
              field:
                type: string
                description: Field to filter on.
                example: cpuload
              type:
                type: string
                description: Type of comparison. Note that if you are filtering on a string field, you must use the "like" filter type.
                example: '>'
                enum:
                - '='
                - '!='
                - '>='
                - '>'
                - <=
                - <
                - like
              value:
                type: string
                description: Value to compare against. Numbers can be passed as strings.
                example: '1'
        results_threshold:
          type: integer
          format: int32
          description: The number of times that the conditions must be met within the time window (`results_threshold_seconds`) for the trigger to activate.
          example: 5
        results_threshold_seconds:
          type: integer
          format: int32
          description: The length of time in seconds that the alert system searches back to check whether the alert's activation conditions were met.
          example: 600
        retrigger_interval:
          type: integer
          format: int32
          description: The minimum duration between subsequent alert activations. If the retrigger interval duration has not passed since the last alert activation, then the alert won't activate even if all conditions are met.
          example: 3600
        severity:
          type: integer
          format: int32
          description: 'Severity level of the alert.

            * 1 - Informational

            * 2 - Low

            * 3 - Medium

            * 4 - High

            * 5 - Critical

            '
          example: 4
        evaluation_mode:
          type: integer
          format: int32
          description: Internal use only.
          example: 1
        webhook_url:
          type:
          - string
          - 'null'
          format: uri
          description: URL for a webhook to be triggered.
          example: https://your-domain.com/webhook-endpoint
        script_id:
          type:
          - string
          - 'null'
          description: ID of a system script to run on devices that trigger the alert. You can use [GET /scripts](list-all-scripts) to see script IDs.
          example: fpwG-4oB1426LInH16YF
        user_script_id:
          type:
          - string
          - 'null'
          description: ID of a user script to run on devices that trigger the alert. You can use [GET /scripts](list-all-scripts) to see script IDs.
          example: fpwG-4oB1426LInH16YF
        script_arguments:
          type:
          - string
          - 'null'
          description: Internal use only.
        survey_id:
          type:
          - string
          - 'null'
          description: ID of an on-demand survey to run on devices that trigger the alert. You can use [GET /surveys](get-surveys) to see survey IDs.
          example: fpwG-4oB1426LInH16YF
        email_addresses:
        

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