Documentation
How-to guides
Most of Xpiry watches your domains from the outside, no setup required. These guides cover the features where you wire something in: the ping URLs, DSN, and public pages Xpiry generates for you. Looking for endpoints and payloads? See the REST API reference.
Heartbeat monitors
Pro & Agency
Confirm a job that Xpiry can't see actually ran: a nightly backup, a cron task, a queue worker. The job
pings a tokenized URL when it finishes; if a ping doesn't arrive on schedule, the monitor flips to
down and you're alerted.
- On a domain, open the Monitors tab and add a heartbeat monitor with the interval you expect (e.g. every 24h).
- Copy its ping URL — it's shown right on the monitor row, and in the editor.
- Have your job curl that URL when it succeeds.
Report a run
Time the run automatically
Set a max_duration_seconds on the monitor to flag slow runs as
degraded. Either report the duration yourself with
?duration= (seconds), or ping /start
when the job begins and success when it ends — Xpiry measures the elapsed time for you.
A /start on its own isn't a check-in, so a job that starts but never finishes still
trips the missed-heartbeat alert. Failures and orphaned starts never invent a duration. Both
GET and POST work, and the URL is tokenized
(no auth header) — keep it secret. Full parameters and responses are in the
API reference.
Metric monitors
Pro & Agency
Watch a number you push: queue depth, disk usage, records processed, a custom SLA. Add a metric monitor with
warn and critical thresholds (and which
direction is bad), then push values to the same kind of ping URL.
Show the latest value on your status page, or keep it private. Thresholds and status values are documented in the API reference.
Exception tracking
All plansCapture errors from your application with the Sentry SDK you already use. Xpiry gives each domain a Sentry-compatible DSN; point any official Sentry SDK at it and exceptions are grouped into issues, alerted, and collapsed into hourly digests when they repeat.
- On a domain, open the Errors tab and turn on exception tracking.
- Copy the DSN shown there (use “Send test exception” to confirm the wiring).
- Pass it to
Sentry.initin your app — no other Xpiry-specific code.
DSN format
Point your SDK at it
SDKs send events to /api/<PROJECT_ID>/envelope automatically (the legacy
/store endpoint is also accepted), so any language with an official Sentry SDK works.
Every plan includes exception tracking with a per-plan daily event budget and retention window (shown on the Errors tab).
Over-budget events are rejected with a 429 so your SDK backs off. The DSN is a
credential — anyone with it can post events, so keep it in your app config, not client-side source you can't trust.
Public status pages
Pro & AgencyTurn a domain's checks, monitors, and incidents into a public page. Enable it on the Incidents tab and Xpiry generates a hosted URL:
Point a custom domain (e.g. status.yourcompany.com) at it with a
CNAME, choose which monitors appear, post incident updates, and combine several
domains onto one unified page. It all lives in the dashboard — there's nothing to deploy.
REST API
Pro & AgencyManage everything above programmatically: add domains, create monitors (the response hands back the ping URL), record events, and read status. Authenticate with a Bearer API key from your Account settings. See the REST API reference for endpoints and payloads.