puzaricloud-in Monitors API

The monitors API from puzaricloud-in — 14 operation(s) for monitors.

Operations 17

GET /api/v1/me Who am I #
GET /api/v1/monitors List monitors #
POST /api/v1/monitors Create a monitor #
GET /api/v1/monitors/{monitor_id} Get a monitor #
PATCH /api/v1/monitors/{monitor_id} Pause/resume, rename, retag or mute a monitor #
DELETE /api/v1/monitors/{monitor_id} Delete a monitor #
POST /api/v1/monitors/{monitor_id}/check Run a check right now #
GET /api/v1/monitors/{monitor_id}/checks Check history #
GET /api/v1/monitors/{monitor_id}/snapshot Latest extracted text #
GET /api/v1/monitors/{monitor_id}/security Latest security scan #
GET /api/v1/alerts Recent alerts #
GET /api/v1/incidents Incidents (open by default) #
POST /api/v1/incidents/{incident_id}/ack Acknowledge an incident (pauses repeats and escalation) #
POST /api/v1/annotations Add a deploy marker to response-time charts #
POST /api/v1/maintenance Schedule a maintenance window #
DELETE /api/v1/maintenance/{window_id} Delete a maintenance window #
GET /api/v1/report Uptime report for the last N days (7, 30 or 90) #

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/puzaricloud-in:puzaricloud-in-monitors-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

puzaricloud-in-monitors-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vigil Monitors API
  description: 'Uptime, API checks with assertions, cron heartbeats, SSL expiry, website change detection and status pages.


    Authenticate with `Authorization: Bearer ` (find your key under Settings). API access requires a paid plan.


    Alert integration recipes: Spike.sh (webhook body template with `"source": "vigil"`), Apprise (send Apprise notifications into alert ingestion), MCP server, OpenTelemetry.'
  version: 1.0.0
tags:
- name: Monitors
paths:
  /api/v1/me:
    get:
      tags:
      - Monitors
      summary: Who am I
      operationId: me_api_v1_me_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /api/v1/monitors:
    get:
      tags:
      - Monitors
      summary: List monitors
      operationId: list_monitors_api_v1_monitors_get
      parameters:
      - name: tag
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Tag
      - name: mode
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Mode
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MonitorOut'
                title: Response List Monitors Api V1 Monitors Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Monitors
      summary: Create a monitor
      operationId: create_monitor_api_v1_monitors_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MonitorIn'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/monitors/{monitor_id}:
    get:
      tags:
      - Monitors
      summary: Get a monitor
      operationId: get_monitor_api_v1_monitors__monitor_id__get
      parameters:
      - name: monitor_id
        in: path
        required: true
        schema:
          type: integer
          title: Monitor Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - Monitors
      summary: Pause/resume, rename, retag or mute a monitor
      operationId: patch_monitor_api_v1_monitors__monitor_id__patch
      parameters:
      - name: monitor_id
        in: path
        required: true
        schema:
          type: integer
          title: Monitor Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              title: Body
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Monitors
      summary: Delete a monitor
      operationId: delete_monitor_api_v1_monitors__monitor_id__delete
      parameters:
      - name: monitor_id
        in: path
        required: true
        schema:
          type: integer
          title: Monitor Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/monitors/{monitor_id}/check:
    post:
      tags:
      - Monitors
      summary: Run a check right now
      operationId: check_now_api_v1_monitors__monitor_id__check_post
      parameters:
      - name: monitor_id
        in: path
        required: true
        schema:
          type: integer
          title: Monitor Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/monitors/{monitor_id}/checks:
    get:
      tags:
      - Monitors
      summary: Check history
      operationId: list_checks_api_v1_monitors__monitor_id__checks_get
      parameters:
      - name: monitor_id
        in: path
        required: true
        schema:
          type: integer
          title: Monitor Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CheckOut'
                title: Response List Checks Api V1 Monitors  Monitor Id  Checks Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/monitors/{monitor_id}/snapshot:
    get:
      tags:
      - Monitors
      summary: Latest extracted text
      operationId: snapshot_api_v1_monitors__monitor_id__snapshot_get
      parameters:
      - name: monitor_id
        in: path
        required: true
        schema:
          type: integer
          title: Monitor Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/monitors/{monitor_id}/security:
    get:
      tags:
      - Monitors
      summary: Latest security scan
      operationId: security_scan_api_v1_monitors__monitor_id__security_get
      parameters:
      - name: monitor_id
        in: path
        required: true
        schema:
          type: integer
          title: Monitor Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/alerts:
    get:
      tags:
      - Monitors
      summary: Recent alerts
      operationId: list_alerts_api_v1_alerts_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AlertOut'
                title: Response List Alerts Api V1 Alerts Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/incidents:
    get:
      tags:
      - Monitors
      summary: Incidents (open by default)
      operationId: list_incidents_api_v1_incidents_get
      parameters:
      - name: all
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: All
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 50
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IncidentOut'
                title: Response List Incidents Api V1 Incidents Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/incidents/{incident_id}/ack:
    post:
      tags:
      - Monitors
      summary: Acknowledge an incident (pauses repeats and escalation)
      operationId: ack_incident_api_v1_incidents__incident_id__ack_post
      parameters:
      - name: incident_id
        in: path
        required: true
        schema:
          type: integer
          title: Incident Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncidentOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/annotations:
    post:
      tags:
      - Monitors
      summary: Add a deploy marker to response-time charts
      operationId: add_annotation_api_v1_annotations_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnnotationIn'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/maintenance:
    post:
      tags:
      - Monitors
      summary: Schedule a maintenance window
      operationId: add_maintenance_api_v1_maintenance_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceIn'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/maintenance/{window_id}:
    delete:
      tags:
      - Monitors
      summary: Delete a maintenance window
      operationId: delete_maintenance_api_v1_maintenance__window_id__delete
      parameters:
      - name: window_id
        in: path
        required: true
        schema:
          type: integer
          title: Window Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/report:
    get:
      tags:
      - Monitors
      summary: Uptime report for the last N days (7, 30 or 90)
      operationId: report_api_v1_report_get
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          default: 7
          title: Days
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CheckOut:
      properties:
        id:
          type: integer
          title: Id
        created_at:
          type: string
          format: date-time
          title: Created At
        ok:
          type: boolean
          title: Ok
        changed:
          type: boolean
          title: Changed
        location:
          anyOf:
          - type: string
          - type: 'null'
          title: Location
        status_code:
          anyOf:
          - type: integer
          - type: 'null'
          title: Status Code
        latency_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Latency Ms
        duration_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Duration Ms
        value:
          anyOf:
          - type: number
          - type: 'null'
          title: Value
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        error_kind:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Kind
        diff:
          anyOf:
          - type: string
          - type: 'null'
          title: Diff
        assertion_results:
          anyOf:
          - items: {}
            type: array
          - type: 'null'
          title: Assertion Results
        evidence:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Evidence
        detail:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Detail
      type: object
      required:
      - id
      - created_at
      - ok
      - changed
      - status_code
      - latency_ms
      - duration_ms
      - value
      - error
      - error_kind
      - diff
      - assertion_results
      - evidence
      - detail
      title: CheckOut
    IncidentOut:
      properties:
        id:
          type: integer
          title: Id
        monitor_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Monitor Id
        kind:
          type: string
          title: Kind
        title:
          type: string
          title: Title
        status:
          type: string
          title: Status
        started_at:
          type: string
          format: date-time
          title: Started At
        resolved_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Resolved At
        acknowledged_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Acknowledged At
        acknowledged_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Acknowledged By
        duration_seconds:
          type: integer
          title: Duration Seconds
      type: object
      required:
      - id
      - monitor_id
      - kind
      - title
      - status
      - started_at
      - resolved_at
      - acknowledged_at
      - acknowledged_by
      - duration_seconds
      title: IncidentOut
    AlertOut:
      properties:
        id:
          type: integer
          title: Id
        monitor_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Monitor Id
        server_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Server Id
        created_at:
          type: string
          format: date-time
          title: Created At
        kind:
          type: string
          title: Kind
        title:
          type: string
          title: Title
        body:
          type: string
          title: Body
      type: object
      required:
      - id
      - monitor_id
      - created_at
      - kind
      - title
      - body
      title: AlertOut
    MonitorIn:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Name
        url:
          anyOf:
          - type: string
          - type: 'null'
          title: Url
          description: URL; host:port for tcp; domain for domain; provider slug or status URL for dependency; not used for heartbeat/flow
        mode:
          type: string
          pattern: ^(text|price|keyword|uptime|api|heartbeat|flow|tcp|domain|health|dependency)$
          title: Mode
          default: uptime
        selector:
          anyOf:
          - type: string
            maxLength: 500
          - type: 'null'
          title: Selector
        keyword:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Keyword
        keyword_rule:
          type: string
          pattern: ^(appears|disappears)$
          title: Keyword Rule
          default: appears
        price_rule:
          type: string
          pattern: ^(any|below|above|pct)$
          title: Price Rule
          default: any
        price_threshold:
          anyOf:
          - type: number
          - type: 'null'
          title: Price Threshold
        interval_minutes:
          type: integer
          title: Interval Minutes
          default: 5
        channel_ids:
          items:
            type: integer
          type: array
          title: Channel Ids
          default: []
        escalation_channel_ids:
          items:
            type: integer
          type: array
          title: Escalation Channel Ids
          default: []
        escalation_minutes:
          type: integer
          title: Escalation Minutes
          default: 0
        tags:
          items:
            type: string
          type: array
          title: Tags
          default: []
        method:
          type: string
          pattern: ^(GET|POST|PUT|PATCH|DELETE|HEAD)$
          title: Method
          default: GET
        headers:
          additionalProperties:
            type: string
          type: object
          title: Headers
          default: {}
        body:
          anyOf:
          - type: string
          - type: 'null'
          title: Body
        expect_status:
          type: string
          title: Expect Status
          default: 2xx
        assertions:
          anyOf:
          - type: string
          - type: 'null'
          title: Assertions
          description: 'One rule per line: contains X | json a.b == 1 | header content-type contains json'
        max_latency_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Latency Ms
        ssl_alert_days:
          type: integer
          title: Ssl Alert Days
          default: 14
        security_alerts:
          type: boolean
          title: Security Alerts
          default: false
        confirm_retry:
          type: boolean
          title: Confirm Retry
          default: true
        period_minutes:
          type: integer
          title: Period Minutes
          description: 'heartbeat: expected ping period'
          default: 60
        grace_minutes:
          type: integer
          title: Grace Minutes
          description: 'heartbeat: allowed lateness'
          default: 10
        schedule_cron:
          anyOf:
          - type: string
          - type: 'null'
          title: Schedule Cron
          description: 'heartbeat: cron expression instead of a period'
        schedule_tz:
          type: string
          title: Schedule Tz
          default: UTC
        max_duration_minutes:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Duration Minutes
        hb_value_min:
          anyOf:
          - type: number
          - type: 'null'
          title: Hb Value Min
          description: 'heartbeat: alert when a success ping''s ?value= is below this'
        hb_value_max:
          anyOf:
          - type: number
          - type: 'null'
          title: Hb Value Max
          description: 'heartbeat: alert when a success ping''s ?value= is above this'
        repeat_alert_minutes:
          type: integer
          title: Repeat Alert Minutes
          default: 0
        steps:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Steps
          description: 'flow: list of steps {name, method, url, headers, body, expect_status, assertions, extract}'
        domain_alert_days:
          type: integer
          title: Domain Alert Days
          default: 30
        dns_watch:
          items:
            type: string
          type: array
          title: Dns Watch
          default: []
        health_secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Health Secret
        agent_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Agent Id
          description: private location id (Pro+)
        slo_target:
          anyOf:
          - type: number
          - type: 'null'
          title: Slo Target
          description: e.g. 99.9
        anomaly_alerts:
          type: boolean
          title: Anomaly Alerts
          default: false
      type: object
      title: MonitorIn
    MaintenanceIn:
      properties:
        name:
          type: string
          maxLength: 200
          title: Name
        starts_at:
          type: string
          format: date-time
          title: Starts At
        ends_at:
          type: string
          format: date-time
          title: Ends At
        monitor_ids:
          items:
            type: integer
          type: array
          title: Monitor Ids
          default: []
        repeat:
          type: string
          pattern: ^(none|daily|weekly)$
          title: Repeat
          default: none
      type: object
      required:
      - name
      - starts_at
      - ends_at
      title: MaintenanceIn
    AnnotationIn:
      properties:
        text:
          type: string
          maxLength: 200
          title: Text
        monitor_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Monitor Id
          description: omit to mark every monitor's chart
        at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: At
      type: object
      required:
      - text
      title: AnnotationIn
    MonitorOut:
      properties:
        id:
          type: integer
          title: Id
        name:
          type: string
          title: Name
        url:
          type: string
          title: Url
        mode:
          type: string
          title: Mode
        tags:
          items: {}
          type: array
          title: Tags
        selector:
          anyOf:
          - type: string
          - type: 'null'
          title: Selector
        keyword:
          anyOf:
          - type: string
          - type: 'null'
          title: Keyword
        interval_minutes:
          type: integer
          title: Interval Minutes
        active:
          type: boolean
          title: Active
        is_up:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Up
        last_checked_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Checked At
        last_changed_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Changed At
        last_status_code:
          anyOf:
          - type: integer
          - type: 'null'
          title: Last Status Code
        last_latency_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Last Latency Ms
        last_value:
          anyOf:
          - type: number
          - type: 'null'
          title: Last Value
        last_error:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Error
        change_count:
          type: integer
          title: Change Count
        ping_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Ping Url
        ssl_expires_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Ssl Expires At
        domain_expires_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Domain Expires At
        security_grade:
          anyOf:
          - type: string
          - type: 'null'
          title: Security Grade
        last_indicator:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Indicator
        agent_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Agent Id
        slo_target:
          anyOf:
          - type: number
          - type: 'null'
          title: Slo Target
        anomaly_alerts:
          type: boolean
          title: Anomaly Alerts
          default: false
        hb_value_min:
          anyOf:
          - type: number
          - type: 'null'
          title: Hb Value Min
        hb_value_max:
          anyOf:
          - type: number
          - type: 'null'
          title: Hb Value Max
      type: object
      required:
      - id
      - name
      - url
      - mode
      - tags
      - selector
      - keyword
      - interval_minutes
      - active
      - is_up
      - last_checked_at
      - last_changed_at
      - last_status_code
      - last_latency_ms
      - last_value
      - last_error
      - change_count
      title: MonitorOut
    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