> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kodostatus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Uptime Monitors

> Monitor your HTTP endpoints and automatically update service status

Uptime monitors check your endpoints at regular intervals and can automatically update your status page when issues are detected.

## How It Works

1. Kodo sends HTTP requests to your endpoint at the configured interval
2. We check for successful responses (2xx status codes by default)
3. If checks fail, the linked service status is updated
4. You receive alerts via your configured notification channels

## Creating a Monitor

<Tabs>
  <Tab title="Dashboard">
    1. Go to **Dashboard > Uptime**
    2. Click **Add Monitor**
    3. Enter the URL to monitor
    4. Configure check interval and alerting
    5. Optionally link to a service
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    kodo monitors create \
      --name "API Health Check" \
      --url "https://api.example.com/health" \
      --interval 300 \
      --service "API Gateway"
    ```
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    curl -X POST "https://kodostatus.com/api/v1/uptime-monitors" \
      -H "X-API-Key: your_api_key" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "API Health Check",
        "url": "https://api.example.com/health",
        "interval_seconds": 300,
        "service_id": "svc_abc123"
      }'
    ```
  </Tab>
</Tabs>

## Check Intervals

| Interval   | Best For                                   |
| ---------- | ------------------------------------------ |
| 60 seconds | Critical services requiring fast detection |
| 5 minutes  | Standard monitoring                        |
| 15 minutes | Less critical services                     |
| 30 minutes | Low-priority endpoints                     |

## Monitor Settings

<ParamField body="url" type="string" required>
  The endpoint to monitor (must be HTTPS)
</ParamField>

<ParamField body="expected_status_code" type="integer" default="200">
  Expected HTTP status code
</ParamField>

<ParamField body="timeout_ms" type="integer" default="30000">
  Request timeout in milliseconds
</ParamField>

<ParamField body="follow_redirects" type="boolean" default="true">
  Whether to follow HTTP redirects
</ParamField>

<ParamField body="headers" type="object">
  Custom headers to include in requests
</ParamField>

## Monitoring Regions

Checks are performed from multiple regions to avoid false positives:

* US East (Virginia)
* US West (Oregon)
* Europe (Frankfurt)
* Asia Pacific (Singapore)

An endpoint is only marked as down if checks fail from multiple regions.

## Incident Safeguards

When a monitor detects failures, Kodo doesn't immediately create an incident. Instead, it passes through safeguards to prevent false alarms:

| Setting               | Default      | Purpose                                        |
| --------------------- | ------------ | ---------------------------------------------- |
| **Failure threshold** | 3            | Must fail this many times consecutively        |
| **Cooldown**          | 15 minutes   | Minimum gap between auto-incidents             |
| **Severity override** | Auto (Major) | Override severity for this monitor's incidents |

Configure these in the **Incident Safeguards** section when creating or editing a monitor.

Auto-created incidents also respect your organization's [draft mode and notification batching](/automation/incident-safeguards) settings.

<Card title="Full Safeguards Reference" icon="shield" href="/automation/incident-safeguards">
  Flap protection, draft mode, cooldowns, maintenance awareness, and more.
</Card>

## Automatic Status Updates

When linked to a service, monitors can automatically update status:

| Monitor Status           | Service Status |
| ------------------------ | -------------- |
| Up                       | Operational    |
| Degraded (slow response) | Degraded       |
| Down                     | Major Outage   |

## Response Time Tracking

We track response times for all checks:

* Average response time
* 95th percentile
* Slowest responses
* Response time trends

View these metrics in the dashboard or query via API.
