Cronitor · Schema

Cronitor Monitor

A Cronitor monitor object representing a cron job, heartbeat, uptime check, or site check.

MonitoringCron JobsScheduled TasksAlertingUptimeTelemetryStatus Pages

Properties

Name Type Description
key string Unique monitor identifier.
name string Human-readable display name.
type string Monitor type.
schedule string Cron, interval, or time expression.
schedules array Multiple schedule expressions.
timezone string IANA timezone string.
assertions array List of assertion expressions.
notify array Notification list keys or direct integration strings.
realert_interval string Follow-up alert timing string.
grace_seconds integer Pre-alert delay window in seconds.
failure_tolerance integer Consecutive failures tolerated before alerting.
consecutive_alert_threshold integer Number of failures required before an alert fires.
paused boolean Whether the monitor is currently paused.
url string URL to check for check/site monitors.
method string HTTP method for check monitors.
body string HTTP request body for check monitors.
headers object HTTP headers for check monitors.
timeout_seconds integer Request timeout in seconds for check monitors.
follow_redirects boolean Whether to follow HTTP redirects.
verify_ssl boolean Whether to verify SSL certificates.
tags array Tags for grouping and filtering monitors.
group string Group key this monitor belongs to.
env string Environment identifier.
created string ISO 8601 creation timestamp.
latest_event object Most recent telemetry event.
latest_issue objectnull Most recent issue object, or null.
View JSON Schema on GitHub

JSON Schema

cronitor-monitor-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/cronitor/json-schema/cronitor-monitor-schema.json",
  "title": "Cronitor Monitor",
  "description": "A Cronitor monitor object representing a cron job, heartbeat, uptime check, or site check.",
  "type": "object",
  "required": ["key", "type"],
  "properties": {
    "key": {
      "type": "string",
      "description": "Unique monitor identifier.",
      "example": "daily-backup-job"
    },
    "name": {
      "type": "string",
      "description": "Human-readable display name.",
      "example": "Daily Backup Job"
    },
    "type": {
      "type": "string",
      "enum": ["job", "check", "heartbeat", "site"],
      "description": "Monitor type."
    },
    "schedule": {
      "type": "string",
      "description": "Cron, interval, or time expression.",
      "example": "0 2 * * *"
    },
    "schedules": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Multiple schedule expressions."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone string.",
      "example": "America/New_York"
    },
    "assertions": {
      "type": "array",
      "items": { "type": "string" },
      "description": "List of assertion expressions.",
      "example": ["response_time < 2000", "status_code = 200"]
    },
    "notify": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Notification list keys or direct integration strings.",
      "example": ["devops-team", "email:[email protected]"]
    },
    "realert_interval": {
      "type": "string",
      "description": "Follow-up alert timing string.",
      "example": "1 hour"
    },
    "grace_seconds": {
      "type": "integer",
      "description": "Pre-alert delay window in seconds.",
      "minimum": 0,
      "example": 60
    },
    "failure_tolerance": {
      "type": "integer",
      "description": "Consecutive failures tolerated before alerting.",
      "minimum": 0,
      "example": 0
    },
    "consecutive_alert_threshold": {
      "type": "integer",
      "description": "Number of failures required before an alert fires.",
      "minimum": 1,
      "example": 1
    },
    "paused": {
      "type": "boolean",
      "description": "Whether the monitor is currently paused.",
      "example": false
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "URL to check for check/site monitors.",
      "example": "https://example.com/health"
    },
    "method": {
      "type": "string",
      "enum": ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "PATCH"],
      "description": "HTTP method for check monitors.",
      "example": "GET"
    },
    "body": {
      "type": "string",
      "description": "HTTP request body for check monitors."
    },
    "headers": {
      "type": "object",
      "additionalProperties": { "type": "string" },
      "description": "HTTP headers for check monitors."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 1,
      "maximum": 15,
      "description": "Request timeout in seconds for check monitors.",
      "example": 10
    },
    "follow_redirects": {
      "type": "boolean",
      "description": "Whether to follow HTTP redirects.",
      "example": true
    },
    "verify_ssl": {
      "type": "boolean",
      "description": "Whether to verify SSL certificates.",
      "example": true
    },
    "tags": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Tags for grouping and filtering monitors.",
      "example": ["production", "backend"]
    },
    "group": {
      "type": "string",
      "description": "Group key this monitor belongs to.",
      "example": "backend-jobs"
    },
    "env": {
      "type": "string",
      "description": "Environment identifier.",
      "example": "production"
    },
    "created": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "description": "ISO 8601 creation timestamp."
    },
    "latest_event": {
      "type": "object",
      "readOnly": true,
      "description": "Most recent telemetry event.",
      "properties": {
        "stamp": {
          "type": "integer",
          "description": "Unix timestamp of the last event."
        },
        "state": {
          "type": "string",
          "enum": ["run", "complete", "fail", "ok"],
          "description": "State of the last event."
        }
      }
    },
    "latest_issue": {
      "type": ["object", "null"],
      "readOnly": true,
      "description": "Most recent issue object, or null."
    }
  },
  "additionalProperties": false
}