Overview
- Endpoint:
POST https://app.periscope.sh/api/webhooks/deployments - Authentication: Bearer token (API key from Periscope settings)
- Format: JSON
- Idempotent: Duplicate
deploymentIdvalues update the existing record
Setup
1
Generate an API key
Go to Settings > Deployments in the Periscope dashboard and click Generate API Key. The key is scoped to your organization.
2
Store the key as a secret
Add the API key as a secret in your CI/CD system:
- GitHub Actions: Repository or organization secret
- Azure DevOps: Pipeline variable (secret)
- Jenkins: Credentials store
- GitLab CI: CI/CD variable (masked)
3
Add the webhook call to your pipeline
Add an HTTP POST after your deployment step completes. See the CI/CD examples below for platform-specific snippets.
Payload schema
Required fields
Optional fields
The
commitSha field is the most important optional detail beyond the required fields. Without an accurate commit SHA, Periscope cannot link deployments to PRs, and lead time data will be empty.Example payloads
Minimal (required fields only)
Minimal (required fields only)
Complete (all fields)
Complete (all fields)
In-progress deployment
In-progress deployment
Failed deployment
Failed deployment
CI/CD examples
GitHub Actions
Azure DevOps
Generic curl
Validation rules
The webhook validates your payload before processing:deploymentId,commitSha,environment,status, andstartedAtare all required stringscommitShamust be 5-40 hexadecimal charactersstatusmust be one of:pending,in_progress,success,failure,cancelled,rolled_backstartedAtandcompletedAtmust be valid ISO 8601 datescompletedAtis required when status is a terminal state (success,failure,cancelled,rolled_back)
Idempotency
ThedeploymentId field is used for idempotency. If you send a payload with a deploymentId that already exists for your organization, Periscope updates the existing deployment record rather than creating a duplicate.
This is useful for:
- Sending an initial
in_progressevent, then updating withsuccessorfailurewhen the deployment completes - Safely retrying failed webhook calls without worrying about duplicates
PR linking
Periscope automatically links deployments to merged PRs using thecommitSha in your payload. This is what powers the lead time for changes metric. Providing the service field improves matching accuracy.
Free trial
If your organization is on the Free plan, sending your first deployment event starts a 14-day trial of Business features — including all DORA metrics, the MCP server, and AI-powered risk signals.Response format
Success (201 Created):API reference
See the full API reference for the deployment webhook endpoint.