Everything an AI agent can do with the Sentry API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints37
API versionv0
Last updated23 June 2026
Orientation

How the Sentry API works.

The Sentry API is how an app or AI agent works with a Sentry organization: listing and triaging the issues an application is reporting, reading the underlying error events, creating and updating projects, and recording releases and their deploys. Access is granted through an auth token and a set of scopes that decide what each call can read or write, and an agent is limited to the organization and the areas its scopes reach. Sentry can also push events to a receiver URL when something happens, such as an issue being created or an alert firing.

37Endpoints
6Capability groups
20Read
17Write
15Permissions
Authentication
Every call needs an auth token sent as 'Authorization: Bearer '. Three token kinds exist: an organization auth token and an internal-integration token both act as the organization, while a user auth token acts as a person and is required by the handful of endpoints that need a user identity. A legacy DSN-based method authenticates a small set of endpoints with 'Authorization: DSN '. Older API keys sent over HTTP Basic auth are deprecated.
Permissions
A token carries a space-separated list of scopes, each naming an area and a level. The areas are org, project, team, member, and event, and the levels read, write, and admin widen in turn, so project:admin includes project:write and project:read. Releases use the dedicated project:releases scope, and CI-style work can use org:ci. The scopes a token is granted bound everything it can do.
Versioning
The web API is on a single version, v0. Public endpoints are generally stable, while endpoints marked beta can change. There is no dated version header to pin, so changes ship continuously and are announced through the changelog and an API deprecation policy that governs how endpoints are retired.
Data model
The API is resource-oriented JSON over HTTPS, served from region domains such as us.sentry.io, de.sentry.io, and the default sentry.io. Resources nest under an organization, identified by id or slug: projects, teams, members, and releases live at the organization level, while issues and events are the records an application reports. Single-issue methods are organization-scoped, whereas listing and bulk-mutating issues are project-scoped.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Sentry determines what it can reach. There are a few routes, each governed by the token behind it and the scopes that token carries.

Ways to connect

Web API (v0)

The web API answers at region domains such as us.sentry.io, de.sentry.io, and the default sentry.io, under the /api/0/ path. It is on a single version, v0, with public endpoints generally stable and beta endpoints subject to change.

Best forConnecting an app or AI agent to Sentry.
Governed byThe auth token and the scopes it carries.
Docs ↗

MCP server (Model Context Protocol)

Sentry hosts a remote MCP server at https://mcp.sentry.dev/mcp, launched June 2025, that lets an agent reach issues, errors, projects, and Seer analysis through the Model Context Protocol. It signs in with OAuth through an existing Sentry organization, with nothing to install. It exposes around 16 tools.

Best forConnecting an AI agent or coding assistant to Sentry.
Governed byThe OAuth grant made when signing in, and the Sentry organization it is for.
Docs ↗

Webhooks (internal integration)

An internal integration registers a receiver URL and Sentry posts a JSON payload when a chosen resource fires. The Sentry-Hook-Resource header names the resource, and the Sentry-Hook-Signature header is an HMAC-SHA256 of the body using the client secret, which the receiver checks.

Best forReceiving events without polling.
Governed byThe internal integration's subscription and its client secret.
Docs ↗
Authentication

Internal integration token

An internal integration created inside a Sentry organization issues a token that acts as the organization, with the scopes chosen when it was set up. It is the usual choice for an automation, because the scopes are explicit and it is not tied to one person's account.

TokenInternal integration auth token
Best forAutomations and AI agents acting as the organization
Docs ↗

Organization auth token

An organization auth token authenticates as the organization and is passed as a Bearer token. It suits scripts and CI tasks that act for the organization rather than a single user.

TokenOrganization auth token
Best forOrganization-level scripting and CI
Docs ↗

User auth token

A user auth token is created under a person's account settings with chosen scopes and acts as that user. Some endpoints require a token associated with a user rather than an organization.

TokenUser auth token
Best forEndpoints that need a user identity
Docs ↗

DSN authentication

A small set of endpoints can authenticate with a project's DSN, which acts as a client key, passed as 'Authorization: DSN '. It covers only the limited endpoints that support it.

TokenDSN (client key)
Best forThe few endpoints that accept a DSN
Docs ↗
Capability map

What an AI agent can do in Sentry.

The Sentry API is split into areas an agent can act on, such as issues and events, projects, organizations, teams, and releases. Each area has its own methods and its own scopes, and some grant access to far more than others.

Endpoint reference

Every Sentry API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Issues & events

List a project's issues, retrieve, update, and delete a single issue, bulk-mutate a list of issues, and read the error events behind an issue or a project.9

Listing a project's issues is project-scoped in the path but governed by the event:read scope, not a project scope.

Acts onissue
Permission (capability)event:read
VersionAvailable since the API’s base version
Webhook eventissue
Rate limitStandard limits apply

Single-issue methods are organization-scoped in the path. Any of event:read, event:write, or event:admin satisfies this read.

Acts onissue
Permission (capability)event:read
VersionAvailable since the API’s base version
Webhook eventissue
Rate limitStandard limits apply

Resolving, ignoring, and assigning all go through this method. event:admin also satisfies it.

Acts onissue
Permission (capability)event:write
VersionAvailable since the API’s base version
Webhook eventissue
Rate limitStandard limits apply

Deleting an issue needs event:admin, the highest event level.

Acts onissue
Permission (capability)event:admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Bulk mutate is project-scoped in the path, unlike the single-issue methods, but is governed by event:write.

Acts onissue
Permission (capability)event:write
VersionAvailable since the API’s base version
Webhook eventissue
Rate limitStandard limits apply

Any of event:read, event:write, or event:admin satisfies this read.

Acts onevent
Permission (capability)event:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Any of event:read, event:write, or event:admin satisfies this read.

Acts onevent
Permission (capability)event:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Project-level event listing uses a project scope, not event:read. Any of project:read, project:write, or project:admin satisfies it.

Acts onevent
Permission (capability)project:read
VersionAvailable since the API’s base version
Webhook eventerror
Rate limitStandard limits apply

Any of project:read, project:write, or project:admin satisfies this read.

Acts onevent
Permission (capability)project:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Projects

Create a project on a team, retrieve and update a project, delete a project, and list its observed users and client keys.6

A project is created under a team, so the path is team-scoped. project:admin also satisfies it.

Acts onproject
Permission (capability)project:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Any of project:read, project:write, or project:admin satisfies this read.

Acts onproject
Permission (capability)project:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

project:admin also satisfies this write.

Acts onproject
Permission (capability)project:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Deleting a project needs project:admin, the highest project level.

Acts onproject
Permission (capability)project:admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

These are end users seen in events, not Sentry members. Any of project:read, project:write, or project:admin satisfies it.

Acts onproject user
Permission (capability)project:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A client key is the DSN an SDK uses to send events. Any of project:read, project:write, or project:admin satisfies it.

Acts onclient key
Permission (capability)project:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Organizations

Retrieve an organization, update its settings, and list the projects it contains.3

Any of org:read, org:write, or org:admin satisfies this read.

Acts onorganization
Permission (capability)org:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

org:admin also satisfies this write.

Acts onorganization
Permission (capability)org:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Any of org:read, org:write, or org:admin satisfies this read.

Acts onproject
Permission (capability)org:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Teams

List an organization's teams, create a team, retrieve, update, and delete a team, and list its projects and members.7

Listing teams is governed by org:read, not team:read. Any of org:read, org:write, or org:admin satisfies it.

Acts onteam
Permission (capability)org:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

org:write and org:admin also satisfy this write.

Acts onteam
Permission (capability)team:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Any of team:read, team:write, or team:admin satisfies this read.

Acts onteam
Permission (capability)team:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

team:admin also satisfies this write.

Acts onteam
Permission (capability)team:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Deleting a team needs team:admin, the highest team level.

Acts onteam
Permission (capability)team:admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Listing a team's projects uses a project scope. Any of project:read, project:write, or project:admin satisfies it.

Acts onproject
Permission (capability)project:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Any of team:read, team:write, or team:admin satisfies this read.

Acts onteam member
Permission (capability)team:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Releases

List and create releases, retrieve, update, and delete a release, and list and create the deploys recorded against a release.7

Releases use the dedicated project:releases scope rather than a project level.

Acts onrelease
Permission (capability)project:releases
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Creating a release uses the project:releases scope.

Acts onrelease
Permission (capability)project:releases
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Reading a release also accepts org:ci, project:read, project:write, or project:admin.

Acts onrelease
Permission (capability)project:releases
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Updating a release also accepts org:ci, project:write, or project:admin.

Acts onrelease
Permission (capability)project:releases
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Deleting a release also accepts project:admin.

Acts onrelease
Permission (capability)project:releases
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Reading deploys also accepts org:ci, project:read, project:write, or project:admin.

Acts ondeploy
Permission (capability)project:releases
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Creating a deploy also accepts org:ci, project:write, or project:admin.

Acts ondeploy
Permission (capability)project:releases
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Members

List an organization's members, invite a new member, retrieve a member, update a member's roles, and remove a member.5

Any of member:read, member:write, or member:admin satisfies this read.

Acts onmember
Permission (capability)member:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

member:invite and member:admin also satisfy this write.

Acts onmember
Permission (capability)member:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Any of member:read, member:write, or member:admin satisfies this read.

Acts onmember
Permission (capability)member:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

member:invite and member:admin also satisfy this write.

Acts onmember
Permission (capability)member:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Removing a member needs member:admin, the highest member level.

Acts onmember
Permission (capability)member:admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Sentry can notify an app or AI agent when something happens, such as an issue being created or an alert firing, instead of the app repeatedly asking. An internal integration registers a receiver URL, and Sentry posts the event payload to it.

EventWhat it signalsTriggered by
issueFires on activity on an issue, such as it being created, resolved, assigned, or ignored. The Sentry-Hook-Resource header is issue and the payload's action field names the change.In-app only
errorFires when an error event is created, delivering the individual error to the receiver rather than the grouped issue.In-app only
event_alertFires when an issue alert rule is triggered, delivering the event that matched the alert.In-app only
metric_alertFires when a metric alert changes state, such as opening a critical or warning incident or resolving one.In-app only
commentFires when a comment is created, updated, or deleted on an issue.In-app only
installationFires when the integration is installed on or uninstalled from an organization.In-app only
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Sentry limits how fast an app or AI agent can call, through a per-window request count and a separate cap on how many calls can run at once. Both are tied to the caller's identity rather than the token, so adding more tokens does not raise the ceiling.

Request rate

Sentry rate-limits the web API in two ways at once. A per-window request count rejects calls once a caller exceeds the number allowed in the current time window, and a concurrency cap rejects calls when too many requests from the same caller are already in flight. The limiter keys on the caller's identity rather than the token or cookie, so issuing more tokens does not raise the ceiling. Every response carries the current state in headers: X-Sentry-Rate-Limit-Limit and X-Sentry-Rate-Limit-Remaining for the window, X-Sentry-Rate-Limit-Reset for when it resets as a Unix timestamp, and X-Sentry-Rate-Limit-ConcurrentLimit with X-Sentry-Rate-Limit-ConcurrentRemaining for the concurrency cap. A call that exceeds a limit returns 429, and Sentry recommends webhooks over polling to stay under the limits.

Pagination

List endpoints use cursor-based pagination through the Link header. Each response returns both a previous and a next link, each marked results="true" or results="false" so a caller knows whether that page holds data, and the cursor is an opaque value passed back as the cursor query parameter. List endpoints commonly return 100 results per page. The next link should be followed rather than building the cursor by hand.

Request size

Requests and responses are JSON. Event and issue lists are paginated rather than returned whole, so size is controlled by following the cursor through the Link header rather than by a single large response.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
401UnauthorizedThe auth token is missing, invalid, or expired, so the request is not authenticated.Send a valid token in the Authorization header, as 'Bearer ' or 'DSN ' for the endpoints that accept a DSN.
403ForbiddenThe request is authenticated but the token lacks the scope the endpoint requires, or the account cannot act on the resource.Grant the missing scope, such as event:write to update an issue or project:admin to delete a project, then retry.
404Not FoundThe organization, project, team, issue, or other resource does not exist, or the token cannot see it.Confirm the path and the organization or project identifier, and that the token has access to the resource.
429Too Many RequestsA rate limit was exceeded, either the per-window request count or the concurrency cap.Read the X-Sentry-Rate-Limit-Reset header and wait for the window to reset, or reduce concurrent requests, before retrying.
Versioning & freshness

Version history.

Sentry's web API is on a single version, v0, with public endpoints generally stable and beta endpoints subject to change. There is no dated version to pin, so changes ship continuously and are tracked in the changelog.

Version history

What changed, and when

Latest versionv0
v0Current version
The current web API version

The Sentry web API is on a single version, v0, served under the /api/0/ path. Public endpoints are generally stable, while endpoints marked beta can change. There is no dated version header, so changes ship continuously and are announced through the documentation changelog. The entries below are notable dated changes to the API and the way agents connect to Sentry.

What changed
  • Single-version API: public endpoints stable, beta endpoints subject to change
  • Region domains us.sentry.io, us2.sentry.io, and de.sentry.io reduce latency over the default host
  • Cursor-based pagination through the Link header, with both previous and next links on every response
2026-03-30Feature update
Release permissions documented

The permissions documentation was updated to spell out the create, read, update, and delete operations for releases within the scope model, clarifying how project:releases and the org:ci scope govern release and deploy endpoints. Dated 30 March 2026 in the documentation changelog.

What changed
  • Permissions docs expanded to cover release create, read, update, and delete operations
2026-03-13Feature update
API deprecation policy published

Sentry published a formal API deprecation policy describing how endpoints are retired or changed, giving integrations a defined process for handling removals on a single-version API. Dated 13 March 2026 in the documentation changelog.

What changed
  • Added a documented API deprecation policy governing how endpoints are retired or modified
2025-06-10Feature update
Hosted MCP server launched

Sentry launched a hosted, remote Model Context Protocol server at mcp.sentry.dev, letting an AI agent reach issues, errors, projects, and Seer analysis through MCP with OAuth sign-in and nothing to install. Announced on the Sentry blog on 10 June 2025.

What changed
  • Hosted remote MCP server at https://mcp.sentry.dev/mcp with OAuth sign-in
  • Exposes around 16 tools across issues, errors, projects, and Seer

An integration calls v0 directly; there is no version header to set.

Sentry documentation changelog ↗
Questions

Sentry API, answered.

Which token type should an integration use, organization or user?+
Most endpoints accept an organization auth token or an internal-integration token, both of which act as the organization and carry the scopes assigned when the token was created. A user auth token acts as a person and is only needed by the few endpoints that require a user identity. The internal-integration token is the usual choice for an automation, because its scopes are set explicitly and it is not tied to one person's account.
How do scopes work, and what does a level like admin grant?+
A scope names an area and a level, such as project:read or member:admin. Within an area the levels nest: read covers GET, write adds the create and update methods, and admin adds delete, so a higher level includes the ones below it. Releases are governed by the separate project:releases scope rather than a project level, and some release methods also accept org:ci. A token can only do what its scopes allow.
What are the rate limits, and what happens when one is hit?+
Sentry applies a per-window request count and a separate concurrency cap, both keyed on the caller's identity so more tokens do not help. The response headers report the state: X-Sentry-Rate-Limit-Remaining and X-Sentry-Rate-Limit-Reset for the window, and X-Sentry-Rate-Limit-ConcurrentRemaining for the concurrency cap. Exceeding either returns 429, and Sentry recommends using webhooks instead of polling to avoid hitting the limits.
How does pagination work?+
Pagination is cursor-based and handled through the Link header. Each response includes a previous and a next link, each tagged results="true" or results="false" to show whether that page has data, and the cursor is an opaque token passed back as the cursor query parameter. Following the next link until its results flag is false walks the whole list, and list endpoints commonly return 100 records per page.
How can an agent receive events instead of polling Sentry?+
An internal integration can subscribe to webhooks. Sentry posts a JSON payload to a registered receiver URL when a chosen resource fires, such as an issue being created or an alert firing. The Sentry-Hook-Resource header names the resource, and the Sentry-Hook-Signature header is an HMAC-SHA256 of the body using the integration's client secret, which the receiver checks to confirm the payload came from Sentry. Webhooks are the recommended alternative to polling.
Does Sentry have an official MCP server?+
Yes. Sentry hosts a remote Model Context Protocol server at https://mcp.sentry.dev/mcp, launched in June 2025, that lets an AI agent reach Sentry issues, errors, projects, and Seer analysis through MCP. It uses OAuth to sign in through an existing Sentry organization, so there is nothing to install and no long-lived token on disk. Sentry recommends the hosted version over running the server locally.
Related

More developer API guides for agents

What is Bollard AI?

Control what every AI agent can do in Sentry.

Bollard AI sits between a team's AI agents and Sentry. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Sentry token.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Sentry
Triage Agent
Read issues and events ResourceOffReadFull use
Resolve and assign issues ActionOffReadFull use
Create and delete projects ResourceOffReadFull use
Remove organization members ActionOffReadFull use
Per-agent access, set in Bollard AI, not in Sentry