The simplest job scheduling API
Booper is a simple API for scheduling HTTP requests, with support for automatic retries, logging, webhooks, and idempotency.
1# The following command will trigger a toast2# notification to appear in the lower right corner3# of this page in 10 seconds. Try it out!45npx @booper/cli run \6 POST https://scheduler.booper.dev/api/broadcast \7 --data 'author=Demo user' \8 --data 'content=Hello world' \9 --data 'channel=toast' \10 --in '10 seconds'
Our goals
Our goal here is pretty simple: we just want to make it extremely easy to schedule a delayed or recurring job.
You should be able to enqueue a new job in seconds. Turn a schedule on or off with the flick of a switch. Edit the cadence of a schedule without redeploying anything. Persist state between jobs without adding a database.
Webhook events? We got you covered. Idempotency? Heck yeah. Logs? So many logs.
These days, it's trivial to hack together a script and deploy it as an API. With tools like Replit, Vercel, and Fly, you can have something written and deployed in minutes, all for free.
Shouldn't scheduling stuff be just as simple?
Easy as 1, 2, 3
Just spin up an API endpoint, create a scheduled job, and start monitoring. All in less than 2 minutes.
1import express from "express";23const app = express();4const port = process.env.PORT || 3000;56const notify = async () => {...};78app.get("/api/run", async (req, res) => {9 const response = await fetch(10 'https://scheduler.booper.dev/api/ping'11 );1213 if (!response.ok) {14 await notify("API is down!")1516 return res.json({ ok: false });17 }1819 const data = await response.json();2021 return res.json({ ok: true, data });22});2324app.listen(port, () =>25 console.log("Server running...")26);
npx @booper/cli run \GET https://healthcheck.me.repl.co/api/run \--every "10 seconds"
Try it now
See the API in action with a simple scheduled message queue.
Loading jobs...
Built for developers
No setup required
Get started without creating an account with our free public API key.
Flexible scheduling
Create one-off or recurring schedules by specifying a timestamp, a time from now, or a crontab.
Automatic retries
When jobs fail they will be retried again in the future using an exponential backoff algorithm.
Webhook events
Your jobs and the HTTP requests they execute are logged and emitted as webhook events.
Idempotency support
Optionally set idempotency keys on your jobs to ensure they are never run more than once.
Robust API
We offer a simple, robust, and predictable REST API with SDKs in your favorite languages.
Start today
No signup required. Start using the API now with our free public API key.