Getting Started
+UptimeSharp is a C#.NET class library that integrates the UptimeRobot API.
+The wrapper consists of 2 parts:
+-
+
- Get and modify monitors +
- Get and modify alert contacts +
Install using NuGet
+Install-Package UptimeSharp
+nuget.org/packages/UptimeSharp
+Usage Example
+Get your API Key UptimeRobot (left section under "API Information")
+Include the UptimeSharp namespace and it's associated models:
+using UptimeSharp;
+using UptimeSharp.Models;
+Initialize UptimeClient with:
+UptimeClient _client = new UptimeClient("[YOUR_API_KEY]");
+Do a simple request - e.g. get all your monitors:
+_client.GetMonitors().ForEach(
+ item => Console.WriteLine(item.Name + " | " + item.Type)
+);
+Which will output:
+frontendplay | HTTP
+google | Keyword
+localhost | Ping
+...
+
+
+Constructor
+UptimeClient(string apiKey)
+Get your API Key UptimeRobot (left section under "API Information")
+ +Release History
+-
+
- 2013-08-26 v0.1.1 Adding a Port monitor works now +
- 2013-08-25 v0.1.0 Monitor and Alert APIs +
Dependencies
+ +Contributors
+
+
+ Tobias Klika @ceee
+
License
+ + +Retrieve
+Get list of all monitors:
+List<Monitor> items = _client.GetMonitors();
+Get monitors by ID - or a single monitor:
+List<Monitor> items = _client.GetMonitors(new int[]{ 12891, 98711 });
+// or
+Monitor item = _client.GetMonitor(12891);
+Provide additional params for more data:
+List<Monitor> items = _client.GetMonitors(
+ monitorIDs: new int[]{ 12891, 98711 },
+ customUptimeRatio: new float[] { 7, 30, 45 },
+ showLog: true,
+ showAlerts: true
+);
+monitorIDs: You can remove this parameter if you want to retrieve all monitors (default: null)
+
+customUptimeRatio: the number of days to calculate the uptime ratio(s) for (default: null)
+
+showLog: include log, if true (default: false)
+
+showAlerts: include alerts, if true (default: true)
+
Add
+Adds/creates a new monitor.
+bool AddMonitor(
+ string name,
+ string uri,
+ Type type = Type.HTTP,
+ Subtype subtype = Subtype.Unknown,
+ int? port = null,
+ string keywordValue = null,
+ KeywordType keywordType = KeywordType.Unknown,
+ int[] alerts = null,
+ string HTTPUsername = null,
+ string HTTPPassword = null
+)
+Example - Watch an SMTP Server:
+bool isSuccess = _client.AddMonitor(
+ name: "cee",
+ uri: "127.0.0.1",
+ type: Type.Port,
+ subtype: Subtype.SMTP
+);
+name: A friendly name for the new monitor
+
+uri: The URI or IP to watch
+
+type: The type of the monitor (see # Monitor Types)
+
+subtype: The subtype of the monitor (only for Type.Port) (see # Monitor Types)
+
+port: The port (only for Subtype.Custom)
+
+keywordValue: The keyword value (for Type.Keyword)
+
+keywordType: Type of the keyword (for Type.Keyword)
+
+alerts: An ID list of existing alerts to notify
+
+HTTPUsername: The HTTP username
+
+HTTPPassword: The HTTP password
As you can see, a lot of these parameters are only available if you've specified the correct Type.
+
+If you've selected Type.Port for example, UptimeSharp will ignore the keywordValue and keywordType parameters, even if you submitted valid ones.
Modify
+In order to modify an existing monitor, just alter the properties of the Monitor instance and call the ModifyMonitor method:
// Monitor myMonitor = ...
+myMonitor.Name = "my new name :-)";
+bool isSuccess = _client.ModifyMonitor(myMonitor);
+Important: It is not possible to alter the Type of a monitor after its creation! In case you want to do this, you have to delete the monitor and create a new one with the changed type.
Modify Alerts
+Retrieve all alerts:
+List<Alert> items = _client.GetAlerts();
+Retrieve alerts by IDs:
+List<Alert> items = _client.GetAlerts(new int[]{ 12897, 98711 });
+Retrieve a specific alert:
+Alert item = _client.GetAlert(12897);
+Adds an alert (Due to UptimeRobot API limitations SMS and Twitter alert contact types are not supported yet):
+bool isSuccess = _client.AddAlert(AlertType.Email, "uptimesharp@outlook.com");
+Adds an alert from instance:
+// Alert myAlert = ...
+bool isSuccess = _client.AddAlert(myAlert);
+Deletes an alert:
+bool isSuccess = _client.DeleteAlert(12897);
+Deletes an alert from instance:
+// Alert myAlert = ...
+bool isSuccess = _client.DeleteAlert(myAlert);
+
+ Delete
+Delete a monitor by ID:
+bool isSuccess = _client.DeleteMonitor(12891);
+Delete a monitor by a Monitor instance:
+// Monitor myMonitor = ...
+bool isSuccess = _client.DeleteMonitor(myMonitor);
+