{"openapi":"3.1.0","info":{"title":"Vigil API","description":"Uptime, API checks with assertions, cron heartbeats, SSL expiry, website change detection and status pages.\n\nAuthenticate with `Authorization: Bearer <api key>` (find your key under Settings). API access requires a paid plan.\n\nAlert integration recipes: [Spike.sh](/docs/spike) (webhook body template with `\"source\": \"vigil\"`), [Apprise](/docs/apprise) (send Apprise notifications into alert ingestion), [MCP server](/docs/mcp), [OpenTelemetry](/docs/otel).","version":"1.0.0"},"paths":{"/api/v1/license/activate":{"post":{"tags":["licensing"],"summary":"Self-hosted installation: register with its claim key and poll for approval","operationId":"activate_api_v1_license_activate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/license/refresh":{"post":{"tags":["licensing"],"summary":"Self-hosted instance: fetch a renewed key when the subscription is active","operationId":"refresh_api_v1_license_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/agent/pull":{"post":{"tags":["private locations"],"summary":"Agent: fetch due monitors for this location","operationId":"agent_pull_api_v1_agent_pull_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}},{"name":"x-agent-host","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agent-Host"}},{"name":"x-agent-version","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agent-Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/report":{"post":{"tags":["private locations"],"summary":"Agent: report results","operationId":"agent_report_api_v1_agent_report_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentReport"},"title":"Results"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/servers/report":{"post":{"tags":["servers"],"summary":"Agent: submit one metrics sample","operationId":"report_api_v1_servers_report_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/servers/report/batch":{"post":{"tags":["servers"],"summary":"Agent: submit queued samples after an outage","operationId":"report_batch_api_v1_servers_report_batch_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/servers/list":{"get":{"tags":["servers"],"summary":"List servers with latest metrics","operationId":"api_servers_api_v1_servers_list_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ping/{token}":{"get":{"tags":["heartbeats"],"summary":"Heartbeat ping (job succeeded)","operationId":"ping_ping__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["heartbeats"],"summary":"Heartbeat ping (job succeeded)","operationId":"ping_ping__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["heartbeats"],"summary":"Heartbeat ping (job succeeded)","operationId":"ping_ping__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ping/{token}/start":{"get":{"tags":["heartbeats"],"summary":"Heartbeat ping (job started)","operationId":"ping_start_ping__token__start_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["heartbeats"],"summary":"Heartbeat ping (job started)","operationId":"ping_start_ping__token__start_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["heartbeats"],"summary":"Heartbeat ping (job started)","operationId":"ping_start_ping__token__start_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ping/{token}/log":{"get":{"tags":["heartbeats"],"summary":"Heartbeat log entry (no state change)","operationId":"ping_log_ping__token__log_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["heartbeats"],"summary":"Heartbeat log entry (no state change)","operationId":"ping_log_ping__token__log_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["heartbeats"],"summary":"Heartbeat log entry (no state change)","operationId":"ping_log_ping__token__log_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ping/{token}/fail":{"get":{"tags":["heartbeats"],"summary":"Heartbeat ping (job failed)","operationId":"ping_fail_ping__token__fail_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["heartbeats"],"summary":"Heartbeat ping (job failed)","operationId":"ping_fail_ping__token__fail_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["heartbeats"],"summary":"Heartbeat ping (job failed)","operationId":"ping_fail_ping__token__fail_get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ping/{token}/{exit_code}":{"get":{"tags":["heartbeats"],"summary":"Heartbeat ping with exit code (0 = ok)","operationId":"ping_exit_ping__token___exit_code__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"exit_code","in":"path","required":true,"schema":{"type":"string","title":"Exit Code"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["heartbeats"],"summary":"Heartbeat ping with exit code (0 = ok)","operationId":"ping_exit_ping__token___exit_code__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"exit_code","in":"path","required":true,"schema":{"type":"string","title":"Exit Code"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"head":{"tags":["heartbeats"],"summary":"Heartbeat ping with exit code (0 = ok)","operationId":"ping_exit_ping__token___exit_code__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"exit_code","in":"path","required":true,"schema":{"type":"string","title":"Exit Code"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/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"}}}}}},"put":{"tags":["resources"],"summary":"Replace a monitor's configuration (config-file keys)","operationId":"put_monitor_api_v1_monitors__monitor_id__put","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":{}}}},"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"}}}}}}},"/api/v1/config":{"get":{"tags":["config"],"summary":"Export monitors as code","description":"**Monitors as code.** Returns every monitor in the workspace as a desired-state document you can commit to git:\n\n```yaml\nversion: 1\nchannels: [{name: Ops Telegram, kind: telegram}]   # names only, no secrets\nmonitors:\n  - {name: Marketing site, mode: uptime, url: https://example.com, interval_minutes: 5, channels: [Ops Telegram], ...}\n```\n\nEach monitor lists the fields relevant to its mode (see `GET /api/v1/config/example` for a commented file). Feed the\ndocument back with `PUT /api/v1/config` to apply changes. Requires a Business or Enterprise plan.","operationId":"export_config_api_v1_config_get","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(yaml|json)$","default":"yaml","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/x-yaml":{},"application/json":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["config"],"summary":"Apply a monitors-as-code file (desired state)","description":"**Monitors as code.** Send the YAML (`Content-Type: application/x-yaml`) or JSON (`application/json`) document from\n`GET /api/v1/config`, edited to the state you want. Monitors are matched by `name`:\n\n* missing monitors are **created**,\n* existing monitors get the fields present in the file **updated** (keys you leave out are untouched),\n* with `?prune=1`, monitors not in the file are **deleted** (channels are never deleted),\n* `?dry_run=1` returns the plan without writing.\n\nEvery entry is validated first (same rules as the UI: plan limits, URL policy, cron syntax, assertion syntax, channel\nnames). If anything fails the response is `422` with `errors: [{name, error}]` and **nothing is applied**.\n\nResponse: `{\"created\": [...], \"updated\": [...], \"deleted\": [...], \"unchanged\": [...], \"errors\": [...], \"dry_run\": bool}`.\nRequires a Business or Enterprise plan. Ideal for CI: run with `dry_run=1` on pull requests, apply on merge.","operationId":"apply_config_api_v1_config_put","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","description":"Validate and report the plan without writing anything","default":false,"title":"Dry Run"},"description":"Validate and report the plan without writing anything"},{"name":"prune","in":"query","required":false,"schema":{"type":"boolean","description":"Delete monitors that are not listed in the file","default":false,"title":"Prune"},"description":"Delete monitors that are not listed in the file"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/config/example":{"get":{"tags":["config"],"summary":"Commented example config file","description":"A commented YAML file showing every monitor mode and its fields. Save it as `monitors.yml`, edit, and apply with\n`PUT /api/v1/config`.","operationId":"example_config_api_v1_config_example_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/v1/monitors/{monitor_id}/config":{"get":{"tags":["resources"],"summary":"Monitor as a config entry (what PUT accepts), with ids","operationId":"monitor_config_api_v1_monitors__monitor_id__config_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/config":{"post":{"tags":["resources"],"summary":"Create a monitor from a config entry (channel_ids or channel names)","operationId":"create_monitor_config_api_v1_monitors_config_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"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/channels":{"get":{"tags":["resources"],"summary":"List channels","operationId":"list_channels_api_v1_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["resources"],"summary":"Create a channel","operationId":"create_channel_api_v1_channels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelIn"}}},"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/channels/{channel_id}":{"get":{"tags":["resources"],"summary":"Get a channel","operationId":"get_channel_api_v1_channels__channel_id__get","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["resources"],"summary":"Replace a channel","operationId":"put_channel_api_v1_channels__channel_id__put","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["resources"],"summary":"Delete a channel","operationId":"delete_channel_api_v1_channels__channel_id__delete","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/status-pages":{"get":{"tags":["resources"],"summary":"List status pages","operationId":"list_pages_api_v1_status_pages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["resources"],"summary":"Create a status page","operationId":"create_page_api_v1_status_pages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusPageIn"}}},"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/status-pages/{page_id}":{"get":{"tags":["resources"],"summary":"Get a status page","operationId":"get_page_api_v1_status_pages__page_id__get","parameters":[{"name":"page_id","in":"path","required":true,"schema":{"type":"integer","title":"Page Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["resources"],"summary":"Replace a status page","operationId":"put_page_api_v1_status_pages__page_id__put","parameters":[{"name":"page_id","in":"path","required":true,"schema":{"type":"integer","title":"Page Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusPageIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["resources"],"summary":"Delete a status page","operationId":"delete_page_api_v1_status_pages__page_id__delete","parameters":[{"name":"page_id","in":"path","required":true,"schema":{"type":"integer","title":"Page Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/servers":{"get":{"tags":["resources"],"summary":"List servers (configuration view)","operationId":"list_servers_api_v1_servers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["resources"],"summary":"Register a server; the response carries the agent token (shown once)","operationId":"create_server_api_v1_servers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerIn"}}},"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/servers/{server_id}":{"get":{"tags":["resources"],"summary":"Get a server (configuration view)","operationId":"get_server_api_v1_servers__server_id__get","parameters":[{"name":"server_id","in":"path","required":true,"schema":{"type":"integer","title":"Server Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["resources"],"summary":"Update a server's name, tags, rules, channels","operationId":"put_server_api_v1_servers__server_id__put","parameters":[{"name":"server_id","in":"path","required":true,"schema":{"type":"integer","title":"Server Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["resources"],"summary":"Delete a server and its history","operationId":"delete_server_api_v1_servers__server_id__delete","parameters":[{"name":"server_id","in":"path","required":true,"schema":{"type":"integer","title":"Server Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/snmp":{"post":{"tags":["private locations"],"summary":"Agent: report SNMP poll results","operationId":"agent_snmp_api_v1_agent_snmp_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients":{"post":{"tags":["Partner API"],"summary":"Create a client workspace (idempotent on external_id)","operationId":"create_client_api_v1_partner_clients_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Partner API"],"summary":"List client workspaces with usage","operationId":"list_clients_api_v1_partner_clients_get","parameters":[{"name":"external_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}":{"get":{"tags":["Partner API"],"summary":"One client workspace","operationId":"get_client_api_v1_partner_clients__client_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"integer","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Partner API"],"summary":"Rename, suspend or unsuspend a client","operationId":"patch_client_api_v1_partner_clients__client_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"integer","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Partner API"],"summary":"Delete a client and everything in it","operationId":"delete_client_api_v1_partner_clients__client_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"integer","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/clients/{client_id}/login-link":{"post":{"tags":["Partner API"],"summary":"One-time 5-minute login URL into the client workspace","operationId":"login_link_api_v1_partner_clients__client_id__login_link_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"integer","title":"Client Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/LoginLinkIn"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/usage":{"get":{"tags":["Partner API"],"summary":"Partner totals against the plan's caps","operationId":"usage_api_v1_partner_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AgentReport":{"properties":{"id":{"type":"integer","title":"Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"error_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Kind"},"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status"},"latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency Ms"},"dns_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Dns Ms"},"ttfb_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ttfb Ms"},"headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Headers","default":{}},"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"final_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Final Url"}},"type":"object","required":["id"],"title":"AgentReport"},"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"},"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"},"ChannelIn":{"properties":{"kind":{"type":"string","maxLength":32,"title":"Kind"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Name"},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}}},"type":"object","required":["kind"],"title":"ChannelIn"},"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"},"ClientIn":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"Shown in the partner's client list and inside the workspace"},"external_id":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"External Id","description":"Your id for this client (e.g. WHMCS service id). Unique per partner; creating twice returns the same client."},"contact_email":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Contact Email","description":"Client contact; login links log this person in as a client admin"}},"type":"object","required":["name"],"title":"ClientIn"},"ClientPatch":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name"},"suspended":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Suspended","description":"true pauses every monitor and server and blocks logins; false restores"},"contact_email":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Contact Email"}},"type":"object","title":"ClientPatch"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"},"LoginLinkIn":{"properties":{"contact_email":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Contact Email","description":"Overrides the client's stored contact for this link"}},"type":"object","title":"LoginLinkIn"},"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"},"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"},"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"},"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}},"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"},"ServerIn":{"properties":{"name":{"type":"string","maxLength":120,"title":"Name"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"rules":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rules","description":"alert rule overrides (same keys as the Alert rules tab); omitted keys keep defaults"},"channel_ids":{"items":{"type":"integer"},"type":"array","title":"Channel Ids","default":[]},"team_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Team Id"}},"type":"object","required":["name"],"title":"ServerIn"},"StatusPageIn":{"properties":{"title":{"type":"string","maxLength":120,"title":"Title"},"slug":{"type":"string","maxLength":64,"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"monitor_ids":{"items":{"type":"integer"},"type":"array","title":"Monitor Ids","default":[]},"groups":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Groups","default":[]},"custom_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Domain"},"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Support Url"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"visibility":{"type":"string","pattern":"^(members|password|public|hidden)$","title":"Visibility","default":"members"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"hide_branding":{"type":"boolean","title":"Hide Branding","default":false},"show_latency":{"type":"boolean","title":"Show Latency","default":true},"custom_css":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Css"},"team_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Team Id"}},"type":"object","required":["title","slug"],"title":"StatusPageIn"},"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"}}}}