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/oxide-computer-system-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: 3.2.0
info:
title: Oxide Region System/alerts API
description: API for interacting with the Oxide control plane
contact:
url: https://oxide.computer
email: api@oxide.computer
version: 2026081901.0.0
tags:
- name: system/alerts
description: Alerts deliver notifications for events that occur on the Oxide rack
externalDocs:
url: http://docs.oxide.computer/api/alerts
paths:
/v1/alert-classes:
get:
tags:
- system/alerts
summary: List alert classes
operationId: alert_class_list
parameters:
- in: query
name: limit
description: Maximum number of items returned by a single call
schema:
type:
- integer
- 'null'
format: uint32
minimum: 1
- in: query
name: page_token
description: Token returned by previous call to retrieve the subsequent page
schema:
type:
- string
- 'null'
- in: query
name: filter
description: 'An optional glob pattern for filtering alert class names.
If provided, only alert classes which match this glob pattern will be included in the response.'
schema:
$ref: '#/components/schemas/AlertSubscription'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertClassResultsPage'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
x-dropshot-pagination:
required: []
/v1/alert-receivers:
get:
tags:
- system/alerts
summary: List alert receivers
operationId: alert_receiver_list
parameters:
- in: query
name: limit
description: Maximum number of items returned by a single call
schema:
type:
- integer
- 'null'
format: uint32
minimum: 1
- in: query
name: page_token
description: Token returned by previous call to retrieve the subsequent page
schema:
type:
- string
- 'null'
- in: query
name: sort_by
schema:
$ref: '#/components/schemas/NameOrIdSortMode'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertReceiverResultsPage'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
x-dropshot-pagination:
required: []
/v1/alert-receivers/{receiver}:
get:
tags:
- system/alerts
summary: Fetch alert receiver
operationId: alert_receiver_view
parameters:
- in: path
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertReceiver'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
delete:
tags:
- system/alerts
summary: Delete alert receiver
operationId: alert_receiver_delete
parameters:
- in: path
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
responses:
'204':
description: successful deletion
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/alert-receivers/{receiver}/deliveries:
get:
tags:
- system/alerts
summary: List delivery attempts to alert receiver
description: Optional query parameters to this endpoint may be used to filter deliveries by state. If none of the `failed`, `pending` or `delivered` query parameters are present, all deliveries are returned. If one or more of these parameters are provided, only those which are set to "true" are included in the response.
operationId: alert_delivery_list
parameters:
- in: path
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
- in: query
name: delivered
description: 'If true, include deliveries which have succeeded.
If any of the "pending", "failed", or "delivered" query parameters are set to true, only deliveries matching those state(s) will be included in the response. If NO state filter parameters are set, then all deliveries are included.'
schema:
type:
- boolean
- 'null'
- in: query
name: failed
description: 'If true, include deliveries which have failed permanently.
If any of the "pending", "failed", or "delivered" query parameters are set to true, only deliveries matching those state(s) will be included in the response. If NO state filter parameters are set, then all deliveries are included.
A delivery fails permanently when the retry limit of three total attempts is reached without a successful delivery.'
schema:
type:
- boolean
- 'null'
- in: query
name: pending
description: 'If true, include deliveries which are currently in progress.
If any of the "pending", "failed", or "delivered" query parameters are set to true, only deliveries matching those state(s) will be included in the response. If NO state filter parameters are set, then all deliveries are included.
A delivery is considered "pending" if it has not yet been sent at all, or if a delivery attempt has failed but the delivery has retries remaining.'
schema:
type:
- boolean
- 'null'
- in: query
name: limit
description: Maximum number of items returned by a single call
schema:
type:
- integer
- 'null'
format: uint32
minimum: 1
- in: query
name: page_token
description: Token returned by previous call to retrieve the subsequent page
schema:
type:
- string
- 'null'
- in: query
name: sort_by
schema:
$ref: '#/components/schemas/TimeAndIdSortMode'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertDeliveryResultsPage'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
x-dropshot-pagination:
required: []
/v1/alert-receivers/{receiver}/probe:
post:
tags:
- system/alerts
summary: Send liveness probe to alert receiver
description: 'This endpoint synchronously sends a liveness probe to the selected alert receiver. The response message describes the outcome of the probe: either the successful response (as appropriate), or indication of why the probe failed.
The result of the probe is represented as an `AlertDelivery` model. Details relating to the status of the probe depend on the alert delivery mechanism, and are included in the `AlertDeliveryAttempts` model. For example, webhook receiver liveness probes include the HTTP status code returned by the receiver endpoint.
Note that the response status is `200 OK` as long as a probe request was able to be sent to the receiver endpoint. If an HTTP-based receiver, such as a webhook, responds to the another status code, including an error, this will be indicated by the response body, *not* the status of the response.
The `resend` query parameter can be used to request re-delivery of failed events if the liveness probe succeeds. If it is set to true and the liveness probe succeeds, any alerts for which delivery to this receiver has failed will be queued for re-delivery.'
operationId: alert_receiver_probe
parameters:
- in: path
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
- in: query
name: resend
description: If true, resend all events that have not been delivered successfully if the probe request succeeds.
schema:
type: boolean
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertProbeResult'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/alert-receivers/{receiver}/subscriptions:
post:
tags:
- system/alerts
summary: Add alert receiver subscription
operationId: alert_receiver_subscription_add
parameters:
- in: path
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AlertSubscriptionCreate'
required: true
responses:
'201':
description: successful creation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertSubscriptionCreated'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/alert-receivers/{receiver}/subscriptions/{subscription}:
delete:
tags:
- system/alerts
summary: Remove alert receiver subscription
operationId: alert_receiver_subscription_remove
parameters:
- in: path
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
- in: path
name: subscription
description: The event class subscription itself.
required: true
schema:
$ref: '#/components/schemas/AlertSubscription'
responses:
'204':
description: successful deletion
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/alerts:
get:
tags:
- system/alerts
summary: List alerts
description: Alerts may be filtered by alert class or alert class glob and by an inclusive creation time range.
operationId: alert_list
parameters:
- in: query
name: alert_class
description: 'Optional alert class or glob pattern used to filter alerts.
If this is included, only alerts with the specified class or matching the glob pattern (as appropriate) will be returned. Otherwise, alerts of all classes will be returned.
See the guide-level documentation on alerts for details on alert classes and alert class glob patterns.'
schema:
$ref: '#/components/schemas/AlertSubscription'
- in: query
name: end_time
description: 'Inclusive upper bound on the alert creation time
If this is included, only alerts created at or before this time will be returned.'
schema:
type:
- string
- 'null'
format: date-time
- in: query
name: limit
description: Maximum number of items returned by a single call
schema:
type:
- integer
- 'null'
format: uint32
minimum: 1
- in: query
name: page_token
description: Token returned by previous call to retrieve the subsequent page
schema:
type:
- string
- 'null'
- in: query
name: sort_by
schema:
$ref: '#/components/schemas/TimeAndIdSortMode'
- in: query
name: start_time
description: 'Inclusive lower bound on the alert creation time.
If this is included, only alerts created at or after this time will be returned.'
schema:
type:
- string
- 'null'
format: date-time
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertResultsPage'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
x-dropshot-pagination:
required: []
/v1/alerts/{alert_id}:
get:
tags:
- system/alerts
summary: Fetch alert
operationId: alert_view
parameters:
- in: path
name: alert_id
description: UUID of the alert
required: true
schema:
type: string
format: uuid
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Alert'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/alerts/{alert_id}/resend:
post:
tags:
- system/alerts
summary: Request re-delivery of alert
operationId: alert_delivery_resend
parameters:
- in: path
name: alert_id
description: UUID of the alert
required: true
schema:
type: string
format: uuid
- in: query
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
responses:
'201':
description: successful creation
content:
application/json:
schema:
$ref: '#/components/schemas/AlertDeliveryId'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/webhook-receivers:
post:
tags:
- system/alerts
summary: Create webhook receiver
operationId: webhook_receiver_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookCreate'
required: true
responses:
'201':
description: successful creation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookReceiver'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/webhook-receivers/{receiver}:
put:
tags:
- system/alerts
summary: Update webhook receiver
description: Note that receiver secrets are NOT added or removed using this endpoint. Instead, use the `/v1/webhooks/{secrets}/?receiver={receiver}` endpoint to add and remove secrets.
operationId: webhook_receiver_update
parameters:
- in: path
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookReceiverUpdate'
required: true
responses:
'204':
description: resource updated
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/webhook-secrets:
get:
tags:
- system/alerts
summary: List webhook receiver secret IDs
operationId: webhook_secrets_list
parameters:
- in: query
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSecrets'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
post:
tags:
- system/alerts
summary: Add secret to webhook receiver
operationId: webhook_secrets_add
parameters:
- in: query
name: receiver
description: The name or ID of the webhook receiver.
required: true
schema:
$ref: '#/components/schemas/NameOrId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSecretCreate'
required: true
responses:
'201':
description: successful creation
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookSecret'
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
/v1/webhook-secrets/{secret_id}:
delete:
tags:
- system/alerts
summary: Remove secret from webhook receiver
operationId: webhook_secrets_delete
parameters:
- in: path
name: secret_id
description: ID of the secret.
required: true
schema:
type: string
format: uuid
responses:
'204':
description: successful deletion
4XX:
$ref: '#/components/responses/Error'
5XX:
$ref: '#/components/responses/Error'
components:
schemas:
AlertSubscriptionCreated:
type: object
properties:
subscription:
description: The new subscription added to the receiver.
allOf:
- $ref: '#/components/schemas/AlertSubscription'
required:
- subscription
AlertReceiverResultsPage:
description: A single page of results
type: object
properties:
items:
description: list of items on this page of results
type: array
items:
$ref: '#/components/schemas/AlertReceiver'
next_page:
description: token used to fetch the next page of results (if any)
type:
- string
- 'null'
required:
- items
AlertDeliveryResultsPage:
description: A single page of results
type: object
properties:
items:
description: list of items on this page of results
type: array
items:
$ref: '#/components/schemas/AlertDelivery'
next_page:
description: token used to fetch the next page of results (if any)
type:
- string
- 'null'
required:
- items
WebhookDeliveryAttemptResult:
oneOf:
- description: The webhook event has been delivered successfully.
type: string
enum:
- succeeded
- description: A webhook request was sent to the endpoint, and it returned a HTTP error status code indicating an error.
type: string
enum:
- failed_http_error
- description: The webhook request could not be sent to the receiver endpoint.
type: string
enum:
- failed_unreachable
- description: A connection to the receiver endpoint was successfully established, but no response was received within the delivery timeout.
type: string
enum:
- failed_timeout
AlertSubscriptionCreate:
type: object
properties:
subscription:
description: The event class pattern to subscribe to.
allOf:
- $ref: '#/components/schemas/AlertSubscription'
required:
- subscription
NameOrIdSortMode:
description: Supported set of sort modes for scanning by name or id
oneOf:
- description: Sort in increasing order of "name"
type: string
enum:
- name_ascending
- description: Sort in decreasing order of "name"
type: string
enum:
- name_descending
- description: Sort in increasing order of "id"
type: string
enum:
- id_ascending
AlertReceiverKind:
description: The possible alert delivery mechanisms for an alert receiver.
oneOf:
- description: Webhook-specific alert receiver configuration.
type: object
properties:
endpoint:
description: The URL that webhook notification requests are sent to.
type: string
format: uri
kind:
type: string
enum:
- webhook
secrets:
description: A list containing the IDs of the secret keys used to sign payloads sent to this receiver.
type: array
items:
$ref: '#/components/schemas/WebhookSecret'
required:
- endpoint
- kind
- secrets
WebhookSecrets:
description: A list of the IDs of secrets associated with a webhook receiver.
type: object
properties:
secrets:
type: array
items:
$ref: '#/components/schemas/WebhookSecret'
required:
- secrets
WebhookSecret:
description: 'A view of a shared secret key assigned to a webhook receiver.
Once a secret is created, the value of the secret is not available in the API, as it must remain secret. Instead, secrets are referenced by their unique IDs assigned when they are created.'
type: object
properties:
id:
description: The public unique ID of the secret.
type: string
format: uuid
time_created:
description: The UTC timestamp at which this secret was created.
type: string
format: date-time
required:
- id
- time_created
AlertDelivery:
description: A delivery of a webhook event.
type: object
properties:
alert_class:
description: The event class.
type: string
alert_id:
description: The UUID of the event.
type: string
format: uuid
attempts:
description: Individual attempts to deliver this webhook event, and their outcomes.
allOf:
- $ref: '#/components/schemas/AlertDeliveryAttempts'
id:
description: The UUID of this delivery attempt.
type: string
format: uuid
receiver_id:
description: The UUID of the alert receiver that this event was delivered to.
type: string
format: uuid
state:
description: The state of this delivery.
allOf:
- $ref: '#/components/schemas/AlertDeliveryState'
time_started:
description: The time at which this delivery began (i.e. the event was dispatched to the receiver).
type: string
format: date-time
trigger:
description: Why this delivery was performed.
allOf:
- $ref: '#/components/schemas/AlertDeliveryTrigger'
required:
- alert_class
- alert_id
- attempts
- id
- receiver_id
- state
- time_started
- trigger
AlertClassResultsPage:
description: A single page of results
type: object
properties:
items:
description: list of items on this page of results
type: array
items:
$ref: '#/components/schemas/AlertClass'
next_page:
description: token used to fetch the next page of results (if any)
type:
- string
- 'null'
required:
- items
AlertResultsPage:
description: A single page of results
type: object
properties:
items:
description: list of items on this page of results
type: array
items:
$ref: '#/components/schemas/Alert'
next_page:
description: token used to fetch the next page of results (if any)
type:
- string
- 'null'
required:
- items
AlertDeliveryAttempts:
description: 'A list of attempts to deliver an alert to a receiver.
The type of the delivery attempt model depends on the receiver type, as it may contain information specific to that delivery mechanism. For example, webhook delivery attempts contain the HTTP status code of the webhook request.'
oneOf:
- description: A list of attempts to deliver an alert to a webhook receiver.
type: object
properties:
webhook:
type: array
items:
$ref: '#/components/schemas/WebhookDeliveryAttempt'
required:
- webhook
additionalProperties: false
WebhookCreate:
description: Create-time identity-related parameters
type: object
properties:
description:
type: string
endpoint:
description: The URL that webhook notification requests should be sent to
type: string
format: uri
name:
$ref: '#/components/schemas/Name'
secrets:
description: A non-empty list of secret keys used to sign webhook payloads.
type: array
items:
type: string
subscriptions:
description: 'A list of webhook event class subscriptions.
If this list is empty or is not included in the request body, the webhook will not be subscribed to any events.'
default: []
type: array
items:
$ref: '#/components/schemas/AlertSubscription'
required:
- description
- endpoint
- name
- secrets
Error:
description: Error information from a response.
type: object
properties:
error_code:
type: string
message:
type: string
request_id:
type: string
required:
- message
- request_id
AlertDeliveryState:
description: The state of a webhook delivery attempt.
oneOf:
- description: 'The webhook event has not yet been delivered successfully.
Either no delivery attempts have yet been performed, or the delivery has failed at least once but has retries remaining.'
type: string
enum:
- pending
- description: The webhook event has been delivered successfully.
type: string
enum:
- delivered
- description: The webhook delivery attempt has failed permanently and will not be retried again.
type: string
enum:
- failed
AlertDeliveryTrigger:
description: The reason an alert was delivered
oneOf:
- description: Delivery was triggered by the alert itself.
type: string
enum:
- alert
- description: Delivery was triggered by a request to resend the alert.
type: string
enum:
- resend
- description: This delivery is a liveness probe.
type: string
enum:
- probe
WebhookDeliveryResponse:
description: The response received from a webhook receiver endpoint.
type: object
properties:
duration_ms:
description: The response time of the webhook endpoint, in milliseconds.
type: integer
format: uint
minimum: 0
status:
description: The HTTP status code returned from the webhook endpoint.
type: integer
format: uint16
minimum: 0
required:
- duration_ms
- status
WebhookSecretCreate:
type: object
properties:
secret:
description: The value of the shared secret key.
type: string
required:
- secret
NameOrId:
oneOf:
- title: id
allOf:
- type: string
format: uuid
- title: name
allOf:
- $ref: '#/components/schemas/Name'
WebhookReceiverUpdate:
description: Parameters to update a webhook configuration.
type: object
properties:
description:
type:
- string
- 'null'
endpoint:
description: The URL that webhook notification requests should be sent to
type:
- string
- 'null'
format: uri
name:
allOf:
- $ref: '#/components/schemas/Name'
AlertDeliveryId:
type: object
properties:
delivery_id:
type: string
format: uuid
required:
- delivery_id
WebhookReceiver:
description: The configuration for a webhook alert receiver.
type: object
properties:
description:
description: Human-readable free-form text about a resource
type: string
endpoint:
description: The URL that webhook notification requests are sent to.
type: string
format: uri
id:
description: Unique, immutable, system-controlled identifier for each resource
type: string
format: uuid
name:
description: Unique, mutable, user-controlled identifier for each resource
allOf:
- $ref: '#/components/schemas/Name'
secrets:
description: A list containing the IDs of the secret keys used to sign payloads sent to this receiver.
type: array
items:
$ref: '#/components/schemas/WebhookSecret'
subscriptions:
description: The list of alert classes to which this receiver is subscribed.
type: array
items:
$ref: '#/components/schemas/AlertSubscription'
time_created:
description: Timestamp when this resource was created
type: string
format: date-time
time_modified:
description: Timestamp when this resource was last modified
type: string
format: date-time
required:
- description
- endpoint
- id
- name
- secrets
- subscriptions
- time_created
- time_modified
Name:
title: A name unique within the parent collection
description: Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They can be at most 63 characters long.
type: string
pattern: ^(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)^[a-z]([a-zA-Z0-9-]*[a-zA-Z0-9]+)?$
minLength: 1
maxLength: 63
AlertSubscription:
title: A webhook event class subscription
description: A webhook event class subscription matches either a single event class exactly, or a glob pattern including wildcards that may match multiple event classes
type: string
pattern: ^([a-zA-Z0-9_]+|\*|\*\*)(\.([a-zA-Z0-9_]+|\*|\*\*))*$
AlertClass:
description: An alert class.
type: object
properties:
description:
description: A description of what this alert class represents.
type: string
name:
description: The name of the alert class.
type: string
required:
- description
- name
WebhookDeliveryAttempt:
description: 'An individual delivery attempt for a webhook event.
This represents a single HTTP request that was sent to the receiver, and its outcome.'
type: object
properties:
attempt:
description: The attempt number.
type: integer
format: uint
minimum: 0
response:
allOf:
- $ref: '#/components/schemas/WebhookDeliveryResponse'
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oxide-computer/refs/heads/main/openapi/oxide-computer-system-alerts-api-openapi.yml