Scan on every deploy
Send one signed request when a deploy finishes. Regress scans the new build and reports anything that broke.
Generate a webhook secret
In Project settings, find Deploy webhook and click Generate secret. The webhook URL next to it already contains your project ID.
Save two CI secrets
Add
REGRESS_PROJECT_IDandREGRESS_WEBHOOK_SECRETas protected secrets in your CI.Call the webhook after your deploy step
- name: Start a Regress scan env: REGRESS_PROJECT_ID: ${{ secrets.REGRESS_PROJECT_ID }} REGRESS_WEBHOOK_SECRET: ${{ secrets.REGRESS_WEBHOOK_SECRET }} run: | BODY='{}' SIGNATURE=$(printf '%s' "$BODY" \ | openssl dgst -sha256 -hmac "$REGRESS_WEBHOOK_SECRET" -hex \ | awk '{print $NF}') curl --fail-with-body -X POST "https://api.regress.app/api/webhook/deploy/$REGRESS_PROJECT_ID" \ -H 'Content-Type: application/json' \ -H "x-regress-signature: sha256=$SIGNATURE" \ --data-raw "$BODY"The response includes a
checkRunId. Results appear on your dashboard within a few minutes.
Fail the build on a regression (optional)
To make your pipeline wait for the result, poll the status endpoint until status is completed or failed. Fail the build if the status is failed, or if flowsFailed or changeCount is above zero.
curl https://api.regress.app/api/webhook/deploy/$REGRESS_PROJECT_ID/status/$CHECK_RUN_ID
{
"id": "cr_a1b2c3d4",
"status": "completed",
"pagesChecked": 14,
"totalPages": 14,
"changeCount": 2,
"flowsTested": 6,
"flowsPassed": 5,
"flowsFailed": 1,
"completedAt": "2026-02-18T10:30:00Z"
}Good to know
The webhook accepts up to 10 requests a minute per project. Deploying with Vercel or another host? Run the same command from CI once the deploy finishes.