CronPing API Reference

Base URL: https://cronping.anethoth.com

All API endpoints (except ping and signup) require authentication via Bearer token.

Authentication

Include your API key in the Authorization header:

Authorization: Bearer ch_your_api_key_here

Sign Up

POST /api/v1/signup

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}

Monitors

POST /api/v1/monitors

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/..."
  }'
FieldTypeRequiredDescription
namestringYesHuman-readable name for this monitor
schedule_minutesintNoExpected interval between pings (default: 60)
grace_minutesintNoExtra time before alerting (default: 10)
alert_emailstringNoEmail for alerts (default: account email)
alert_webhookstringNoWebhook URL for alerts (Slack, Discord, etc.)

GET /api/v1/monitors

List all your monitors.

curl https://cronping.anethoth.com/api/v1/monitors \
  -H "Authorization: Bearer ch_your_key"

GET /api/v1/monitors/{id}

Get details for a specific monitor, including recent pings.

DELETE /api/v1/monitors/{id}

Delete a monitor and all its ping history.

POST /api/v1/monitors/{id}/pause

Pause a monitor (silences alerts during maintenance).

POST /api/v1/monitors/{id}/resume

Resume a paused monitor.

Pings

GET / POST /ping/{token}

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

Status Badges

GET /badge/{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
![Cron Status](https://cronping.anethoth.com/badge/YOUR_TOKEN)

# 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.

Public Status Pages

GET /status/{token}

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:

ElementDescription
Current statusUP or DOWN with colored indicator
ScheduleExpected ping interval and grace period
Last pingTimestamp of the most recent ping
Ping historyTable of recent pings with timestamps

Newsletter

POST /api/v1/subscribe

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]"}'

Monitor Create Response

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
}

Billing

POST /api/v1/checkout

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"}'

Webhook Alert Format

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"
}

Error Codes

CodeMeaning
400Bad request (missing required fields)
401Invalid or missing API key
404Monitor not found
409Email already registered
429Monitor limit reached

More developer tools from Anethoth

DocuMint — PDF Invoice API FlagBit — Feature Flags WebhookVault — Webhook Debugging