Create one job
Send a target URL, JSON body, and future run time to the scheduling API.
Quickstart
This quickstart takes you from account creation to a real scheduled HTTPS delivery with retries, logs, cancellation, and dashboard monitoring.
curl -X POST https://webhookscheduler.com/api/v1/schedule \
-H "Content-Type: application/json" \
-H "x-api-key: wh_live_YOUR_KEY" \
-d '{
"url": "https://api.example.com/webhook",
"method": "POST",
"body": { "event": "trial.reminder" },
"runAt": "2026-06-04T09:00:00.000Z",
"idempotencyKey": "trial-reminder:user_123"
}'Send a target URL, JSON body, and future run time to the scheduling API.
Open the dashboard to inspect queued, delivered, failed, retrying, and canceled jobs.
Use HTTPS targets, idempotency keys, retries, and visible logs from the start.
Start from the webhook scheduler tool or create a free account directly. The dashboard is where you confirm jobs, inspect delivery attempts, and manage API keys.
Open /dashboard/api-keys, create one API key, and store it in your backend environment. Never expose live API keys in frontend code or public no-code pages.
Use POST /api/v1/schedule to create a delayed HTTP job. The request body contains the public HTTPS URL, method, JSON payload, optional idempotency key, and ISO run time.
await fetch("https://webhookscheduler.com/api/v1/schedule", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.WEBHOOK_SCHEDULER_API_KEY
},
body: JSON.stringify({
url: "https://api.example.com/webhook",
method: "POST",
body: { event: "trial.reminder" },
runAt: new Date(Date.now() + 60 * 60 * 1000).toISOString(),
idempotencyKey: "trial-reminder:user_123"
})
});After scheduling, open the dashboard to see status, target host, timing, attempts, response code, latency, and retry state. Use the job detail page when a customer or automation needs proof of what happened.
Pending jobs can be canceled before dispatch. Failed deliveries can retry according to your plan limits, with each attempt kept visible for debugging.
import fetch from "node-fetch";
export async function scheduleWebhook() {
return fetch("https://webhookscheduler.com/api/v1/schedule", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.WEBHOOK_SCHEDULER_API_KEY!
},
body: JSON.stringify({
url: "https://api.example.com/webhook",
body: { event: "follow_up" },
runAt: new Date(Date.now() + 10 * 60 * 1000).toISOString()
})
});
}Yes. Use the /try page to prepare a scheduled webhook, then confirm it from the dashboard after signup.
Yes, as long as the destination is a public HTTPS webhook URL and the payload is valid JSON.
Failed deliveries can retry according to plan limits, and each attempt is visible in the dashboard.
Start with the free plan, test a real delivery, then upgrade when the workflow becomes production critical.
Try a webhook