Base URL: https://cronping.anethoth.com
All API endpoints (except ping and signup) require authentication via Bearer token.
Include your API key in the Authorization header:
Authorization: Bearer ch_your_api_key_here
Create a new account and get an API key.
curl -X POST https://cronping.anethoth.com/api/v1/signup \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
Response:
{"api_key": "ch_...", "plan": "free", "monitor_limit": 3}
Create a new monitor.
curl -X POST https://cronping.anethoth.com/api/v1/monitors \
-H "Authorization: Bearer ch_your_key" \
-H "Content-Type: application/json" \
-d '{
"name": "nightly-backup",
"schedule_minutes": 1440,
"grace_minutes": 30,
"alert_webhook": "https://hooks.slack.com/services/..."
}'
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Human-readable name for this monitor |
| schedule_minutes | int | No | Expected interval between pings (default: 60) |
| grace_minutes | int | No | Extra time before alerting (default: 10) |
| alert_email | string | No | Email for alerts (default: account email) |
| alert_webhook | string | No | Webhook URL for alerts (Slack, Discord, etc.) |
List all your monitors.
curl https://cronping.anethoth.com/api/v1/monitors \ -H "Authorization: Bearer ch_your_key"
Get details for a specific monitor, including recent pings.
Delete a monitor and all its ping history.
Pause a monitor (silences alerts during maintenance).
Resume a paused monitor.
Send a ping for a monitor. This is what your cron job calls. No authentication required — the token in the URL is the credential.
# Simplest form curl https://cronping.anethoth.com/ping/YOUR_TOKEN # With retry for reliability curl -fsS --retry 3 https://cronping.anethoth.com/ping/YOUR_TOKEN
Get an embeddable SVG status badge for a monitor. Perfect for GitHub READMEs, dashboards, and status pages. No authentication required.
# Embed in GitHub README  # HTML embed <img src="https://cronping.anethoth.com/badge/YOUR_TOKEN" alt="Cron Status">
The badge shows ● up (green) when the monitor has pinged within its schedule + grace period, and ● down (red) when it has missed its check-in.
A public status page for a monitor showing current status and recent ping history. Share it with your team or embed it in your docs. No authentication required.
# Share this URL with your team https://cronping.anethoth.com/status/YOUR_TOKEN
The status page displays:
| Element | Description |
|---|---|
| Current status | UP or DOWN with colored indicator |
| Schedule | Expected ping interval and grace period |
| Last ping | Timestamp of the most recent ping |
| Ping history | Table of recent pings with timestamps |
Subscribe to the CronPing newsletter for product updates and monitoring tips.
curl -X POST https://cronping.anethoth.com/api/v1/subscribe \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
When you create a monitor, the response now includes badge and status page URLs:
{
"id": 1,
"name": "nightly-backup",
"ping_url": "https://cronping.anethoth.com/ping/abc123",
"badge_url": "https://cronping.anethoth.com/badge/abc123",
"status_page": "https://cronping.anethoth.com/status/abc123",
"schedule_minutes": 1440,
"grace_minutes": 30
}
Create a Stripe checkout session to upgrade your plan.
curl -X POST https://cronping.anethoth.com/api/v1/checkout \
-H "Authorization: Bearer ch_your_key" \
-H "Content-Type: application/json" \
-d '{"plan": "pro"}'
When a monitor goes down, we POST this JSON to your webhook URL:
{
"monitor": "nightly-backup",
"status": "down",
"last_ping": "2026-04-12 03:00:00",
"message": "Monitor 'nightly-backup' missed its check-in. Last ping: 2026-04-12 03:00:00"
}
| Code | Meaning |
|---|---|
| 400 | Bad request (missing required fields) |
| 401 | Invalid or missing API key |
| 404 | Monitor not found |
| 409 | Email already registered |
| 429 | Monitor limit reached |
More developer tools from Anethoth