Skip to main content

Overview

Cron Jobs let you schedule automated HTTP requests to any URL on a recurring schedule. Use them for health checks, data syncing, cleanup tasks, or triggering your own API endpoints — no external cron service needed.
Sendi’s email features like scheduled emails and campaigns are processed automatically by an internal scheduler. You don’t need to create cron jobs for those — they just work. This feature is for scheduling HTTP requests to your own endpoints.

How It Works

  1. Create a cron job in the dashboard with a name, URL, HTTP method, and cron schedule
  2. Sendi runs it — every minute, the scheduler checks for due jobs and executes them
  3. View results — each run is logged with status, HTTP response code, duration, and timestamp
  4. Pause/resume — disable a job without deleting it; re-enable when ready

Cron Schedule Syntax

Cron expressions use 5 fields:
┌───────── minute (0 - 59)
│ ┌───────── hour (0 - 23)
│ │ ┌───────── day of month (1 - 31)
│ │ │ ┌───────── month (1 - 12)
│ │ │ │ ┌───────── day of week (0 - 7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *

Common Schedules

ExpressionDescription
* * * * *Every minute
*/5 * * * *Every 5 minutes
*/15 * * * *Every 15 minutes
0 * * * *Every hour
0 */6 * * *Every 6 hours
0 0 * * *Daily at midnight
0 9 * * 1-5Weekdays at 9am
0 0 * * 1Every Monday at midnight

HTTP Methods

Supported methods: GET, POST, PUT, PATCH, DELETE. For POST, PUT, and PATCH requests, you can include a request body (e.g. JSON payload).

Headers

Add custom headers as JSON to authenticate with your endpoints:
{
  "Authorization": "Bearer your_api_key",
  "Content-Type": "application/json"
}

Run History

Every execution is logged with:
  • Statussuccess or failed
  • HTTP status code — the response code from your endpoint
  • Duration — how long the request took in milliseconds
  • Timestamp — when the run was executed
The last 50 runs are kept per job. Older runs are automatically cleaned up.

Timeouts

Each job has a 30-second timeout. If your endpoint doesn’t respond within 30 seconds, the run is marked as failed.

Plan Limits

FreePro
Cron jobs520

Use Cases

  • Health checks — ping your API every minute to monitor uptime
  • Keep services alive — prevent free-tier services (Render, Railway) from sleeping
  • Data sync — pull data from external APIs on a schedule
  • Cleanup tasks — delete expired sessions, old records, temp files
  • Scheduled reports — trigger daily/weekly report generation
  • Webhook triggers — POST to Slack, Discord, or any service on a schedule