> ## 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.

# Update Domain Monitor

> Update an existing domain expiration monitor

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier of the domain monitor to update
</ParamField>

## Request Body

All fields are optional.

<ParamField body="alert_days" type="number">
  Days before expiration to trigger alerts
</ParamField>

<ParamField body="enabled" type="boolean">
  Enable or disable the monitor
</ParamField>

<ParamField body="service_id" type="string">
  Link to a service, or `null` to unlink
</ParamField>

<ParamField body="notification_channels" type="array">
  Update notification channel IDs
</ParamField>

## Response

Returns the updated domain monitor object.

<RequestExample>
  ```bash cURL theme={null}
  curl -X PATCH "https://kodostatus.com/api/v1/domain-monitors/dom_abc123" \
    -H "X-API-Key: your_api_key" \
    -H "Content-Type: application/json" \
    -d '{
      "alert_days": 90,
      "enabled": true
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://kodostatus.com/api/v1/domain-monitors/dom_abc123', {
    method: 'PATCH',
    headers: {
      'X-API-Key': 'your_api_key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      alert_days: 90,
      enabled: true
    })
  });
  const domain_monitor = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "id": "dom_abc123",
    "domain": "example.com",
    "alert_days": 90,
    "enabled": true,
    "last_checked_at": "2024-01-15T10:30:00Z",
    "registration": {
      "registrar": "Cloudflare, Inc.",
      "expiry_date": "2025-01-15T00:00:00Z",
      "days_until_expiry": 365
    },
    "updated_at": "2024-01-15T11:00:00Z"
  }
  ```
</ResponseExample>
