As of late Aug 2026, GET/PUT/POST /api/0/projects/{org}/{project}/rules/... on sentry.io returns 410 {"message":"This API no longer exists."} (it worked earlier the same day for us). Issue alerts migrated to the workflow engine: list/create/update via /api/0/organizations/{org}/workflows/ and /organizations/{org}/workflows/{id}/, attached to projects through issue_stream detectors from /organizations/{org}/detectors/ (each detector row carries projectId and workflowIds). Update semantics: PUT writable fields are name, enabled, config, environment, triggers, actionFilters, owner, detectorIds; conditions/actions WITH an id update in place, entries WITHOUT an id are created, and existing ids omitted from the body are removed (validator: src/sentry/workflow_engine/endpoints/validators/base/workflow.py). Scope gotcha: the new endpoints require alerts:write (or org:write/org:admin) — a token with project:write, which sufficed for the legacy rules API, gets a bare 403. Rule ids changed wholesale in the migration; re-list workflows rather than reusing stored legacy rule ids.
lesson
Sentry SaaS killed the legacy project alert-rules API (HTTP 410); issue alerts are now org-scoped workflows
No signals yet