utr is a CLI tool for UptimeRobot to help manage monitors, maintenance windows, alert contacts and status pages in a stateful way either by using a YAML file or by command line actions.
- 
Retrieve Account Information:
Display account details including monitor counts, SMS credits, and rate limits. - 
Manage Monitors:
List, create, update, and delete monitors. Automatically convert human-friendly monitor definitions into the required UptimeRobot API format. - 
Manage Maintenance Windows (MWindows):
List, create, update, or delete maintenance windows based on your YAML definitions. - 
Manage Alert Contacts:
Retrieve and update alert contacts. (Note: Creating/updating alert contacts is limited by the API.) - 
Command-line and YAML Support:
Use the tool directly from the command line for quick actions or maintain a YAML file to keep your configuration stateful and version-controlled. - 
Flexible Output Formats:
Output data in eitheryamlor a human-friendly table format, with an option for extended reporting. 
- 
Python 3:
Ensure you have Python 3 installed on your system. - 
UptimeRobot API Key:
You need a valid UptimeRobot API key. You can provide it directly via the command line using--api_keyor store it in a file (default:~/.uptimerobot) and reference it with--api_key_file(default:~/.uptimerobot. - 
Required Python Libraries:
The tool depends on some libraries, like the Linuxfabrik Python Libraries, orpyyaml. 
pip install uptimerobot-cli
utr --help
The tool supports several commands using subcommands. The commands support all UptimeRobot API parameters. Below are the primary commands and their functions:
Examples:
utr --help
utr get --help
utr get monitors --help
- 
--api_key
Provide your UptimeRobot API key directly. This option overrides the API key file. - 
--api_key_file
Specify the path to the file containing your UptimeRobot API key. (Default:~/.uptimerobot) 
Retrieve information from UptimeRobot. Available resources:
- 
account
Runutr get accountto display account details, including monitor usage, SMS credits, and rate limits. - 
monitors
Runutr get monitors [--output=yaml|table] [--lengthy]to list monitors with details like friendly name, URL, type, and more. Use--outputto choose the format (default istable) and--lengthyfor extended information (only for table output). - 
alert_contacts
Runutr get alert_contacts [--output=yaml|table] [--lengthy]to retrieve and display alert contact information. - 
mwindows
Runutr get mwindows [--output=yaml|table] [--lengthy]to list maintenance windows with start time, end time, duration, and status. - 
psps
Runutr get psps [--output=yaml|table] [--lengthy] 
Apply changes defined in a YAML file to your UptimeRobot account. This command processes your YAML definitions for monitors, maintenance windows, and alert contacts, and performs create, update, or delete actions accordingly.
Run utr apply /path/to/config.yaml where the YAML file should contain definitions for:
monitorsmwindowsalert_contactspsps
The tool will automatically convert user-friendly values to the appropriate UptimeRobot API format.
Update data for a specific resource from the command line. Currently, this command supports updating monitors.
Run utr set monitors [--field=value ...]
Additional filtering options can be passed as --field=value parameters to target specific monitors.
Other resources (account, alert_contacts, mwindows, psps) are marked as "todo" and are not yet implemented.
For the documentation of the YAML format used by the UptimeRobot CLI, please refer to the YAML syntax documentation.
- 
Retrieve Account Details:
utr get account --api_key YOUR_API_KEY - 
List Monitors containing "example" (within
urlorfriendly_name), in a brief table format:
utr get monitors --output=table --search=example --api_key YOUR_API_KEY - 
List some specific Monitors in YAML Format:
utr get monitors --types=keyw --http_request_details=true --output=yaml - 
Get all monitors with type 2, 4 and 5:
utr get monitors --types=2-4-5 - 
The same using user-friendly parameter values:
utr get monitors --types=keyw-port-beat --statuses=paused-down - 
Apply Changes from a YAML File:
utr apply /home/admin/uptime_config.yaml - 
Bulk update monitors using command-line options - pausing and resuming some monitors at once:
utr set monitors --search=example --status=pausedutr set monitors --search=example --status=up - 
Bulk update all status pages
utr set psps --status=pausedutr set psps --status=active 
- 
API Limitations:
Some operations (e.g., creating or updating alert contacts) are limited by the UptimeRobot API. The tool prints informative messages when certain actions cannot be performed. - 
Keys and Values:
Additional--key=valueoptions can be passed to refine API requests. These filters are processed automatically and applied to the corresponding API calls. 
- Authors: Linuxfabrik GmbH, Zurich
 - License: The Unlicense, see LICENSE file