Skip to content

How monitoring works

Did My Job Run watches your scheduled jobs by listening for a small HTTP request — a ping — every time a job runs. If the ping doesn’t show up on schedule, we email you.

A ping is any HTTP GET or POST to your monitor’s unique URL:

Terminal window
curl -fsS https://api.didmyjobrun.com/ping/<your-key>

Copy the exact URL from your monitor on the dashboard — that’s the source of truth. The one above is just an example.

Pings go to api.didmyjobrun.com, not the didmyjobrun.com you sign in on. A real ping answers with JSON:

{ "ok": true }

If you get HTML back instead, the ping isn’t reaching us — check the host in your URL. This is worth verifying once by hand when you set a monitor up, because a request to the wrong address can still look successful to curl while recording nothing.

Each ping marks the monitor up, records the time, and pushes the next deadline forward. There’s no agent to install and no SDK to import — anything that can make an HTTPS request can report in.

When you create a monitor you set two values:

  • Period — how often the job is expected to run (e.g. every 1 day).
  • Grace — extra slack before we consider a missed ping a problem (e.g. 1 hour), so a job that runs a little late doesn’t trigger a false alarm.

If no ping arrives within period + grace, the monitor flips to down and we email you once. The next successful ping flips it back to up.

This is the most important habit: ping only when the job actually succeeds.

If you always ping — even when the job errors out — a broken job still looks healthy. By pinging only on success, a failed job goes silent and you get alerted. In a shell that means using &&:

Terminal window
/opt/run-backup.sh && curl -fsS https://api.didmyjobrun.com/ping/<your-key>

The ping runs only if run-backup.sh exited 0 (success). The per-scheduler guides show how to do this in each environment.

  • GET or POST both work — use whichever is easiest.
  • The -fsS curl flags keep cron quiet on success but still surface real errors: -f fails on HTTP errors, -s is silent, -S shows errors when they happen.
  • Rate limit: up to 30 pings per minute per monitor — far above any real schedule, so you’ll never hit it in normal use.