Monitor
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Monitor id."
},
"name": {
"type": "string",
"description": "Monitor name."
},
"paused": {
"type": "boolean",
"description": "True when delivery is paused for all trackers in this monitor. New alerts are not queued, and queued email delivery checks the pause state again before sending. Use PATCH /v1/trackers/{id} with paused: true to pause one tracker."
},
"notify_emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "Configured email recipients. External recipients must confirm before delivery. Free includes one additional recipient per monitor."
},
"email_recipients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"role": {
"type": "string",
"enum": [
"owner",
"member",
"external"
],
"description": "owner: the address of the account the monitor belongs to. member: a teammate in that account. external: anyone else, who must confirm first."
},
"user_id": {
"type": [
"string",
"null"
],
"description": "The Arcmira user behind an owner or member address. Null for external recipients."
},
"status": {
"type": "string",
"enum": [
"active",
"pending",
"unsubscribed",
"suppressed",
"removed",
"owner_unverified",
"plan_limited"
]
},
"invitation_status": {
"type": "string",
"enum": [
"sent",
"failed",
"limited",
"pending"
]
}
},
"required": [
"email",
"role",
"user_id",
"status"
]
},
"description": "Every address the monitor reaches, with consent and invitation state. An account is not required to accept."
},
"notify_frequency": {
"type": "string",
"default": "realtime",
"description": "Delivery cadence. Values: realtime (deliver immediately), hourly (hourly digest), daily (daily digest)."
},
"digest_day": {
"type": "string",
"default": "monday",
"description": "Day of week for digest delivery."
},
"digest_time": {
"type": "string",
"default": "09:00",
"description": "Time of day (HH:MM) for digest delivery."
},
"notify_webhook": {
"type": "boolean",
"description": "True when webhook delivery is enabled."
},
"webhook_url": {
"type": [
"string",
"null"
],
"description": "Webhook destination URL. Null when no webhook is configured."
},
"webhook_secret_set": {
"type": "boolean",
"description": "True when a webhook signing secret exists for this monitor. The secret itself is never returned on reads; enablement and rotation responses support recovery with the original Idempotency-Key during the valid recovery window."
},
"webhook_secret_hint": {
"type": [
"string",
"null"
],
"description": "Last 4 characters of the current signing secret, for identifying which secret you hold. Null until a secret exists."
},
"webhook_failures": {
"type": "integer",
"default": 0,
"description": "Consecutive webhook delivery failures recorded for this monitor. Reset by a secret rotation or PATCHing notify_webhook: true; 10 consecutive failures auto-disable a webhook."
},
"webhook_disabled_at": {
"type": [
"string",
"null"
],
"description": "When the webhook was auto-disabled after repeated failures. Null while delivery is enabled. Re-enable by PATCHing notify_webhook: true; rotation alone never re-enables."
},
"webhook_disabled_reason": {
"type": [
"string",
"null"
],
"description": "Why the webhook was auto-disabled. Null while delivery is enabled."
},
"notify_slack": {
"type": "boolean",
"description": "True when Slack delivery is enabled."
},
"slack_integration_id": {
"type": [
"string",
"null"
],
"description": "Slack integration used for delivery. Null when Slack is not configured."
},
"slack_channel_id": {
"type": [
"string",
"null"
],
"description": "Slack channel to deliver to. Null when Slack is not configured."
},
"created_at": {
"type": "string",
"description": "When the monitor was created."
},
"updated_at": {
"type": "string",
"description": "When the monitor was last updated."
},
"access": {
"type": "string",
"enum": [
"account",
"member"
],
"description": "account: the caller owns the account the monitor belongs to, or is an admin in it. member: the caller is a member of that team account, who may edit the monitor and its webhook but may not delete it."
}
},
"required": [
"id",
"name",
"paused",
"notify_emails",
"notify_webhook",
"webhook_disabled_at",
"webhook_disabled_reason",
"notify_slack",
"slack_integration_id",
"slack_channel_id",
"created_at",
"updated_at",
"access"
]
}