monit-rs Alerts API

Manage alert channels.

Operations 15

GET /api/v1/alerts/channels List alert channels #
POST /api/v1/alerts/channels Create an alert channel #
DELETE /api/v1/alerts/channels/{channel_id} Delete an alert channel #
PATCH /api/v1/alerts/channels/{channel_id} Partially update an alert channel #
GET /api/v1/escalation/policies List escalation policies #
POST /api/v1/escalation/policies Create an escalation policy #
DELETE /api/v1/escalation/policies/{policy_id} Delete an escalation policy #
GET /api/v1/escalation/status Escalation status #
GET /api/v1/alerts/readiness Alert Readiness #
GET /api/v1/alerts/deliveries List Alert Deliveries #
POST /api/v1/alerts/deliveries/{regression_id}/retry Retry Alert Delivery #
GET /api/v1/alerts/notifications List Notification Deliveries #
POST /api/v1/alerts/notifications/{job_id}/retry Retry Notification Delivery #
POST /api/v1/alerts/channels/{channel_id}/test Test Alert Channel #
GET /api/v1/alerts/history List Alert History #

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/monit-rs:monit-rs-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

monit-rs-alerts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Monit Rs Alerts API
  version: 2026.08.30
  contact:
    name: monit.rs support
    url: https://monit.rs/contact
    email: support@monit.rs
  license:
    name: Data licensed for direct reuse; see terms
    url: https://monit.rs/terms
  termsOfService: https://monit.rs/terms
  x-logo:
    url: https://monit.rs/logo.png
    backgroundColor: '#0f172a'
    altText: monit.rs
  x-origin:
  - url: https://monit.rs/openapi.yaml
    format: openapi
    version: '3.1'
  x-providerName: monit.rs
  description: 'Operations tagged alerts across 2 of this provider''s published API definitions: api.monit.rs-openapi.json, monit-rs-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://monit.rs
  description: Production
tags:
- name: Alerts
  description: Manage alert channels.
paths:
  /api/v1/alerts/channels:
    get:
      tags:
      - Alerts
      summary: List alert channels
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - read:alerts
      responses:
        '200':
          description: List of channels (Slack/Discord/PagerDuty/etc.).
      operationId: getApiV1AlertsChannels
      x-operation-id-source: derived
    post:
      tags:
      - Alerts
      summary: Create an alert channel
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - write:alerts
      parameters:
      - $ref: '#/components/parameters/IdempotencyKeyHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - channel_type
              - config
              properties:
                channel_type:
                  type: string
                  enum:
                  - email
                  - slack
                  - discord
                  - teams
                  - pagerduty
                  - webhook
                config:
                  type: object
                min_severity:
                  type: string
                  enum:
                  - critical
                  - high
                  - medium
                  - low
                  - info
      responses:
        '201':
          description: Created.
        '401':
          description: Not authenticated.
        '403':
          description: Missing write:alerts scope.
        '409':
          description: Idempotency-Key reused with different body.
        '422':
          description: Validation error.
        '429':
          description: Rate limit exceeded.
      operationId: postApiV1AlertsChannels
      x-operation-id-source: derived
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/channels/{channel_id}:
    delete:
      tags:
      - Alerts
      summary: Delete an alert channel
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - write:alerts
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Deleted.
        '404':
          description: Not found.
      operationId: deleteApiV1AlertsChannelsByChannelId
      x-operation-id-source: derived
    patch:
      tags:
      - Alerts
      summary: Partially update an alert channel
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - write:alerts
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                config:
                  type: object
                is_active:
                  type: boolean
                min_severity:
                  type: string
                  enum:
                  - critical
                  - high
                  - medium
                  - low
                  - info
              additionalProperties: false
      responses:
        '200':
          description: The updated channel.
        '400':
          description: Deactivating a channel still used by an active escalation policy.
        '404':
          description: Alert channel not found.
      operationId: patchApiV1AlertsChannelsByChannelId
      x-operation-id-source: derived
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/escalation/policies:
    get:
      tags:
      - Alerts
      summary: List escalation policies
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - read:alerts
      responses:
        '200':
          description: List of policies.
      operationId: getApiV1EscalationPolicies
      x-operation-id-source: derived
    post:
      tags:
      - Alerts
      summary: Create an escalation policy
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - write:escalation
      parameters:
      - $ref: '#/components/parameters/IdempotencyKeyHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
      responses:
        '201':
          description: Created.
        '401':
          description: Not authenticated.
        '403':
          description: Missing write:escalation scope.
        '409':
          description: Idempotency-Key reused with different body.
        '422':
          description: Validation error.
        '429':
          description: Rate limit exceeded.
      operationId: postApiV1EscalationPolicies
      x-operation-id-source: derived
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/escalation/policies/{policy_id}:
    delete:
      tags:
      - Alerts
      summary: Delete an escalation policy
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - write:escalation
      parameters:
      - name: policy_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: Deleted.
        '401':
          description: Not authenticated.
        '403':
          description: Missing write:escalation scope.
        '404':
          description: Not found.
        '429':
          description: Rate limit exceeded.
      operationId: deleteApiV1EscalationPoliciesByPolicyId
      x-operation-id-source: derived
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/escalation/status:
    get:
      tags:
      - Alerts
      summary: Escalation status
      security:
      - ApiKeyBearer: []
      - BearerJwt: []
      x-scopes:
      - read:alerts
      responses:
        '200':
          description: Current escalation state.
      operationId: getApiV1EscalationStatus
      x-operation-id-source: derived
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/readiness:
    get:
      summary: Alert Readiness
      operationId: alert_readiness_api_v1_alerts_readiness_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertReadinessResponse'
        '401':
          description: Missing or invalid bearer credentials.
        '403':
          description: Missing required alert scope.
        '429':
          description: Rate limit exceeded.
      security:
      - ApiKeyBearer: []
      tags:
      - Alerts
      x-scopes:
      - read:alerts
      description: Reports missing_destination, alerts_disabled, untested, or ready. Ready means instant alerts are enabled and at least one active channel passed a test since its last change. Other channels may remain untested. Severity filters and notification rules still apply. Test acceptance does not confirm inbox delivery.
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/deliveries:
    get:
      summary: List Alert Deliveries
      operationId: list_alert_deliveries_api_v1_alerts_deliveries_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AlertDeliveryJobResponse'
                type: array
                title: Response List Alert Deliveries Api V1 Alerts Deliveries Get
        '401':
          description: Missing or invalid bearer credentials.
        '403':
          description: Missing required alert scope.
        '429':
          description: Rate limit exceeded.
      security:
      - ApiKeyBearer: []
      tags:
      - Alerts
      x-scopes:
      - read:alerts
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/deliveries/{regression_id}/retry:
    post:
      summary: Retry Alert Delivery
      operationId: retry_alert_delivery_api_v1_alerts_deliveries__regression_id__retry_post
      security:
      - ApiKeyBearer: []
      parameters:
      - name: regression_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Regression Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertDeliveryJobResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer credentials.
        '403':
          description: Missing required alert scope.
        '429':
          description: Rate limit exceeded.
      tags:
      - Alerts
      x-scopes:
      - write:alerts
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/notifications:
    get:
      summary: List Notification Deliveries
      operationId: list_notification_deliveries_api_v1_alerts_notifications_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/NotificationDeliveryJobResponse'
                type: array
                title: Response List Notification Deliveries Api V1 Alerts Notifications Get
        '401':
          description: Missing or invalid bearer credentials.
        '403':
          description: Missing required alert scope.
        '429':
          description: Rate limit exceeded.
      security:
      - ApiKeyBearer: []
      tags:
      - Alerts
      x-scopes:
      - read:alerts
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/notifications/{job_id}/retry:
    post:
      summary: Retry Notification Delivery
      operationId: retry_notification_delivery_api_v1_alerts_notifications__job_id__retry_post
      security:
      - ApiKeyBearer: []
      parameters:
      - name: job_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Job Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationDeliveryJobResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer credentials.
        '403':
          description: Missing required alert scope.
        '429':
          description: Rate limit exceeded.
      tags:
      - Alerts
      x-scopes:
      - write:alerts
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/channels/{channel_id}/test:
    post:
      summary: Test Alert Channel
      operationId: test_alert_channel_api_v1_alerts_channels__channel_id__test_post
      security:
      - ApiKeyBearer: []
      parameters:
      - name: channel_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Channel Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertChannelTestResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer credentials.
        '403':
          description: Missing required alert scope.
        '429':
          description: Rate limit exceeded.
        '404':
          description: Channel not found for this account.
        '409':
          description: Channel is inactive.
        '502':
          description: Provider did not accept the test alert.
      tags:
      - Alerts
      x-scopes:
      - write:alerts
      description: Requires write:alerts. Sends a test to an active channel owned by the account. Success means provider acceptance, not confirmed inbox receipt. Successful tests update /alerts/readiness; they do not create incident history.
    servers:
    - url: https://monit.rs
      description: Production
  /api/v1/alerts/history:
    get:
      summary: List Alert History
      operationId: list_alert_history_api_v1_alerts_history_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/AlertHistoryResponse'
                type: array
                title: Response List Alert History Api V1 Alerts History Get
        '401':
          description: Missing or invalid bearer credentials.
        '403':
          description: Missing required alert scope.
        '429':
          description: Rate limit exceeded.
      security:
      - ApiKeyBearer: []
      tags:
      - Alerts
      x-scopes:
      - read:alerts
    servers:
    - url: https://monit.rs
      description: Production
components:
  schemas:
    AlertHistoryResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        alert_channel_id:
          type: string
          format: uuid
          title: Alert Channel Id
        regression_id:
          type: string
          format: uuid
          title: Regression Id
        incident_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Incident Id
        alert_type:
          type: string
          title: Alert Type
          default: regression_detected
        status:
          type: string
          title: Status
        attempts:
          type: integer
          title: Attempts
        sent_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Sent At
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - alert_channel_id
      - regression_id
      - status
      - attempts
      - sent_at
      - created_at
      title: AlertHistoryResponse
    AlertReadinessResponse:
      properties:
        status:
          type: string
          enum:
          - missing_destination
          - alerts_disabled
          - untested
          - ready
          title: Status
        active_channel_count:
          type: integer
          title: Active Channel Count
        instant_alerts_enabled:
          type: boolean
          title: Instant Alerts Enabled
        recovery_alerts_enabled:
          type: boolean
          title: Recovery Alerts Enabled
        last_test_accepted_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Test Accepted At
      type: object
      required:
      - status
      - active_channel_count
      - instant_alerts_enabled
      - recovery_alerts_enabled
      - last_test_accepted_at
      title: AlertReadinessResponse
    AlertDeliveryJobResponse:
      properties:
        regression_id:
          type: string
          format: uuid
          title: Regression Id
        status:
          type: string
          title: Status
        attempts:
          type: integer
          title: Attempts
        next_attempt_at:
          type: string
          format: date-time
          title: Next Attempt At
        last_error:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Error
        created_at:
          type: string
          format: date-time
          title: Created At
        completed_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Completed At
      type: object
      required:
      - regression_id
      - status
      - attempts
      - next_attempt_at
      - last_error
      - created_at
      - completed_at
      title: AlertDeliveryJobResponse
    NotificationDeliveryJobResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        kind:
          type: string
          title: Kind
        incident_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Incident Id
        status:
          type: string
          title: Status
        attempts:
          type: integer
          title: Attempts
        next_attempt_at:
          type: string
          format: date-time
          title: Next Attempt At
        last_error:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Error
        created_at:
          type: string
          format: date-time
          title: Created At
        completed_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Completed At
      type: object
      required:
      - id
      - kind
      - incident_id
      - status
      - attempts
      - next_attempt_at
      - last_error
      - created_at
      - completed_at
      title: NotificationDeliveryJobResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    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
    AlertChannelTestResponse:
      properties:
        status:
          type: string
          title: Status
        message:
          type: string
          title: Message
      type: object
      required:
      - status
      - message
      title: AlertChannelTestResponse
  parameters:
    IdempotencyKeyHeader:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
        maxLength: 255
      description: Optional. Same key + same body replays cached response for 24h; same key + different body returns 409.
  securitySchemes:
    ApiKeyBearer:
      type: http
      scheme: bearer
      bearerFormat: mrs_live_*
      description: monit.rs API key (mrs_live_ prefix). Get one at https://monit.rs/settings?tab=api-keys after signing in.
    BearerJwt:
      type: http
      scheme: bearer
      description: Bearer JWT token for authenticated user sessions.
externalDocs:
  description: Full public site + browsable changelog
  url: https://monit.rs/changelog
x-refined-from:
- api.monit.rs-openapi.json
- monit-rs-openapi.json