Site24x7 Monitors API

Create, retrieve, update, and delete monitors of all types

OpenAPI Specification

site24x7-monitors-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Site24x7 REST Alarms Monitors API
  description: The Site24x7 REST API (v2.0) enables programmatic access to all monitoring operations including creating and managing monitors for websites, servers, cloud resources, APIs, and databases; configuring alert thresholds, notification profiles, and on-call schedules; scheduling maintenance windows; retrieving availability, performance, and SLA reports; managing IT automation actions; and administering users, groups, and third-party integrations. Authentication uses OAuth 2.0 via the Zoho Developer Console.
  version: '2.0'
  contact:
    name: Site24x7 Support
    url: https://www.site24x7.com/contact.html
  termsOfService: https://www.site24x7.com/terms.html
  license:
    name: Site24x7 Terms of Service
    url: https://www.site24x7.com/terms.html
servers:
- url: https://www.site24x7.com/api
  description: US data center
- url: https://www.site24x7.eu/api
  description: EU data center
- url: https://www.site24x7.in/api
  description: India data center
- url: https://www.site24x7.net.au/api
  description: Australia data center
- url: https://app.site24x7.jp/api
  description: Japan data center
- url: https://www.site24x7.ca/api
  description: Canada data center
- url: https://app.site24x7.uk/api
  description: UK data center
- url: https://app.site24x7.ae/api
  description: UAE data center
- url: https://www.site24x7.sa/api
  description: Saudi Arabia data center
security:
- ZohoOAuth: []
tags:
- name: Monitors
  description: Create, retrieve, update, and delete monitors of all types
paths:
  /monitors:
    get:
      operationId: listMonitors
      tags:
      - Monitors
      summary: List all monitors
      description: Retrieve a list of all monitors configured in the account.
      parameters:
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: List of monitors returned successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/MonitorListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createMonitor
      tags:
      - Monitors
      summary: Create a monitor
      description: Create a new monitor. The monitor type is determined by the `type` field in the request body.
      parameters:
      - $ref: '#/components/parameters/ApiVersionHeader'
      requestBody:
        required: true
        content:
          application/json;version=2.0:
            schema:
              $ref: '#/components/schemas/MonitorCreate'
      responses:
        '200':
          description: Monitor created successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/MonitorResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /monitors/{monitor_id}:
    get:
      operationId: getMonitor
      tags:
      - Monitors
      summary: Get a monitor
      description: Retrieve the configuration and details of a specific monitor by its ID.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor details returned successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/MonitorResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateMonitor
      tags:
      - Monitors
      summary: Update a monitor
      description: Modify the configuration of an existing monitor.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      requestBody:
        required: true
        content:
          application/json;version=2.0:
            schema:
              $ref: '#/components/schemas/MonitorCreate'
      responses:
        '200':
          description: Monitor updated successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/MonitorResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteMonitor
      tags:
      - Monitors
      summary: Delete a monitor
      description: Permanently remove a monitor from the account.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor deleted successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /monitors/name/{display_name}:
    get:
      operationId: getMonitorByName
      tags:
      - Monitors
      summary: Get a monitor by name
      description: Retrieve monitor details using the monitor's display name.
      parameters:
      - name: display_name
        in: path
        required: true
        schema:
          type: string
        description: Display name of the monitor
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor returned successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/MonitorResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteMonitorByName
      tags:
      - Monitors
      summary: Delete a monitor by name
      description: Remove a monitor using its display name.
      parameters:
      - name: display_name
        in: path
        required: true
        schema:
          type: string
        description: Display name of the monitor
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor deleted successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /monitors/{monitor_id}/activate:
    put:
      operationId: activateMonitor
      tags:
      - Monitors
      summary: Activate a monitor
      description: Re-enable a previously suspended monitor.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor activated successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /monitors/{monitor_id}/suspend:
    put:
      operationId: suspendMonitor
      tags:
      - Monitors
      summary: Suspend a monitor
      description: Pause monitoring operations for a specific monitor.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor suspended successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /monitors/{monitor_id}/poll:
    post:
      operationId: pollMonitor
      tags:
      - Monitors
      summary: Poll a monitor immediately
      description: Initiate an immediate check for a specific monitor.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Poll initiated successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /monitors/{monitor_id}/polling_status:
    get:
      operationId: getMonitorPollingStatus
      tags:
      - Monitors
      summary: Get polling status
      description: Retrieve the current polling status for a specific monitor.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Polling status returned successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /monitors/{monitor_id}/mute:
    put:
      operationId: muteMonitor
      tags:
      - Monitors
      summary: Mute a monitor
      description: Silence alert notifications for a specific monitor.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor muted successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /monitors/{monitor_id}/unmute:
    put:
      operationId: unmuteMonitor
      tags:
      - Monitors
      summary: Unmute a monitor
      description: Resume alert notifications for a previously muted monitor.
      parameters:
      - $ref: '#/components/parameters/MonitorId'
      - $ref: '#/components/parameters/ApiVersionHeader'
      responses:
        '200':
          description: Monitor unmuted successfully
          content:
            application/json;version=2.0:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    MonitorId:
      name: monitor_id
      in: path
      required: true
      schema:
        type: string
      description: Unique monitor identifier
    ApiVersionHeader:
      name: Accept
      in: header
      required: false
      schema:
        type: string
        default: application/json; version=2.0
      description: API version header. Defaults to version 2.0.
  responses:
    Unauthorized:
      description: Authentication failed or token is missing
      content:
        application/json;version=2.0:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid request parameters or body
      content:
        application/json;version=2.0:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The requested resource was not found
      content:
        application/json;version=2.0:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          description: Response code (0 = success)
          example: 0
        message:
          type: string
          description: Response message
          example: success
      required:
      - code
      - message
    Monitor:
      type: object
      properties:
        monitor_id:
          type: string
          description: Unique identifier for the monitor
        display_name:
          type: string
          description: Human-readable name of the monitor
        type:
          type: string
          description: Monitor type (e.g., URL, SERVER, SSL_CERT, REST_API)
          example: URL
        website:
          type: string
          format: uri
          description: URL being monitored (for website monitors)
        check_frequency:
          type: integer
          description: Check interval in minutes
          example: 5
        location_profile_id:
          type: string
          description: ID of the location profile used for checks
        notification_profile_id:
          type: string
          description: ID of the notification profile
        threshold_profile_id:
          type: string
          description: ID of the threshold profile
        monitor_groups:
          type: array
          items:
            type: string
          description: List of monitor group IDs this monitor belongs to
        tag_ids:
          type: array
          items:
            type: string
          description: List of tag IDs associated with this monitor
        status:
          type: integer
          description: Current status (0=Down, 1=Up, 2=Trouble, 3=Critical, 5=Suspended, 7=Maintenance)
          enum:
          - 0
          - 1
          - 2
          - 3
          - 5
          - 7
        created_time:
          type: string
          format: date-time
          description: Timestamp when the monitor was created
        last_polled_time:
          type: string
          format: date-time
          description: Timestamp of the last polling check
    MonitorResponse:
      allOf:
      - $ref: '#/components/schemas/ApiResponse'
      - type: object
        properties:
          data:
            $ref: '#/components/schemas/Monitor'
    MonitorListResponse:
      allOf:
      - $ref: '#/components/schemas/ApiResponse'
      - type: object
        properties:
          data:
            type: array
            items:
              $ref: '#/components/schemas/Monitor'
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        message:
          type: string
          description: Error description
        error_info:
          type: string
          description: Additional error details
    MonitorCreate:
      type: object
      required:
      - display_name
      - type
      properties:
        display_name:
          type: string
          description: Human-readable name for the monitor
          example: My Website Monitor
        type:
          type: string
          description: Monitor type identifier
          example: URL
        website:
          type: string
          format: uri
          description: URL to monitor (for website/API monitors)
          example: https://example.com
        check_frequency:
          type: integer
          description: Polling interval in minutes
          default: 5
          example: 5
        location_profile_id:
          type: string
          description: ID of the location profile for check locations
        notification_profile_id:
          type: string
          description: ID of the notification profile for alerts
        threshold_profile_id:
          type: string
          description: ID of the threshold profile for alerting criteria
        monitor_groups:
          type: array
          items:
            type: string
          description: Monitor group IDs to assign this monitor to
        tag_ids:
          type: array
          items:
            type: string
          description: Tag IDs to associate with this monitor
        timeout:
          type: integer
          description: Request timeout in seconds
          default: 10
  securitySchemes:
    ZohoOAuth:
      type: http
      scheme: bearer
      bearerFormat: Zoho-oauthtoken
      description: 'OAuth 2.0 token obtained from the Zoho Developer Console. Pass as `Authorization: Zoho-oauthtoken {access_token}`.'
externalDocs:
  description: Site24x7 API Documentation
  url: https://www.site24x7.com/help/api/