Arthur AI Alerts V1 API
The Alerts V1 API from Arthur AI — 5 operation(s) for alerts v1.
The Alerts V1 API from Arthur AI — 5 operation(s) for alerts v1.
openapi: 3.1.0
info:
title: Arthur Scope Agents V1 Alerts V1 API
version: 0.1.0
tags:
- name: Alerts V1
paths:
/api/v1/models/{model_id}/alerts:
get:
tags:
- Alerts V1
summary: Get Model Alerts
description: Returns a list of alerts associated with a model. Requires model_list_alerts permission.
operationId: get_model_alerts
security:
- OAuth2AuthorizationCode:
- model_list_alerts
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/AlertSort'
description: The field to sort by.
default: timestamp
description: The field to sort by.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: The order to sort by.
default: desc
description: The order to sort by.
- name: alert_rule_ids
in: query
required: false
schema:
type: array
items:
type: string
format: uuid
description: The ID of the alert rule to filter by.
title: Alert Rule Ids
description: The ID of the alert rule to filter by.
- name: bound
in: query
required: false
schema:
$ref: '#/components/schemas/AlertBound'
description: The bound to filter by.
description: The bound to filter by.
- name: time_from
in: query
required: false
schema:
type: string
format: date-time
description: The start timestamp to filter by.
title: Time From
description: The start timestamp to filter by.
- name: time_to
in: query
required: false
schema:
type: string
format: date-time
description: The end timestamp to filter by.
title: Time To
description: The end timestamp to filter by.
- name: created_at_from
in: query
required: false
schema:
type: string
format: date-time
description: Filter alerts created at or after this timestamp.
title: Created At From
description: Filter alerts created at or after this timestamp.
- name: created_at_to
in: query
required: false
schema:
type: string
format: date-time
description: Filter alerts created at or before this timestamp.
title: Created At To
description: Filter alerts created at or before this timestamp.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page to return starting from 1 up to total_pages.
default: 1
title: Page
description: The page to return starting from 1 up to total_pages.
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: The number of records per page. The max is 1000.
default: 20
title: Page Size
description: The number of records per page. The max is 1000.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InfiniteResourceList_Alert_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- Alerts V1
summary: Create Model Alerts
description: Creates a list of alerts associated with a model. Requires model_create_alert permission.
operationId: post_model_alerts
security:
- OAuth2AuthorizationCode:
- model_create_alert
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostAlerts'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedAlerts'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestError'
description: Bad Request
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/models/{model_id}/alert_logs:
post:
tags:
- Alerts V1
summary: Create Model Alert Logs
description: Creates alert rule evaluation logs for a model. Requires model_create_alert permission.
operationId: post_model_alert_logs
security:
- OAuth2AuthorizationCode:
- model_create_alert
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostAlertLogs'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_AlertLog_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Alerts V1
summary: Get Model Alert Logs
description: Returns alert rule evaluation logs for a model. Requires model_list_alerts permission.
operationId: get_model_alert_logs
security:
- OAuth2AuthorizationCode:
- model_list_alerts
parameters:
- name: model_id
in: path
required: true
schema:
type: string
format: uuid
title: Model Id
- name: alert_rule_id
in: query
required: false
schema:
type: string
format: uuid
description: Filter by alert rule ID.
title: Alert Rule Id
description: Filter by alert rule ID.
- name: status
in: query
required: false
schema:
$ref: '#/components/schemas/AlertLogStatus'
description: Filter by status.
description: Filter by status.
- name: start_time
in: query
required: false
schema:
type: string
format: date-time
description: Filter logs with bucket timestamp at or after this time.
title: Start Time
description: Filter logs with bucket timestamp at or after this time.
- name: end_time
in: query
required: false
schema:
type: string
format: date-time
description: Filter logs with bucket timestamp at or before this time.
title: End Time
description: Filter logs with bucket timestamp at or before this time.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page to return starting from 1 up to total_pages.
default: 1
title: Page
description: The page to return starting from 1 up to total_pages.
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: The number of records per page. The max is 1000.
default: 20
title: Page Size
description: The number of records per page. The max is 1000.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceList_AlertLog_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/workspaces/{workspace_id}/alerts:
get:
tags:
- Alerts V1
summary: Get Workspace Alerts.
description: Returns alerts from all models in the workspace matching the filter and sorting criteria. If multiple filters are specified, results will only be returned that match all of the specified criteria. Requires workspace_list_alerts permission.
operationId: get_alerts_in_workspace
security:
- OAuth2AuthorizationCode:
- workspace_list_alerts
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/AlertSort'
description: Override the field used for sorting the returned list. Optional.
default: timestamp
description: Override the field used for sorting the returned list. Optional.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Override the sort order used. Optional.
default: desc
description: Override the sort order used. Optional.
- name: alert_rule_ids
in: query
required: false
schema:
type: array
items:
type: string
format: uuid
description: The ID of the alert rule to filter by.
title: Alert Rule Ids
description: The ID of the alert rule to filter by.
- name: bound
in: query
required: false
schema:
$ref: '#/components/schemas/AlertBound'
description: The bound to filter by.
description: The bound to filter by.
- name: time_from
in: query
required: false
schema:
type: string
format: date-time
description: The start timestamp to filter by.
title: Time From
description: The start timestamp to filter by.
- name: time_to
in: query
required: false
schema:
type: string
format: date-time
description: The end timestamp to filter by.
title: Time To
description: The end timestamp to filter by.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page to return starting from 1 up to total_pages.
default: 1
title: Page
description: The page to return starting from 1 up to total_pages.
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: The number of records per page. The max is 1000.
default: 20
title: Page Size
description: The number of records per page. The max is 1000.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InfiniteResourceList_Alert_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/workspaces/{workspace_id}/alerts/grouped:
get:
tags:
- Alerts V1
summary: Get Workspace Alerts Grouped.
description: Returns alerts from all models in the workspace grouped by alert rule. Supports pagination and time range filtering with a default of the last 7 days. Requires workspace_list_alerts permission.
operationId: get_grouped_alerts_in_workspace
security:
- OAuth2AuthorizationCode:
- workspace_list_alerts
parameters:
- name: workspace_id
in: path
required: true
schema:
type: string
format: uuid
title: Workspace Id
- name: sort
in: query
required: false
schema:
$ref: '#/components/schemas/AlertSort'
description: Override the field used for sorting the returned list. Optional.
default: timestamp
description: Override the field used for sorting the returned list. Optional.
- name: order
in: query
required: false
schema:
$ref: '#/components/schemas/SortOrder'
description: Override the sort order used. Optional.
default: desc
description: Override the sort order used. Optional.
- name: alert_rule_ids
in: query
required: false
schema:
type: array
items:
type: string
format: uuid
description: The ID of the alert rule to filter by.
title: Alert Rule Ids
description: The ID of the alert rule to filter by.
- name: bound
in: query
required: false
schema:
$ref: '#/components/schemas/AlertBound'
description: The bound to filter by.
description: The bound to filter by.
- name: time_from
in: query
required: false
schema:
type: string
format: date-time
description: The start timestamp to filter by. Defaults to 7 days ago if not specified.
title: Time From
description: The start timestamp to filter by. Defaults to 7 days ago if not specified.
- name: time_to
in: query
required: false
schema:
type: string
format: date-time
description: The end timestamp to filter by. Defaults to now if not specified.
title: Time To
description: The end timestamp to filter by. Defaults to now if not specified.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page to return starting from 1 up to total_pages.
default: 1
title: Page
description: The page to return starting from 1 up to total_pages.
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 1000
minimum: 1
description: The number of records per page. The max is 1000.
default: 20
title: Page Size
description: The number of records per page. The max is 1000.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/InfiniteResourceList_AlertGroup_'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/alerts/{alert_id}:
get:
tags:
- Alerts V1
summary: Get Alert By Id
description: Returns a single alert by ID. Requires model_alert_read permission.
operationId: get_alert
security:
- OAuth2AuthorizationCode:
- model_alert_read
parameters:
- name: alert_id
in: path
required: true
schema:
type: string
format: uuid
title: Alert Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/Alert'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundError'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
InfinitePagination:
properties:
page:
type: integer
title: Page
description: The current page number. Page 1 is the first page.
default: 1
page_size:
type: integer
title: Page Size
description: Number of records per page.
default: 20
type: object
title: InfinitePagination
PostAlertLog:
properties:
alert_rule_id:
type: string
format: uuid
title: Alert Rule Id
description: The ID of the alert rule that was evaluated.
job_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Job Id
description: The ID of the job that triggered this evaluation.
policy_model_assignment_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Policy Model Assignment Id
description: The ID of the policy model assignment, if this is a policy-managed alert rule.
status:
$ref: '#/components/schemas/AlertLogStatus'
description: The outcome of the alert rule evaluation.
timestamp:
type: string
format: date-time
title: Timestamp
description: Start timestamp of the evaluation bucket this log covers.
type: object
required:
- alert_rule_id
- status
- timestamp
title: PostAlertLog
AlertWebhookCalled:
properties:
webhook_id:
type: string
format: uuid
title: Webhook Id
description: The id of the webhook that was triggered by the alert.
webhook_name:
type: string
title: Webhook Name
description: The name of the webhook.
webhook_result:
$ref: '#/components/schemas/WebhookResult'
description: The result of the webhook call.
type: object
required:
- webhook_id
- webhook_name
- webhook_result
title: AlertWebhookCalled
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
WebhookResponse:
properties:
status_code:
anyOf:
- type: integer
- type: 'null'
title: Status Code
response:
anyOf:
- type: string
- type: 'null'
title: Response
type: object
required:
- status_code
- response
title: WebhookResponse
InfiniteResourceList_Alert_:
properties:
records:
items:
$ref: '#/components/schemas/Alert'
type: array
title: Records
description: List of records.
pagination:
$ref: '#/components/schemas/InfinitePagination'
description: Pagination information.
type: object
required:
- records
- pagination
title: InfiniteResourceList[Alert]
InfiniteResourceList_AlertGroup_:
properties:
records:
items:
$ref: '#/components/schemas/AlertGroup'
type: array
title: Records
description: List of records.
pagination:
$ref: '#/components/schemas/InfinitePagination'
description: Pagination information.
type: object
required:
- records
- pagination
title: InfiniteResourceList[AlertGroup]
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
NotFoundError:
properties:
detail:
type: string
title: Detail
default: Resource not found
type: object
title: NotFoundError
InternalServerError:
properties:
detail:
type: string
title: Detail
default: Internal server error
type: object
title: InternalServerError
AlertGroup:
properties:
alert_rule_id:
type: string
format: uuid
title: Alert Rule Id
description: The ID of the alert rule.
alert_rule_name:
type: string
title: Alert Rule Name
description: The name of the alert rule.
count:
type: integer
title: Count
description: The number of alerts in this group.
latest_timestamp:
type: string
format: date-time
title: Latest Timestamp
description: The timestamp of the newest alert in this group.
model_id:
type: string
format: uuid
title: Model Id
description: The model ID associated with this alert rule.
model_name:
type: string
title: Model Name
description: The name of the model associated with this alert rule.
bound:
$ref: '#/components/schemas/AlertBound'
description: The bound of the alert rule.
alerts:
items:
$ref: '#/components/schemas/Alert'
type: array
title: Alerts
description: The list of alerts in this group.
type: object
required:
- alert_rule_id
- alert_rule_name
- count
- latest_timestamp
- model_id
- model_name
- bound
- alerts
title: AlertGroup
BadRequestError:
properties:
detail:
type: string
title: Detail
default: Bad Request
type: object
title: BadRequestError
WebhookResult:
properties:
error:
anyOf:
- type: string
- type: 'null'
title: Error
response:
anyOf:
- $ref: '#/components/schemas/WebhookResponse'
- type: 'null'
type: object
required:
- error
- response
title: WebhookResult
Alert:
properties:
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: The description of the alert.
timestamp:
type: string
format: date-time
title: Timestamp
description: The timestamp of the alert.
value:
type: number
title: Value
description: The value of the metric that triggered the alert.
threshold:
type: number
title: Threshold
description: The threshold that triggered the alert.
bound:
$ref: '#/components/schemas/AlertBound'
description: The bound of the alert.
interval:
$ref: '#/components/schemas/AlertRuleInterval'
description: The interval of the alert rule, commonly '1 day', '1 hour', etc.
dimensions:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Dimensions
description: The dimensions of the alert.
alert_rule_id:
type: string
format: uuid
title: Alert Rule Id
description: The alert rule id of the alert.
job_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Job Id
description: The job id that triggered the alert.
created_at:
type: string
format: date-time
title: Created At
description: Time of record creation.
updated_at:
type: string
format: date-time
title: Updated At
description: Time of last record update.
id:
type: string
format: uuid
title: Id
description: The id of the alert.
model_id:
type: string
format: uuid
title: Model Id
description: The model id of the alert.
alert_rule_name:
type: string
title: Alert Rule Name
description: The name of the alert rule.
alert_rule_metric_name:
type: string
title: Alert Rule Metric Name
description: The name of the metric returned by the alert rule query.
is_duplicate_of:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Is Duplicate Of
description: The id of the alert this alert is a duplicate of, if any. Duplicate alerts will not be saved.
type: object
required:
- description
- timestamp
- value
- threshold
- bound
- interval
- dimensions
- alert_rule_id
- created_at
- updated_at
- id
- model_id
- alert_rule_name
- alert_rule_metric_name
title: Alert
Pagination:
properties:
page:
type: integer
title: Page
description: The current page number. Page 1 is the first page.
default: 1
page_size:
type: integer
title: Page Size
description: Number of records per page.
default: 20
total_pages:
type: integer
title: Total Pages
description: Total number of pages.
total_records:
type: integer
title: Total Records
description: Total number of records across all pages.
type: object
required:
- total_pages
- total_records
title: Pagination
PostAlertLogs:
properties:
logs:
items:
$ref: '#/components/schemas/PostAlertLog'
type: array
title: Logs
description: The list of alert rule evaluation logs to create.
type: object
required:
- logs
title: PostAlertLogs
PostAlert:
properties:
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: The description of the alert.
timestamp:
type: string
format: date-time
title: Timestamp
description: The timestamp of the alert.
value:
type: number
title: Value
description: The value of the metric that triggered the alert.
threshold:
type: number
title: Threshold
description: The threshold that triggered the alert.
bound:
$ref: '#/components/schemas/AlertBound'
description: The bound of the alert.
interval:
$ref: '#/components/schemas/AlertRuleInterval'
description: The interval of the alert rule, commonly '1 day', '1 hour', etc.
dimensions:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Dimensions
description: The dimensions of the alert.
alert_rule_id:
type: string
format: uuid
title: Alert Rule Id
description: The alert rule id of the alert.
job_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Job Id
description: The job id that triggered the alert.
type: object
required:
- description
- timestamp
- value
- threshold
- bound
- interval
- dimensions
- alert_rule_id
title: PostAlert
AlertRuleInterval:
properties:
unit:
$ref: '#/components/schemas/IntervalUnit'
description: 'Unit of time interval. Example: ''minutes''.'
count:
type: integer
title: Count
description: 'Number of units in the interval. Example: ''5''.'
type: object
required:
- unit
- count
title: AlertRuleInterval
AlertLogStatus:
type: string
enum:
- fired
- okay
- no_data
title: AlertLogStatus
AlertBound:
type: string
enum:
- upper_bound
- lower_bound
title: AlertBound
CreatedAlerts:
properties:
alerts:
items:
$ref: '#/components/schemas/Alert'
type: array
title: Alerts
description: The list of created alerts.
webhooks_called:
anyOf:
- items:
$ref: '#/components/schemas/AlertWebhookCalled'
type: array
- type: 'null'
title: Webhooks Called
description: The list of webhooks that were triggered by the alerts.
type: object
required:
- alerts
title: CreatedAlerts
PostAlerts:
properties:
alerts:
items:
$ref: '#/components/schemas/PostAlert'
type: array
minItems: 1
title: Alerts
descript
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/arthur-ai/refs/heads/main/openapi/arthur-ai-alerts-v1-api-openapi.yml