Scheduled monitoring
A schedule re-runs a scan on a cron cadence and diffs each run against the last, so accessibility stays green between releases instead of drifting.
Create a schedule
Dashboard: on a product, set a cadence in the scan settings. API:
curl -X POST https://api.wholisphere.ai/v1/orgs/{orgId}/scheduled-scans \ -H "x-api-key: $WHOLISPHERE_API_KEY" \ -H "content-type: application/json" \ -d '{ "productId": "prod_…", "cron": "0 6 * * 1", "timezone": "America/New_York", "failOnRegression": true }'The cron parser is timezone- and DST-correct (it handles half-hour offsets like Asia/Kathmandu). Manage schedules with:
GET /v1/orgs/{orgId}/scheduled-scans # listGET /v1/orgs/{orgId}/scheduled-scans/{id} # detailPATCH /v1/orgs/{orgId}/scheduled-scans/{id} # update cadence / flagsPOST /v1/orgs/{orgId}/scheduled-scans/{id}/run-nowDELETE /v1/orgs/{orgId}/scheduled-scans/{id}When a schedule is due, the dispatcher creates a pending scan and emits scan.scheduled_due. Advancing the next run is crash-safe (the next-run time is advanced before dispatch).
Regression detection
On completion, a scheduled run diffs against the previous run of the same schedule. If conformance dropped, it emits scan.regressed with the criterion-by-criterion delta, and — when failOnRegression is set — marks the run failed so a CI gate can act on it.
Alerts
- Email — owners, admins, and editors can be emailed on regression (with the delta) and optionally on every completion. Toggle recipients in Settings. No receiver to build.
- Webhooks — subscribe to
scan.completed,scan.regressed, andscan.failedto route into your own systems (Slack, PagerDuty, a dashboard). See Webhooks.