---
name: "uptime_add_monitor"
area: "uptime"
title: "Watch a page"
price: "$0.50"
method: "POST"
url: "https://api.conecto.chat/v1/tools/uptime_add_monitor"
mcp_server: "https://api.conecto.chat/mcp/uptime"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/uptime/uptime_add_monitor"
---

# Watch a page (`uptime_add_monitor`)

Watches a page every 1, 5, 15 or 60 minutes; two failed checks in a row turn it down and alert the owner and the channels named.

Check a page every 1, 5, 15 or 60 minutes from our servers. It counts as down after two failed checks in a row (an error, no answer within 10 seconds, or missing expect_text) and up again on the first good one; each change alerts the notification channels you name and the owner by email. HTTPS certificates are watched too. $0.50 a month per monitor, renewed from the balance; the first month is this call, which also runs the first check.

Price: $0.50 a call. A call that fails costs nothing.

## Use it when

A page matters to the business: the shop, the checkout, the booking page.

## Say this to your agent

> Keep an eye on our online shop and tell us in Slack if it goes down.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `name` | string | yes | e.g. "Online shop". 1 to 80 characters. |  |  |
| `url` | string | yes | The https:// page to check. 8 to 2,000 characters, matches ^https://. |  |  |
| `interval_minutes` | integer | no |  | `1`, `5`, `15`, `60` | `5` |
| `expect_text` | string | no | Text the page must contain to count as up, e.g. "Add to cart". Up to 200 characters. |  |  |
| `notify_channels` | array of strings | no | Notification channels (notify_add_channel) to alert. Up to 10 items. |  |  |
| `email_alerts` | boolean | no | Also email the owner. |  | `true` |
| `public` | boolean | no | Show it on the status page. |  | `true` |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `uptime_add_monitor` on the MCP server `https://api.conecto.chat/mcp/uptime` with these arguments:

```json
{
  "name": "Online shop",
  "url": "https://shop.halversoncycle.example",
  "interval_minutes": 5,
  "expect_text": "Add to cart",
  "notify_channels": [
    "ops-alerts"
  ]
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/uptime_add_monitor \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Online shop", "url": "https://shop.halversoncycle.example", "interval_minutes": 5, "expect_text": "Add to cart", "notify_channels": ["ops-alerts"]}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "uptime_add_monitor",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.50",
  "balance_usd": "$19.75",
  "result": {
    "monitor": {
      "monitor_id": 4101,
      "name": "Online shop",
      "url": "https://shop.halversoncycle.example",
      "status": "up",
      "interval_minutes": 5,
      "expect_text": "Add to cart",
      "public": true,
      "notify_channels": [
        "ops-alerts"
      ],
      "email_alerts": true,
      "last_checked_at": "2026-10-14T08:00:00+00:00",
      "last_change_at": "2026-10-14T08:00:00+00:00",
      "last_status_code": 200,
      "last_response_ms": 182,
      "last_error": null,
      "certificate_expires_at": null,
      "uptime_24h": 100.0,
      "uptime_30d": 100.0
    },
    "first_check": {
      "ok": true,
      "status_code": 200,
      "response_ms": 182,
      "error": null
    },
    "rent": {
      "rental_id": 4101,
      "kind": "monitor",
      "label": "Uptime monitor: Online shop",
      "status": "active",
      "monthly_usd": "$0.50",
      "renews_at": "2026-11-14T08:00:00+00:00",
      "grace_until": null
    }
  }
}
```

`result`: monitor: its monitor_id, name, url, interval, status and uptime; first_check: whether it worked, the status code and the response time; rent: the monthly rental this call started; a note when the first check failed.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | A notification channel named is not saved. | Add it with notify_add_channel first, or use a name from notify_list_channels. |
| `invalid_url` | 400 | The address is not on the public internet. | Watch a public https:// page. |
| `limit_reached` | 409 | The business watches 50 pages already. | Remove one with uptime_remove_monitor. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [uptime_list_monitors](https://conecto.chat/tools/uptime/uptime_list_monitors.md): Every watched page: up, down or paused, its last check, and uptime over 24 hours and 30 days. Free up to 1,000,000 reads a month.
- [uptime_get_monitor](https://conecto.chat/tools/uptime/uptime_get_monitor.md): One watched page in full: 90 days of uptime, its average response time, the certificate's expiry and its incidents. Free up to 1,000,000 reads a month.
- [uptime_update_monitor](https://conecto.chat/tools/uptime/uptime_update_monitor.md): Changes what a monitor checks, how often and who is told, or pauses and resumes it. $0.001 a call.
- [uptime_remove_monitor](https://conecto.chat/tools/uptime/uptime_remove_monitor.md): Stops watching a page and ends its monthly rent; its history goes with it. Free.
- [uptime_setup_status_page](https://conecto.chat/tools/uptime/uptime_setup_status_page.md): A public status page at cncto.co/s/<name>: every public monitor, up or down now, 90 days of uptime and recent incidents. $0.001 a call.
