Monitoring for your nightly backups, weekly reports, cron jobs and background tasks.

Make HTTP requests to the Ping URL at regular intervals. When the URL is not pinged on time, healthchecks.io will send you an alert. You can monitor any service that can make HTTP requests or send emails.

healthchecks.io creates unique Ping URLs like this one:

# m h dom mon dow command
  8 6 *   *   *   /home/user/backup.sh && curl -fsS --retry 3 https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70 > /dev/null
# using curl:
# (make sure it is installed on your system!)
curl --retry 3 https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70
# using wget:
wget https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70 -O /dev/null
# urllib with python 3.x:
import urllib.request
urllib.request.urlopen("https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70")

# urllib with python 2.x:
import urllib
urllib.urlopen("https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70")
# using requests:
import requests
requests.get("https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70")
require 'net/http'
require 'uri'

Net::HTTP.get(URI.parse('https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70'))
var https = require('https');
https.get("https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70");
file_get_contents('https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70');
using (var client = new System.Net.WebClient())
{
       client.DownloadString("https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70");
}
// the server returns appropriate CORS headers so cross-domain AJAX requests should work:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70', true);
xhr.send(null);
# inside a PowerShell script:
Invoke-RestMethod https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70
# Without an underlying script, passing the command to PowerShell directly:
powershell.exe -command &{Invoke-RestMethod https://hc-ping.com/c98d52e4-9fac-4ba9-b2d1-040b6b966d70}

As an alternative to HTTP and HTTPS requests, you can "ping" this check by sending an email message to c98d52e4-9fac-4ba9-b2d1-040b6b966d70@hc-ping.com

E-mail Address to Receive Alerts:

@

A quick peek of what's inside:

My Checks page

A list of your checks, one for each Cron job, daemon or periodically running task you want to monitor.

Give names to your checks to easily recognize them later. Adjust Period and Grace time to match the periodicity and duration of your tasks.

Period/Grace Time dialog
Each check has configurable Period and Grace Time parameters. Depending on these parameters and time since the last ping, the check is in one of the following states:
New. A check that has been created, but has not received any pings yet.
Up. Time since last ping has not exceeded Period.
Late. Time since last ping has exceeded Period, but has not yet exceeded Period + Grace.
Down. Time since last ping has exceeded Period + Grace. When check goes from "Late" to "Down", healthchecks.io sends you a notification.
Cron dialog

Alternatively, you can define the expected ping dates and times using a cron expression. See Cron Syntax Cheatsheet for the supported syntax features.

Grace Time specifies how "late" a ping can be before you will be alerted. Set it to be a little above the expected duration of your cron job.

Channels page

You can set up additional ways to get notified:

Good old email messages.
SMS text messages.
Webhook icon HTTP webhooks.
Slack icon Notifications in Slack channel.
Instant push notifications with Pushover.
Pushbullet icon Instant push notifications with Pushbullet.
Telegram icon Notifications to a Telegram group or user.
Open and resolve incidents in PagerDuty.
Open and resolve incidents in PagerTree.
Notifications in HipChat channel.
Open and resolve incidents in VictorOps.
Notifications in Discord channel.
Open and resolve incidents in OpsGenie.