Monitor from your terminal. Automate it in CI.
Install the official UptimeRobot CLI and manage monitors, incidents, status pages, maintenance windows, and alert contacts from your shell, your CI pipeline, or the AI agent you already run.
From install to monitoring in 60 seconds.
# Install, log in, create a monitor, see it running. npm install --global @uptimerobot/cli uptimerobot auth login ? UptimeRobot API key ******************** Saved to your system keychain. uptimerobot monitors create http \ --name checkout-api \ --url https://checkout.example.com \ --interval 60 \ --timeout 30 uptimerobot monitors list ID STATUS NAME TYPE TARGET INTERVAL IN STATE TAGS 797054213 UP checkout-api HTTP https://checkout.example.com 1m 4m - 797054180 UP marketing-www HTTP https://example.com 5m 21d prod
Who is it for.
Terminal developers
You already have a shell open. Checking what's down, adding a monitor for the service you just shipped, or reading an incident stops costing you a trip to the browser.
CI and platform engineers
Monitoring becomes something you commit, not something someone remembers afterward. API key auth, real exit codes, and JSON output let a deploy job create its own checks and fail the build when it can't.
Developers running AI agents
Your agent gets structured output by default, help text with accepted values on every command, and guardrails that stop it deleting a monitor it only meant to read.
Technical highlights.
Generated from the spec
The command tree is built from UptimeRobot's published API v3 contract, not written by hand, so it moves when the API moves.
Output that fits the reader
Easy to read tables when you're interactive. Normalized JSON, JSONL, plain text, or the untouched API response when you're not.
Real exit codes
0 through 7, including a distinct code for a bulk job where some items failed. Branch on the code instead of parsing text.
Secrets stay out of your logs
Credential fields print as [REDACTED] in every output format, with a note on stderr naming what was hidden.
Writes you can check first
--dry-run validates locally with no key and no network call. --confirm gates every delete. Mutations never auto-retry.
Runs where you do
Linux, macOS, and Windows on Node.js 22.12 or newer. Installs with npm or pnpm. Apache 2.0, source on GitHub.
The whole API surface, as commands.
Generated from the OpenAPI spec, the command tree includes the full API v3 command set. Use over 70 commands across 11 groups:
- monitors, create, list, get, update, pause, start, delete, reset, plus bulk pause, start, and update
- monitors create, a dedicated command per type: http, keyword, ping, port, dns, udp, api, heartbeat, and visual-comparison
- monitors stats, uptime and response time, overall or by region
- incidents, list, get, alerts, activity log, and comments
- status-pages, including announcements, pin and unpin
- maintenance-windows, monitor-groups, alert-contacts, integrations, tags, user, and auth
Start with uptimerobot --help, then run --help again on any command group or command. Each level prints the required fields, accepted values, defaults, constraints, and examples straight from the API contract:
uptimerobot --help uptimerobot monitors --help uptimerobot monitors create --help uptimerobot monitors create keyword --help uptimerobot incidents comments create --help
Built for CI and automation.
The CLI automatically picks the best output format for the job. Run a command by hand and you get a readable table. Pipe it, redirect it, or run it in CI and you get normalized JSON. Same command, no flags needed.
uptimerobot monitors list # table uptimerobot monitors list | jq '.items[]' # JSON, automatically uptimerobot monitors list --format jsonl # one resource per line uptimerobot monitors list --format plain # tab separated, no headers uptimerobot monitors list --raw # the untouched API response
For CI, containers, and anywhere you don't want a stored credential, pass the key through the environment and skip the login step:
# .github/workflows/deploy.yml
- name: Monitor the new endpoint
env:
UPTIMEROBOT_API_KEY: ${{ secrets.UPTIMEROBOT_API_KEY }}
run: |
npx @uptimerobot/cli monitors create http \
--name "checkout-api (${{ github.ref_name }})" \
--url https://checkout.example.com \
--interval 60 \
--timeout 30 \
--json Exit codes are real, so your pipeline can branch on them instead of parsing text. 0 for success, 2 for invalid input, 4 for unauthenticated, 5 for forbidden, 6 for not found, 7 for rate limited, and 3 for a bulk operation where some items failed but others went through.
Credential-like fields in a response, such as an HTTP monitor's password, print as [REDACTED] in every output format, with a note on stderr identifying the hidden fields. Your CI logs stay clean by default.
Safe to run under an agent.
AI agents don't stop to read warnings, so the CLI includes built-in guardrails:
- Discovery is
-help. Every level of the tree describes itself, with required fields, accepted values, defaults, and constraints taken from the API contract, so an agent can work out what a command takes before it runs it. - Destructive commands stop and ask. Non-interactive processes, including AI agents, must pass
--confirmexplicitly, so a delete never happens by accident. -dry-runcompiles and validates a write without authenticating or touching your account, then prints the exact method, path, and body it would have sent.- Only GET and HEAD are retried. A POST that times out won’t silently create two monitors.
- Agents get JSON automatically, so there’s no table for them to misparse.
# Find out what exists and what it takes uptimerobot --help uptimerobot monitors create keyword --help # Validate the request locally, no API key, no network call uptimerobot monitors schema keyword uptimerobot monitors schema keyword --example uptimerobot monitors create http --body @monitor.json --dry-run # Explicit confirmation, the only way an agent can delete uptimerobot monitors delete 797054213 --confirm --json
Give your coding agent the UptimeRobot skills.
One command installs UptimeRobot's 24 AI skills into the coding agent you already use. You can pick which ones you want and where they go:
uptimerobot skills install
Your agent works from the real command contract. The CLI shows the exact external command, asks for confirmation before running it, and the skills are open source at github.com/uptimerobot/ai.
CLI, MCP, Terraform, or the API.
Four ways into the same account, each built for a different job. Many teams end up using more than one:
Surface | Reach for it when | What it looks like |
|---|---|---|
CLI | You want repeatability. A command you can script, commit, and run the same way every time, by hand or in a pipeline. |
|
You want conversation. You ask a question in plain language and your assistant answers from your account. | "Which monitors went down this week, and for how long?" | |
Your monitoring is part of a declared infrastructure state that gets planned, applied, and drift-checked with everything else. |
| |
You are building something of your own, in a language or a runtime the CLI does not fit into. |
|
See it in action.
Install, log in, create your first monitor, and see how the CLI behaves inside a script. Just six minutes from start to finish.
How to install.
- Check your Node version. The CLI needs Node.js 22.12 or newer. Run
node --version. - Install from npm.
npm install --global @uptimerobot/cli, then confirm it landed withuptimerobot --version. - Create an API key. Go to Integrations in your dashboard and create a Main API key. A read-only key works for listing and reading, but you need the main key to create, update, or delete anything.
- Log in.
uptimerobot auth loginprompts for the key with masked input and stores it in your macOS Keychain, Windows Credential Manager, or Linux keyring, so it never lands in your shell history. In CI, setUPTIMEROBOT_API_KEYinstead and skip this step. - Run something.
uptimerobot --helpto see what's there, thenuptimerobot monitors list.
This is the first step. Automatic setup and deeper agent integration are on the way.
Ready to install?
One command, and your monitoring is scriptable. The CLI is free, open source, and works with every UptimeRobot account, including our free plan.

Frequently asked questions.
Anything the UptimeRobot API v3 does. Create and manage monitors of all nine types, read and comment on incidents, pull uptime and response-time stats overall or by region, run status pages and their announcements, schedule maintenance windows, and manage monitor groups, alert contacts, integrations, and tags.
No. The CLI is free and open source, and it works with both free and paid UptimeRobot accounts. Your plan sets the limits it runs against, how many monitors you can have and how often they check. It does not change what the CLI can do. The free plan covers 50 monitors at 5-minute checks.
Linux, macOS, and Windows. It runs on Node.js 22.12 or newer, and installs with npm or pnpm.
In your operating system's secure credential store: macOS Keychain, Windows Credential Manager, or an available Linux keyring. The login prompt masks the key so it never enters your shell history. On minimal or headless Linux with no keyring available, it falls back to a file at ~/.config/uptimerobot/credentials.json with owner-only permissions.
Yes. Set UPTIMEROBOT_API_KEY in the environment and skip the login step entirely. The CLI resolves credentials from --api-key first, then the environment variable, then the stored key.
Yes, for reading. Listing monitors, pulling stats, and inspecting incidents all work with a read-only key. Creating, updating, or deleting needs a Main API key.
The same way you do, with --help. It works at every level of the tree, from uptimerobot --help down to a single command, and it prints the required fields, accepted values, defaults, and constraints from the API contract. For monitor creation there is also uptimerobot monitors schema <type>, and --example on top of it for a filled-in request body.
The command tree is generated from UptimeRobot's published OpenAPI contract rather than written by hand, so new API fields and endpoints come through the generator instead of waiting on a manual update.
MCP is for conversation, you ask your assistant a question in plain language and it answers from your account. The CLI is for repeatability, you write a command, commit it, and it runs the same way every time. Different jobs, and they work fine side by side.
Yes. It's built and maintained by UptimeRobot alongside the API, and it's open source under Apache 2.0 at github.com/uptimerobot/uptimerobot-cli. If you have been using a community-built wrapper, this is the one that tracks the API contract.
Open an issue at github.com/uptimerobot/uptimerobot-cli/issues, or email support@uptimerobot.com if you would rather not use GitHub. Either way, include the CLI version, the command, the output mode, and the error. Never include your API key.