My Post

New Features – Basic Test editor and test exports in CSV format

Today we’d like to introduce two great new features available on the StatusCake monitoring platform, we’ve received a lot of requests recently for the new functionality these will offer. You can read more about exactly what the new additions enable you to do below!

Basic Test Editor

Our new basic test editor allows you to set up HTTP type tests much faster than you’d usually be able to using our standard test creation form. When creating a basic test you will only need to select the URL to be tested, check rate and testing location, you can also optionally assign contact groups and tags.

testswitch2

From the dashboard you can now use the basic test editor at any time using the new buttons at the top, you’ll also have the option to create an “Advanced test” using our standard form, which will allow you to access the more complex configurations such as string match, custom headers and POST data. When creating a basic test you can switch to the advanced setup form at any time by clicking the link at the very top of the form.

testswitch

When using the basic test editor you will be given the status of the website after typing the URL in a box to the left of the page, so you can be sure that the settings you have added are correct before saving. We’ve also simplified the location selection part, you now have the ability to select a continent from where you would like testing to occur, and locations will be assigned from that continent only. There’s the option as well to select “Random” and have the tests come from our locations around the globe with no restrictions.

CSV format export for test details

We’ve added the ability to export your test settings as a CSV file from the main uptime test dashboard. At the top of the page you’ll now see a button labelled “Export Settings” which can be clicked to action the download for all tests straight away.

export

The file downloaded will have semi-colon separated values, for a full reference of the details that the file will contain please check here.

MondayUpdates

Monday Update – Domain and SSL updates

Today we’ve made some changes to our Domain and SSL features to make your monitoring set ups more effective, and cover a wider range of use-cases.

SSL Monitoring Updates

Hostname field added to SSL

You can now add a custom hostname to the settings of your SSL test. This is very handy in cases where you need to test with a unique hostname or a specific IP, which is great for bypassing a proxy or dealing with the presence of a load balancer. Existing tests will need to be updated and this setting enabled in order to take advantage of this feature.

hostname

User Agent added to SSL

We’ve also added the ability to define a custom user agent for the SSL tests. You can set this to whatever you want for development or security purposes, if you do choose to leave this blank then our default StatusCake user agent will be used.
useragent

API support for this and the hostname function will be coming soon.

Domain Monitoring Updates

New TLD’s added to our list of supported Domains

We now have full support for two new TLD’s :

  • .live
  • .coop

Adding one of these domains will allow you to get the full set of data including expiry and extended WHOis info. If there’s a domain you’d like to see supported that isn’t just yet – please get in touch with our friendly team via live chat, or send us an email at support@statuscake.com.

StatusCake API Quick Guides – Listing tests and detailed settings

In this post we’ll take you through how to list tests from your account, and their detailed settings through the API. There are two functions involved here, first is the function that lists ALL tests on the account with important settings, and second is a more detailed call for a single test. As usual we’ll take you through this process for both of these using PHP, bash, Python and Postman.

PHP Example 1 – Get all tests

<?php
// Auth the request
$API = “l6OxVJilcD2cETMoNRvn”;
$Username = “StatusCake”;
// Create the CURL
$ch = curl_init(“https://app.statuscake.com/API/Tests/”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “POST”);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
“API: “.$API,
“Username: “.$Username
));
// For Debugging
$Response = curl_exec($ch);
$Response = json_decode($Response);
// Check for success
if (!empty($Response->Success) && $Response->Success == 1) {
echo ‘Here’s the detailed data!’;
echo $Response;
echo ‘Here’s the data!’;
echo $Response;
} else {
echo ‘Something Went Wrong Grabbing the Data<BR>’;
echo $Response->Message;
}
?>

PHP Example 2 – Get detailed data on a single test

<?php
// Auth the request
$API = “l6OxVJilcD2cETMoNRvn”;
$Username = “StatusCake”;
$TestID = TESTIDHERE;
// Create the CURL
$ch = curl_init(“https://app.statuscake.com/API/Tests/Details/?TestID=” . $TestID);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “POST”);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
“API: “.$API,
“Username: “.$Username
));
// For Debugging
$Response = curl_exec($ch);
$Response = json_decode($Response);
// Check for success
if (!empty($Response->Success) && $Response->Success == 1) {
echo ‘Here’s the detailed data!’;
echo $Response;
} else {
echo ‘Something Went Wrong Grabbing the details<BR>’;
echo $Response->Message;
}
?>

Bash Example 1 – Get all tests

curl -H “API: [APIKey]” -H “Username: [Username]” -X GET https://app.statuscake.com/API/Tests/Details/?TestID=TESTIDHERE

Bash Example 2 – Get all tests

curl H “API: [APIKey]” H “Username: [Username]” X GET https://app.statuscake.com/API/Tests/

Python Example 1 – Get all tests

# -*- coding: utf-8 -*-
import requests
headers = {‘API’: ‘APIKEYHERE’,’Username’: ‘USERNAMEHERE’}
url = ‘https://app.statuscake.com/API/Tests/’
r = requests.post(url, headers=headers)
print(r.text)

Python Example 2 – Get detailed data on a single test

# -*- coding: utf-8 -*-
import requests
headers = {‘API’: ‘APIKEYHERE’,’Username’: ‘USERNAMEHERE’}
url = ‘https://app.statuscake.com/API/Tests/Details/?TestID=TESTIDHERE’
r = requests.post(url, headers=headers)
print(r.text) 

Postman Example 1 – Get all tests

pmALL

Postman Example 2 – Get detailed data on a single test

PMalltests

StatusCake API Quick Guides – Adding an Uptime Test

At StatusCake we’ve got a powerful and ever growing API which allows you to automate many tasks, and also to take advantage of functions that are not available in-app.

The Basics

You can communicate with our API through most common coding languages, through this article we will provide code examples in terminal bash, PHP and Python, as well as an example of how to manually run the commands through a common tool for such tasks: PostMan.

The first thing you need to bear in mind when using the API is that all of your calls will need to be validated using the Username and API key, both of these details can be found in the user details section of your account, here for the username, and here for the API key

For the full list of settings that can be added along with your new test please check this page.

  1. Adding with PHP via a curl:

When using a the PHP curl method you’ll want something very similar to the code shown below, just replace the values with your desired parameters. You can see a full list of the available parameters here.

// Enter your personal API key and Username to use for authentication , and also the data to insert
$API = “l6OxVJilcD2cETMoNRvn”;
$Username = “StatusCake”;
$InsertData = array(“WebsiteName”:”My new test”, “Paused” : 0, “WebsiteURL”: “https://www.statuscake.com”, “CheckRate” : “60”, “TestType” : “HTTP”);
// Create the CURL, set the options, remember to use the PUT request type and add the Username and API values to an array.
$ch = curl_init(“https://app.statuscake.com/API/Tests/Update”);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “PUT”);
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($InsertData));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
“API: “.$API,
“Username: “.$Username
));
// For Debugging, find out if something is going wrong
$Response = curl_exec($ch);
$Response = json_decode($Response);
// Check to see if everything has worked, and print a message indicating whether this was the case
if ($Response->Success == 1) {
echo ‘Inserted Test!’;
} else {
echo ‘Something Went Wrong<BR>’;
echo $Response->Message;
}
}

 

  1. Adding through a terminal with bash

With this method we are looking at significantly less typing, it’s very important once again to ensure that this is always sent as a PUT request. The command should be run from a linux based system accessed through SSH or something similar.

curl -H “API: APIKEY” -H “Username: USERNAME” -d “WebsiteName=MyNewSite&CheckRate=60&TestType=HTTP” -X PUT https://app.statuscake.com/API/Tests/Update

  1. Adding with a Python script

To send a the HTTP PUT request required for this functionality with Python we need to import and use the “requests” package. 

import requests
payload = {‘WebsiteName’:’MySite’, ‘TestType’:’HTTP’, ‘CheckRate’:60, ‘WebsiteURL’:’http://statuscake.com’}
headers = {‘API’: ‘KEYHERE’, ‘Username’: ‘USERNAMEHERE’}
url = ‘https://app.statuscake.com/API/Tests/Update’
r = requests.put(url, headers=headers, data=payload)
print(r.text)

  1. Adding using the PostMan software

Using Postman can be a good manual method, and a way of testing your settings before automating them. Below we’ve included an image showing an example of how to enter the details into the Postman software, API key and Username should be entered separately in the “Headers” section.

 

postman1

Title

New Functionality: Mixed Content Checking For SSL

Why is avoiding mixed content on your pages important?

Mixed content occurs when the site is accessed over a HTTPS secure connection, but other resources on the page are loaded through an insecure connection. This is defined as “Mixed Content” as both HTTP and HTTPS content are being loaded on the same page when the request started as a secure HTTPS request. … Read More