create_endpoint
Creates a dead-man endpoint. Use cron+tz+grace_sec for a real schedule (mutually exclusive with interval_sec) or interval_sec for plain silence detection. max_duration_sec alerts when a run opened by /in/:id/start hangs. May return 402 x402 when it leaves the free tier. This response is the only one that shows the monitor's token and the templates — keep them. The second monitor, or an interval below the free minimum, answers 402 with accepts[]: pay and repeat. A miss alerts at most once per 24h — or per alert_repeat_sec, or per interval, whichever is longer. Send cron+tz+grace_sec instead of interval_sec for a real schedule: a 03:00 backup is late at 03:01:30, not 24 hours later. max_duration_sec catches the other failure: a run that starts and hangs, which plain silence detection only notices at the next scheduled time.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA time zone for cron, default UTC | |
| cron | No | five-field cron, e.g. 0 3 * * * | |
| name | Yes | how you will recognise the routine in an alert; required, trimmed, max 80 chars, punctuation alone is rejected | |
| tags | No | up to 8 tags to group the monitor; lower-cased, [a-z0-9._-], max 32 chars each | |
| alert_to | No | E-mail to alert on a miss; without it, the account is alerted. | |
| alert_url | No | Public HTTPS URL that receives a POST on a miss (Slack Incoming, Discord, n8n). | |
| grace_sec | No | tolerance after the scheduled time, default 90, min 30 | |
| guest_token | Yes | ||
| interval_sec | No | Tolerated silence, in seconds. Below the free minimum, it costs. | |
| paused_until | No | maintenance window end (UTC ISO), max 30 days ahead | |
| alert_repeat_sec | No | gap before the same incident alerts again, 3600..2592000; null keeps the 86400 default | |
| max_duration_sec | No | ceiling for an open run in seconds, 60..86400; null or 0 turns it off |