Sentry · AsyncAPI Specification
Sentry System Webhooks
Version
View Spec
View on GitHub
APMApplication MonitoringBug TrackingDeveloper ToolsError TrackingObservabilityPerformance MonitoringReal-Time MonitoringAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-18'
method: searched
source: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/
type: Webhooks
provider: Sentry
providerId: sentry-system
asyncapi_published: false
asyncapi_probe:
note: >-
Sentry publishes NO AsyncAPI document. Probed 2026-09-18 — docs.sentry.io/asyncapi.yaml 404,
docs.sentry.io/asyncapi.json 404, getsentry/sentry-docs and getsentry/sentry raw asyncapi.yaml 404.
sentry.io/asyncapi.yaml answers HTTP 200 but with content-type text/html and a <!DOCTYPE html>
body — the marketing SPA catch-all, NOT a spec. A prior round wired
`asyncapi/sentry-webhooks-asyncapi.yml` as type AsyncAPI; that file never existed on disk and the
pointer has been replaced by this searched webhook catalog (roadmap#376).
probes:
- {url: 'https://docs.sentry.io/asyncapi.yaml', status: 404}
- {url: 'https://docs.sentry.io/asyncapi.json', status: 404}
- {url: 'https://sentry.io/asyncapi.yaml', status: 200, content_type: text/html, verdict: spa-shell-not-a-spec}
- {url: 'https://raw.githubusercontent.com/getsentry/sentry-docs/master/asyncapi.yaml', status: 404}
- {url: 'https://raw.githubusercontent.com/getsentry/sentry/master/asyncapi.yaml', status: 404}
description: >-
Sentry's event surface is the Integration Platform webhook system. A public or internal Sentry
integration subscribes to one or more resources; Sentry POSTs a JSON payload to the integration's
configured webhook URL. There is no polling contract, no streaming endpoint and no message broker —
outbound HTTP webhooks are the whole event surface.
delivery:
style: outbound-http-webhook
method: POST
content_type: application/json
timeout: 1s
timeout_note: Webhooks should respond within 1 second; anything slower is treated as a timeout.
subscription: >-
Configured per integration in Settings > Developer Settings (internal) or on the public
integration's definition. Each resource is subscribed to individually.
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/
headers:
- name: Content-Type
value: application/json
- name: Request-ID
description: Unique identifier for the delivery, for tracking and debugging.
- name: Sentry-Hook-Resource
description: Which resource triggered the delivery (see resources[] below).
- name: Sentry-Hook-Timestamp
description: Delivery timestamp.
- name: Sentry-Hook-Signature
description: HMAC-SHA256 of the raw JSON body, keyed with the integration's Client Secret.
security:
signature:
algorithm: HMAC-SHA256
header: Sentry-Hook-Signature
key: the integration's Client Secret
signed_payload: the JSON-serialized request body
verification_docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/
note: Sentry publishes JavaScript and Python verification snippets on the webhooks page.
envelope:
fields:
- {name: action, type: string, description: The action that corresponds with the resource in the header.}
- {name: installation, type: object, description: 'Object carrying the installation uuid, so a delivery can be mapped to an install.'}
- {name: data, type: object, description: Resource-specific payload; shape differs per resource and can be customized via UI components.}
- {name: actor, type: object, description: 'Who triggered it — a user, the integration application, or Sentry itself (type user|application).'}
resources:
- resource: installation
name: Installation
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/installation/
actions: [created, deleted]
data_key: installation
note: Delivered to public integrations on install and uninstall.
- resource: event_alert
name: Issue Alerts
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/issue-alerts/
actions: [triggered]
data_key: event
fields: [data.event.url, data.event.web_url, data.event.issue_url, data.event.issue_id, data.triggered_rule, data.issue_alert.title, data.issue_alert.settings]
note: Delivered to integrations exposed as issue-alert actions.
- resource: metric_alert
name: Metric Alerts
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/metric-alerts/
actions: [critical, warning, resolved]
data_key: metric_alert
fields: [data.metric_alert.alert_rule, data.metric_alert.alert_rule.triggers, data.description_text, data.description_title, data.web_url]
- resource: activity_alert
name: Activity Alerts
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/activity-alerts/
actions: [triggered]
data_key: activity
activity_types: [seer_root_cause_started, seer_root_cause_completed, seer_solution_started, seer_solution_completed, seer_coding_started, seer_coding_completed, seer_pr_created, seer_pr_iteration_started, seer_pr_iteration_completed]
fields: [data.issue, data.activity.type, data.activity.details, data.alert.title, data.alert.url, data.alert.web_url]
- resource: issue
name: Issues
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/issues/
actions: [created, resolved, assigned, archived, unresolved]
data_key: issue
fields: [data.issue.url, data.issue.web_url, data.issue.project_url, data.issue.status, data.issue.substatus, data.issue.statusDetails]
substatuses: [archived_until_escalating, archived_until_condition_met, archived_forever, escalating, ongoing, regressed, new]
rest_binding: {operationId: updateIssue, note: 'The same status transitions this webhook reports are the ones updateIssue (PUT /issues/{issue_id}/) performs.'}
- resource: comment
name: Comments
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/comments/
actions: [created, updated, deleted]
fields: [data.comment, data.project_slug, data.comment_id, data.issue_id, data.timestamp]
- resource: error
name: Errors
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/errors/
actions: [created]
data_key: error
fields: [data.error.url, data.error.web_url, data.error.issue_url, data.error.user]
availability: Business and Enterprise plans only.
- resource: seer
name: Seer
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/seer/
actions: [root_cause_started, root_cause_completed, solution_started, solution_completed, coding_started, coding_completed, pr_created]
event_names: [seer.root_cause_started, seer.root_cause_completed, seer.solution_started, seer.solution_completed, seer.coding_started, seer.coding_completed, seer.pr_created]
fields: [data.run_id, data.group_id]
rest_binding: {operationId: startSeerIssueFix, note: 'These events track the run started by POST /issues/{issue_id}/seer/autofix/ (startSeerIssueFix); retrieveSeerIssueFixState polls the same state.'}
- resource: preprod_artifact
name: Preprod Artifacts
docs: https://docs.sentry.io/organization/integrations/integration-platform/webhooks/preprod-artifacts/
actions: [size_analysis_completed, build_distribution_completed]
event_names: [preprod_artifact.size_analysis_completed, preprod_artifact.build_distribution_completed]
fields: [data.buildId, data.organizationSlug, data.projectSlug, data.platform, data.state, data.appInfo]
states: [COMPLETED, FAILED]
requires: 'project:read permission or higher; select preprod_artifact as the webhook type on an internal integration.'
counts:
resources: 9
actions: 30
related:
service_hooks:
note: >-
Separate from the Integration Platform, Sentry's REST API also exposes project-level service hooks
(a legacy per-project webhook), captured in the OpenAPI as the Service Hooks API.
spec: openapi/sentry-system-service-hooks-api-openapi.yml
operations: [listProjectServiceHooks, createProjectServiceHook, retrieveProjectServiceHook, updateProjectServiceHook, deleteProjectServiceHook]
docs_index: https://docs.sentry.io/organization/integrations/integration-platform/
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/sentry-system-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.