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

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