Documentation

Check Types

API Reference

A valid API token must be passed with every request. You can pass the token either as a parameter or as the username part of HTTP Basic Auth. The examples on this page will leave out the token. For examples of calls using the token, see the Getting Started section of the API Overview. For the curl calls in the examples listed below you can add -u {your token}: to the curl command to pass the token in Basic Auth.

The account ID of your primary account is tied to your token, so for calls related to your primary account you do not need to include the account ID in API calls. For calls related to your SubAccounts, the account ID of the SubAccount should be passed in the customerid parameter. This is discussed further in the Record IDs section of the API Overview.

The reference list below is organized by Resource and Action. The following resources are supported:

If the action is GET, PUT, or DELETE, you can use the HTTP method to specify them directly. For other actions, include a parameter "action" to set the action. Alternatively, you can also set GET, PUT, and DELETE using the action parameter as well, which is useful if you are working in an environment that does not easily allow you to set the HTTP method.

The API supports two ways of passing in the parameters. You can put them in the querystring as shown in the accounts PUT example, or you can send them in a JSON object named json, as shown in the contacts PUT example. The two syntaxes are interchangable. In both cases, you only need to include fields listed as "required." "Optional" fields only need to be included if you are setting the value for that parameter.

accounts

GET - Get account information, or a list of subaccounts with their name, status, and the current number of active checks.
  • customerid or id - optional - customerid of the subaccount you want to get. If absent, retrieves a list of accounts
Request example:
curl -X GET 'https://api.nodeping.com/api/1/accounts/201205102227VZ6XU'
Response example:
{
    "_id": "201205102227VZ6XU",
    "type": "customer",
    "customer_name": "My Company Name",
    "creation_date": 1336626000000,
    "status": "Active",
    "timezone": "-7.0",
    "nextBillingDate": "2012-05-15",
    "defaultlocations": [ "nam" ]
}
List request example:
curl -X GET 'https://api.nodeping.com/api/1/accounts'
Response example. The primary account includes an additional "parent" parameter that provides a count of SubAccounts (the example primary account shown below has five subaccounts, although not all are shown here).
{
    "201205050153W2Q4C": {
        "parent": 5,
        "name": "Peter Provider",
        "status": "Active",
        "count": 120
    },
    "201204251942S197J": {
        "name": "Courageous Charlie",
        "status": "Active",
        "count": 31
    }
PUT - Update account information
  • customerid or id - optional - customerid of the subaccount you want to change. If absent, your primary account will be updated
  • name - a name for the subaccount, used primarily as a label in the accounts list.
  • timezone - optional - GMT offset for the account (example: '-7' is US Phoenix)
  • location - optional - The default region for checks for the account. This is a geographical region where our probe servers are located. Currently this can be set to 'nam' for North America, 'lam' for Latin America, 'eur' for Europe, 'eao' for East Asia/Oceania, or 'wlw' for world wide.
  • emailme - optional - set to 'yes' to opt-in the subaccount for NodePing service and features email notifications. Defaults to 'no' if absent.
  • status - account status, set to "Active" or "Suspend"
Request example:
curl -X PUT 'https://api.nodeping.com/api/1/accounts?customerid=201205102227VZ6XU&timezone=-5&status=Suspend
Response example:
{
    "_id": "201205102227VZ6XU",
    "type": "customer",
    "customer_name": "My Company Name",
    "creation_date": 1336626000000,
    "status": "Suspend",
    "timezone": "-5.0",
    "defaultlocations": [ "nam" ]
}
POST - Create a new SubAccount. Note that id and customerid are not supported for POST calls on accounts.
  • name - required - a name for the subaccount, used primarily as a label for the accounts list.
  • contactname - required - name of the primary contact for the subaccount
  • email - required - email of the primary contact for the subaccount
  • timezone - required - GMT offset for the account (example: '-7' is US Phoenix)
  • location - required - The default region for checks for the account. This is a geographical region where our probe servers are located. Currently this can be set to 'nam' for North America, 'eur' for Europe, 'eao' for East Asia/Oceania, or 'wlw' for world wide.
  • emailme - optional - set to 'yes' to opt-in the subaccount for NodePing service and features email notifications. Defaults to 'no' if absent.
Request example:
curl -X POST 'https://api.nodeping.com/api/1/accounts?timezone=3&name=My+Company+Name&contactname=Joe+Smith&email=joe@example.com&timezone=3&location=eur&emailme=yes'
Response example:
{
    "_id": "201205102227VZ6XU",
    "type": "customer",
    "parent": "20120425194336LEV",
    "customer_name": "My Company Name",
    "creation_date": 1336626000000,
    "status": "Active",
    "emailme":true,
    "timezone": "3.0",
    "defaultlocations": [ "eur" ]
}
DELETE - Delete a subaccount. You cannot delete your own account using this call.
  • customerid or id - required - customerid of the subaccount you want to delete.
Request example:
curl -X DELETE 'https://api.nodeping.com/api/1/accounts?customerid=201205102227VZ6XU'
Response example:
{"success":"Records queued for deletion."}

contacts

GET - Get contact information
  • customerid - optional string - customerid of the subaccount you want to get a contact or contact list for.
  • id - optional string - Contact id of the contact you want to get. If absent, the call will return a list of contacts. Getting a specific contact belonging to a subaccount requires customerid to be set.
Request example:
curl -X GET 'https://api.nodeping.com/api/1/contacts?'
Response example:
{
  "201205050153W2Q4C-BKPGH": {
    "_id": "201205050153W2Q4C-BKPGH",
    "type": "contact",
    "customer_id": "201205050153W2Q4C",
    "name": "Foo Bar",
    "custrole": "owner",
    "addresses": {
      "K5SP9CQP": {
        "address": "[email protected]",
        "status": "new"
      }
    }
  }
}
POST and PUT - Create (POST) or update (PUT) a contact
  • customerid - optional string - customerid of the subaccount to which the contact belongs. Not needed if the contact is in your primary account.
  • id - required on update, ignored on create - string contact id you want to modify
  • name - optional string - The name of the contact. It is used as a label.
  • custrole - optional string - Set to 'edit,' 'view' or 'notify' to set permissions for this contact. Default is 'view'. Contacts created with an 'edit' or 'view' access level will receive a welcome email message, which by default includes a random password and the suggestion that they change the password immediately. You can avoid these messages by creating the contact with a 'notify' custrole, and then updating them to 'edit' or 'view'. You can also change the content of the welcome email message in the Branding preferences.
  • addresses - optional JSON collection style object used to update existing email addresses and phone numbers. Not used for POST calls. When updating existing addresses, the entire list is required. Entries missing from the object are removed from the contact (there isn't a separate delete call for this purpose). Adding non-existing address IDs to the list will generate an error. Up and first result alerts can be suppressed for each address. See the comments in newaddresses below for more information. The format is {addressid:{"address":emailaddress, "suppressfirst":true},addressid2:{"address":phonenumber}}. See the example below.
  • newaddresses - optional JSON array of objects used to add new email addresses and phone numbers to the contact. The format is: [{"address":emailaddress,"type":"email"},{"address":phonenumber,"type":"sms"}]. The type of address can any supported address type, including "email", "twitter", "sms", "webhook" or "voice". IDs will be automatically generated and assigned to each address entry as it is added to the contact. "Up", "Down" and "First result" alerts can be suppressed for each address by adding "suppressup":true, "suppressdown":true or "suppressfirst":true to the address object. All notifications can be suppressed to an address by setting "suppressall": true. To remove any of these suppress settings, set it to false ("suppressfirst":false). See the example below.
Request example:
curl -X PUT -d'json={"newaddresses":[{"address":"[email protected]","type":"email", "suppressup":true}]}' 'https://api.nodeping.com/api/1/contacts/201205050153W2Q4C-BKPGH'
Response example:
{
    "_id": "201205050153W2Q4C-BKPGH",
    "type": "contact",
    "customer_id": "201205050153W2Q4C",
    "name": "Foo Test",
    "custrole": "view",
    "sdomain": "nodeping.com",
    "addresses": {
        "K5SP9CQP": {
            "address": "[email protected]",
            "type": "email"
        },
        "9ZODE0VF": {
            "address": "[email protected]",
            "type": "email",
            "suppressup": true
        }
    }
}
DELETE - Delete a contact
  • customerid - optional string - customerid of the subaccount to which the contact belongs. Not needed if the contact is in your primary account.
  • id - required string - Contact id of the contact you want to delete.
Request example:
curl -X DELETE https://api.nodeping.com/api/1/contacts/201205050153W2Q4C-LZ1UI
Response example:
{"ok":true,"id":"201205050153W2Q4C-LZ1UI"}
RESETPASSWORD - Reset password for a contact. A new password will be emailed to the contact.
  • customerid - optional string - customerid of the subaccount to which the contact belongs. Not needed if the contact is in your primary account.
  • id - required string - Contact id of the contact for which you want to reset the password.
Request example:
curl -X GET https://api.nodeping.com/api/1/contacts/201205050153W2Q4C-OVDN7?action=RESETPASSWORD
Response example:
{"success":true}

contactgroups

GET - Get contact group information
  • customerid - optional string - customerid of the subaccount you want to get a contact group list for.
  • id - optional string - Contact group id of the contact group you want to get. If absent, the call will return a list of contact groups. Getting a specific contact group belonging to a subaccount requires customerid to be set.
Request example:
curl -X GET 'https://api.nodeping.com/api/1/contactgroups'
Response example:
{
  "201205050153W2Q4C-G-3QJWG": {
    "type": "group",
    "customer_id": "201205050153W2Q4C",
    "name": "Example Group",
    "members": [
      "SLS78SDG",
      "9ZODE0VF"
    ]
  } ...
}
POST and PUT - Create (POST) or update (PUT) a contact group
  • customerid - optional string - customerid of the subaccount to which the contact group list belongs.
  • id - required string on update - the contact group id you want to modify
  • name - optional string used as a label for the group.
  • members - optional JSON string - An array of contact ids like: ["1664V","[email protected]"}] (those are two different contacts)
curl -X POST -d'json={"members":["9GJ7EHJX","GFRWVKD9"],"name":"An Example Group"}' 'https://api.nodeping.com/api/1/contactgroups'
Response example:
{
    "_id": "201205050153W2Q4C-G-1ZIYU",
    "type": "group",
    "customer_id": "201205050153W2Q4C",
    "name": "An Example Group",
    "members": [
        "9GJ7EHJX",
        "GFRWVKD9"
    ]
}
DELETE - Delete a contact group
  • customerid - optional string - customerid of the subaccount to which the contact group list belongs. Not needed if the contact group belongs to your primary account.
  • id - required string - Contact group id of the contact group you want to delete.
Request example:
curl -X DELETE 'https://api.nodeping.com/api/1/contactgroups/201205050153W2Q4C-G-1ZIYU'
Response example:
{"ok":true,"id":"201205050153W2Q4C-G-1ZIYU"}

schedules

Schedules are used for setting time windows for notifications. In the web site they are unders Account Settings -> Notification Windows.
GET - Get a schedule or list of schedules
  • customerid - optional string - customerid of the subaccount to which the schedule belongs.
  • id - optional string, if omitted a list of all schedules are returned.
Request example:
curl -X GET 'https://api.nodeping.com/api/1/schedules/Days'
Response example:
{
    "monday": {
        "time1": "6:00",
        "time2": "18:00",
        "exclude": 0
    },
    "tuesday": {
        "time1": "6:00",
        "time2": "18:00",
        "exclude": 0
    },
    "wednesday": {
        "time1": "6:00",
        "time2": "18:00",
        "exclude": 0
    },
    "thursday": {
        "time1": "6:00",
        "time2": "18:00",
        "exclude": 0
    },
    "friday": {
        "time1": "6:00",
        "time2": "18:00",
        "exclude": 0
    },
    "saturday": {
        "time1": "6:00",
        "time2": "18:00",
        "exclude": 0
    },
    "sunday": {
        "time1": "6:00",
        "time2": "18:00",
        "exclude": 0
    }
}
PUT - Create or update a schedule. Since you get to set the ID for these, create and updates use identical calls and only PUT is needed.
  • customerid - optional string - customerid of the subaccount to which the schedule belongs.
  • id - required string
  • data - required JSON object containing the schedule (see the examples). Properties inside each day object are as follows:
    • time1 - start of time span
    • time2 - end of time span
    • exclude - inverts the time span so it is all day except for the time between time1 and time2
    • disabled - disables notifications for this day.
    • allday - enables notifications for the entire day.
Request example:
curl -X PUT -d'json={"data":{"monday":{"time1":"6:00","time2":"18:00","exclude":0},"tuesday":{"time1"6:00","time2":"18:00","exclude":0},"wednesday":{"time1":"6:00","time2":"18:00","exclude":0},"thursday":{"time1":"6:00","time2":"18:00","exclude":0},"friday":{"time1":"6:00","time2":"18:00","exclude":0},"saturday":{"time1":"6:00","time2":"18:00","exclude":0},"sunday":{"time1":"6:00","time2":"18:00","exclude":0}}}' 'https://api.nodeping.com/api/1/schedules/Foo'
Response example:
{"ok":true,"id":"201205050153W2Q4C"}
DELETE - Delete a schedule
  • customerid - optional string - customerid of the subaccount to which the schedule belongs.
  • id - required string
Request example:
curl -X DELETE 'https://api.nodeping.com/api/1/schedules/Foo'
Response example:
{"ok":true,"id":"201205050153W2Q4C"}

checks

GET - Get check information - returns check information or a list of checks.
  • customerid - optional - customerid of the subaccount you want to get a check or list of checks for. If omitted checks for the primary account are returned.
  • id - optional - Check id of the check you want to get. If absent, the call will return a list of checks.
  • lastresult - optional boolean - only valid if retrieving one check. The check's last result will be inserted into the response.
  • current - optional boolean - only valid if retrieving a list of checks. The checks current events ("down" or "disabled") will be inserted in the response. If you only need to know if the check is passing or not, please do not use the 'current' flag as the "state" element on each check will indicate pass/fail and your API call will be more performant without this flag. Note that the "lastresult" is slightly different from the "current" information. The last result will show the last result, just like a results call with the limit set to 1, regardless of the current state of the check and regardless of when it was (typically up to a month or so ago), as long as there is at least one result for this check. The current event will show if the current state of the check is down or disabled. See the documentation and examples for the results and current calls below for more information.
Request example:
curl -X GET 'https://api.nodeping.com/api/1/checks/201205050153W2Q4C-0J2HSIRF'
Response example:
{
  "_id": "201205050153W2Q4C-0J2HSIRF",
  "_rev": "37-8776f919267df3973fdb33cba0a8dd09",
  "customer_id": "201205050153W2Q4C",
  "label": "Site 1",
  "interval": 1,
  "notifications": [],
  "type": "HTTP",
  "status": "assigned",
  "modified": 1336759793520,
  "enable": "active",
  "public": false,
  "parameters": {
    "target": "http://www.example.com/",
    "threshold": "5",
    "sens": "2"
  },
  "created": 1336185808566,
  "queue": "bINPckIRdv",
  "uuid": "4pybhg6m-4v1y-4enn-8tz5-tvywydu6h04k",
  "state": 0,
  "firstdown": 1336185868566
}
Note that "state" is a boolean that indicates if the check is passing or not (1 means the check is passing, 0 means it's failing) and "firstdown" will be either false for a passing check or a Unix timestamp in milliseconds indicating when the check began to fail.
POST and PUT - Create (POST) or update (PUT) a check - returns information about the check created or modified
  • id - required string on update - the check id you want to modify. Ignored for POST calls.
  • customerid - required when creating or updating a check on a subaccount - customerid of the subaccount the check belongs to.
  • type - required - string check type, one of: AUDIO, DNS, FTP, HTTP, HTTPCONTENT, HTTPPARSE, HTTPADV, IMAP4, MYSQL, PING, POP3, PORT, RBL, RDP, SIP, SMTP, SSH, SSL, WEBSOCKET
  • target - required on create (except for DNS type checks), optional on update - string URL or FQDN. The check target. Note that for HTTP, HTTPCONTENT, HTTPPARSE, and HTTPADV checks this must begin with "http://" or "https://".
  • label - optional string - give this check a label. If this is absent, the target will be used as the label.
  • interval - optional integer, defaults to 15 - How often this check runs in minutes. Can be any integer starting at 1 for one minute checks. Once a day is 1440.
  • enabled - optional string, 'true' or 'false' defaults to 'false'. Set to 'true' or 'active' to enable this check to run.
  • public - optional string, 'true' or 'false' defaults to 'false'. Set to 'true' to enable public reports for this check.
  • runlocations - optional string or json array - This is a geographical region where our probe servers are located. Currently this can be an one or more of the following: 'nam' for North America, 'eur' for Europe, 'eao' for East Asia/Oceania, or 'wlw' for world wide. If omitted, the account's default location setting is used.
  • threshold - optional integer - the timeout for this check in seconds, defaults to 5 for a five second timeout. Can be any integer starting at 1.
  • sens - optional integer - number of rechecks before this check is considered 'down' or 'up'. Defaults to 2 (2 rechecks means it will be checked by 3 different servers). Rechecks are run immediately, not based on the interval and happen when a status change occurs.
  • notifications - optional json array - array of contact ids and scheduling ids to use in the notifications. The IDs can be obtained by listing the relevant contacts. The format for the data is [{"contactkey1":"schedule1"},{"contactkey2":"schedule2"}]. See the Request example below. In order to remove an address from a check's notifications, set the schedule value to "None", so removing notifications to contactkey1 and adding it to contactkey2 would like this: [{"contactkey1":"None"},{"contactkey2":"schedule2"}]
The following are only relevant for certain types:
  • contentstring - optional string for DNS, HTTPCONTENT, HTTPADV, FTP, SSH and WEBSOCKET type checks - the string to match the response against.
  • dnstype - optional string for DNS checks to indicate the type of DNS entry to query - String set to one of: 'ANY', 'A', 'AAAA', 'CNAME', 'MX, 'NS, 'PTR', 'SOA', 'TXT'.
  • dnstoresolve - optional string for DNS type checks - The FQDN of the DNS query
  • follow - optional boolean used for HTTP, HTTPCONTENT and HTTPADV checks. If true, the check will follow up to four redirects. The HTTPADV check only supports follow for GET requests.
  • email - optional string used for IMAP and SMTP checks.
  • port - optional integer for DNS, FTP, PORT, SSH type checks - used for check types that support port fields separate from the target address. HTTP and HTTPCONTENT will ignore this field as the port must be set in the target in standard URL format.
  • username - optional string for FTP, IMAP, POP, SMTP and SSH type checks - HTTP and HTTPCONTENT will ignore this field as the username must be set in the target in standard URL format.
  • password - optional string for FTP, IMAP, POP, SMTP and SSH type checks - Note that this is going to be passed back and forth in the data, so you should always be sure that credentials used for checks are very limited in their access level. See our Terms of Service. HTTP and HTTPCONTENT will ignore this field as the password must be set in the target in standard URL format.
  • secure - optional string to specify whether the IMAP, SMTP, and POP checks should use TLS for the check. Can be set to "false" or "ssl".
  • verify - optional string to set whether or not to verify the certificate. Can be "true" or "false".
  • ignore - optional string for the RBL check type, specifies RBL lists to ignore. Multiple lists can be added by including them in the string, separated by commas.
  • invert - optional string for FTP, HTTPCONTENT, HTTPADV, PORT, SSH type checks - used for 'Does not contain' functionality in checks. Default is 'false' - Set to 'true' to invert the content type match.
  • warningdays - optional integer for SSL, POP, IMAP, and SMTP checks - number of days before certificate expiration to fail the check and send a notification.
  • fields - optional object used for fields to parse from the HTTPADV response. This is a keyed list of fields, with an arbitrary (by default random) string as the key. Each object in the list should include three elements: neme, min and max. For example:
    "fields": {
        "LSGWNS": { "name": "processmem.rss", "min":10000000, "max":999999999}
    }
  • postdata - optional string that can be used in the HTTPADV check as an alternative to the data object. postdata should be a single string to post.
  • data, receiveheaders, sendheaders - these are optional objects used by HTTPADV. They are formatted as key:value pairs. For example, to send a header setting the Content-Type to "application/json" the sendheaders object should look like this:
    "sendheaders": {
        "Content-Type": "application/json"
    }
  • method - optional string used by the HTTPADV check to specify the HTTP method. It can be one of GET, POST, PUT, HEAD, TRACE, or CONNECT.
  • statuscode - optional integer specifying the expected status code in the response to an HTTPADV check.

Fields by check type

All checktype use target, sens, threshold. Most checks also support additional fields:
  • AUDIO - no additional fields
  • DNS - contentstring, port, dnstoresolve, dnstype
  • FTP - invert, conteststring, port, password, username
  • HTTP - no additional fields
  • HTTPADV - invert, contentstring, data, method, postdata, receiveheaders, sendheaders, statuscode
  • HTTPCONTENT - invert, contentstring
  • HTTPPARSE - fields
  • IMAP4 - port, verify, email, password, secure, username, warningdays
  • MYSQL - no additional fields
  • PING - no additional fields
  • POP3 - port, verify, password, secure, username, warningdays
  • PORT - invert, port
  • RBL- ignore
  • RDP- no additional fields
  • SIP - no additional fields
  • SMTP - invert, port, verify, email, password, secure, username, warningdays
  • SSH - invert, contentstring, port, password, username
  • SSL - warningdays
  • WEBSOCKET - invert, contentstring, data
Request example:
curl -X PUT -d'json={"threshold":4, "target":"http://www.example.com/index.html", "enable":"true", "notifications":[{"SKTUSP":"Days"}]}' 'https://api.nodeping.com/api/1/checks/201205050153W2Q4C-1FOC0YYM'
Response example:
{
  "_id": "201205050153W2Q4C-1FOC0YYM",
  "_rev": "49-5069940f2a95fc6ae5564e329da755bd",
  "customer_id": "201205050153W2Q4C",
  "label": "Site 2",
  "interval": 1,
  "notifications": [ { "SKTUSP": "Days" } ],
  "type": "HTTP",
  "status": "modified",
  "modified": 1337744587374,
  "enabled": "active",
  "public": false,
  "parameters": {
    "target": "http://www.example.com/index.html",
    "threshold": 4,
    "sens": "2"
  },
  "state": 1,
  "firstdown": false
}
DELETE - Delete a check
  • id - required string - Check id of the check you want to delete.
  • customerid - required string when deleting a check on a subaccount - customer id of the subaccount the check belongs to.
Request example:
curl -X DELETE 'https://api.nodeping.com/api/1/checks/201205050153W2Q4C-0J2HSIRF'
Response example:
{"ok":true,"id":"201205050153W2Q4C-0J2HSIRF"}

results

GET - Get check results
  • customerid - optional - customerid of the subaccount you want to get results for. You can omit this if getting results for a check in your primary account.
  • id - required - Check id of the check you want to get.
  • span - optional integer - number of hours of results to retrieve. If used in combination with limit the narrower range will be used.
  • limit - optional integer - number of records to retrieve. Defaults to 300 if span is not set. Maximum is 43201. If used in combination with span the narrower range will be used. If limit = 1 clean is assumed to be set to true.
  • start - optional - date/time for the start of the results. Timestamps should be milliseconds, or an RFC2822 or ISO 8601 date like YYYY-MM-DD HH:MM:SS. Times are assumed to be GMT unless the time includes the time zone (as in GMT-0400).
  • end - optional - date/time for the end of the results. This works the same as start, and is intended to be used in conjunction with that parameter. start and end cannot be used with span, but do combine with limit. Flipping end and start will flip the sort order of the results.
  • clean - optional - boolean sets whether to use the older format for the result record that includes a doc object. We strongly recommend that you set this to true, as the older format will be deprecated in the future. Currently defaults to false, unless limit=1, but in future versions of the api the default will change to true.
Request example:
curl -X GET https://api.nodeping.com/api/1/results/201205050153W2Q4C-0J2HSIRF
The response example shown here is using the "clean" parameter. If "clean" is false the following results will be inside a "doc" object. Response example:
[{
  "_id":"201205050153W2Q4C-0J2HSIRF-1345313038648",
  "ci":"201205050153W2Q4C",
  "t":"DNS",
  "tg":"8.8.8.8",
  "th":"5",
  "i":"5",
  "ra":"1345313029252",
  "q":"caRRa3op0v",
  "s":1345313038648,
  "sc":"Success",
  "su":true,
  "rt":77,
  "e":1345313038725,
  "l":{"1345313038648":"ca"}
}
Results fields:
  • _id - ID of the result record.
  • ci - customer id
  • t - Check Type: DNS, FTP, HTTP, HTTPCONTENT, IMAP4, MYSQL, PING, POP3, PORT, RDP, SMTP, SSH, SSL
  • tg - Target, generally the URL or Hostname
  • th - Threshold or timeout for this check
  • i - Check interval
  • ra - Timestamp, when this check was scheduled to run
  • q - Internal informationa about what queue this check was in when it ran.
  • s - Timestamp, when this check actually ran. This will usually be a few ms behind ra
  • sc - Short text field showing the result of the check. This varies slighly by check type. For HTTP checks, it is the status code returned by the remote server.
  • m - Message regarding the result of the check. This varies by check type, but generally if there is an error code it will appear in this field.
  • su - boolean, whether the check was a pass or fail
  • rt - The run time. This is the value that get's charted. For many checks this is the value of e - s.
  • e - Timestamp, when the check finished.
  • l - list of locations the check ran in, and the timestamps for each.
UPTIME - Retrieves uptime information for a check.
  • customerid - optional - customerid of the subaccount you want to get results for. You can omit this if getting results for a check in your primary account.
  • id - required - Check id of the check you want to get.
  • interval - optional - "days" or "months", "months" is the default.
  • start - optional - start date for the range of days or months. If absent, starts at beginning of available data.
  • end - optional - end date for the range of days or months (excluded - meaning 'up to this date but not including'). If absent, end date is "now"
Request example:
curl -X GET https://api.nodeping.com/api/1/results/uptime/201205050153W2Q4C-0J2HSIRF
The Response includes the following fields for each time period in the range requested, plus a total that sums these fields:
  • enabled - the number of milliseconds that the check was enabled in the time period
  • down - the number of milleseconds the check was marked as "down" in the time period
  • uptime - the percent uptime for the time period. This is calculated based on the time that the check is enabled, so if a check is disabled for a while it does not count against uptime.
    • Response example:
      {
              "2012-10": {
                      "enabled": 2678400000,
                      "down": 35210534,
                      "uptime": 98.685
              },
              "2012-11": {
                      "enabled": 585947750,
                      "down": 248109,
                      "uptime": 99.958
              },
              "total": {
                      "enabled": 3264347750,
                      "down": 35458643,
                      "uptime": 98.914
              }
      }
CURRENT - Retrieves information about current "events" for checks. Events include down events and disabled checks. If you need a list of all checks with their passing/failing state, please use the 'checks' list rather than this 'current' call.
  • customerid - optional - customerid of the subaccount you want to get results for. You can omit this if getting results for a check in your primary account.
Request example:
curl -X GET https://api.nodeping.com/api/1/results/current
The Response includes the following fields:
  • type - disabled or down
  • label - the check's label
  • t - timestamp when the event began

notifications

GET - Get check notifications
  • customerid - optional - customerid of the subaccount you want to get notifications for. You can omit this if getting notifications for a check in your primary account.
  • id - optional - Check id of the check for which you want to list notifications. If omitted, the most recent notifications for all checks on the account will be retrieved.
  • span - optional integer - number of hours of notifications to retrieve. If used in combination with limit the narrower range will be used.
  • limit - optional integer - number of records to retrieve. Defaults to 300 if span is not set. Maximum is 43201. If used in combination with span the narrower range will be used.
  • subaccounts - optional boolean - if set, notifications sent to subaccounts will also be included.
Request example:
curl -X GET https://api.nodeping.com/api/1/notifications/201205050153W2Q4C-0J2HSIRF