Documentation

Everything you need to get started with CronRabbit monitoring.

Quick Start

1

Create a Monitor

Log into your dashboard and create a new monitor. Give it a name, set the expected schedule using a cron expression (e.g., 0 2 * * * for 2 AM daily), and configure a grace period.

2

Copy Your Ping URL

Each monitor gets a unique ping URL. Copy it from the monitor detail page.

https://ping.cronrabbit.com/abc123-your-monitor-id
3

Add to Your Script

Add an HTTP request to the end of your script. When the request succeeds, we know your job ran.

Signal Types

CronRabbit supports different signal types to give you complete visibility into your job execution.

Success Ping

The standard ping. Send this when your job completes successfully.

curl https://ping.cronrabbit.com/your-id

/start Signal

Send at the beginning of your job to track duration.

curl https://ping.cronrabbit.com/your-id/start

/fail Signal

Explicitly signal failure. Triggers an immediate alert.

curl https://ping.cronrabbit.com/your-id/fail

Exit Code

Append exit code to the URL. Non-zero triggers an alert.

curl https://ping.cronrabbit.com/your-id/$?

Integration Examples

Copy-paste examples for common languages and use cases.

Bash / Shell

Simple ping at end of script:
#!/bin/bash
# Your backup script
tar -czf /backup/data.tar.gz /data

# Ping on success
curl -fsS -m 10 --retry 3 https://ping.cronrabbit.com/your-id
With duration tracking:
#!/bin/bash
# Signal start
curl -fsS https://ping.cronrabbit.com/your-id/start

# Your job
./run-etl-pipeline.sh

# Signal success (duration calculated automatically)
curl -fsS -m 10 --retry 3 https://ping.cronrabbit.com/your-id
With exit code reporting:
#!/bin/bash
./your-job.sh
curl -fsS https://ping.cronrabbit.com/your-id/$?

🐍Python

Using requests:
import requests

PING_URL = "https://ping.cronrabbit.com/your-id"

def main():
    # Signal start for duration tracking
    requests.get(f"{PING_URL}/start", timeout=10)
    
    try:
        # Your job logic here
        run_backup()
        
        # Signal success
        requests.get(PING_URL, timeout=10)
    except Exception as e:
        # Signal failure
        requests.get(f"{PING_URL}/fail", timeout=10)
        raise

if __name__ == "__main__":
    main()

Node.js

Using fetch (Node 18+):
const PING_URL = "https://ping.cronrabbit.com/your-id";

async function main() {
    // Signal start
    await fetch(`${PING_URL}/start`);
    
    try {
        // Your job logic
        await runDataSync();
        
        // Signal success
        await fetch(PING_URL);
    } catch (error) {
        // Signal failure
        await fetch(`${PING_URL}/fail`);
        throw error;
    }
}

main();

Crontab Integration

Wrap existing cron command:
# Before
0 2 * * * /scripts/backup.sh

# After (with monitoring)
0 2 * * * /scripts/backup.sh && curl -fsS https://ping.cronrabbit.com/your-id

Setting Up Alert Integrations

Configure where you want to receive alerts. Set up integrations at the workspace level, then enable them for individual monitors.

#

Slack

  1. Go to Workspace Settings → Integrations
  2. Click Add Integration → Slack
  3. Create an Incoming Webhook in your Slack workspace
  4. Paste the webhook URL and save
  5. Enable Slack alerts on your monitors
D

Discord

  1. Go to your Discord server's Channel Settings → Integrations → Webhooks
  2. Create a new webhook and copy the URL
  3. In CronRabbit, go to Workspace Settings → Integrations → Add Discord
  4. Paste the webhook URL and save
P

Pushover

  1. Create a Pushover account and install the app
  2. Create an Application in Pushover to get an API Token
  3. In CronRabbit, add a Pushover integration with your User Key and API Token
  4. Receive push notifications on your phone

Custom Webhook

Send alerts to any HTTP endpoint. Perfect for PagerDuty, OpsGenie, or custom automation.

Webhook Payload:
{
  "monitor_id": "abc123...",
  "monitor_name": "Database Backup",
  "status": "down",
  "workspace": "Production",
  "timestamp": "2026-01-29T10:00:00Z"
}

Webhooks are signed with HMAC-SHA256. Verify the X-CronRabbit-Signature header to authenticate.

Cron Expression Reference

CronRabbit uses standard 5-field cron expressions.

*
Minute
(0-59)
*
Hour
(0-23)
*
Day
(1-31)
*
Month
(1-12)
*
Weekday
(0-6)

Common Examples

ExpressionDescription
* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour (at minute 0)
0 2 * * *Daily at 2:00 AM
0 0 * * 0Weekly on Sunday at midnight
0 0 1 * *Monthly on the 1st at midnight
0 9-17 * * 1-5Hourly during business hours (Mon-Fri, 9AM-5PM)

Ready to Start Monitoring?

Create your free account and add your first monitor in under 5 minutes.