Skip to main content
Issues (also called groups) are aggregations of individual events that share the same root cause. The issues API lets you list, filter, update, and delete issues at both the project and organization level.

List issues for a project

GET /api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/issues/
Returns a list of issues bound to a project.
This endpoint is deprecated. Use List issues for an organization instead, which supports additional filtering and sorting options.
Required scope: event:read

Path parameters

organization_id_or_slug
string
required
The ID or slug of the organization.
project_id_or_slug
string
required
The ID or slug of the project.

Query parameters

query
string
A Sentry structured search query. Defaults to is:unresolved if not provided. Pass an empty string (query=) to return all issues regardless of status.
statsPeriod
string
The time period for inline stats. One of 24h, 14d, or "" to disable. Defaults to 24h.
shortIdLookup
boolean
Set to 1 to also search by short ID (e.g. PUMP-STATION-1).
cursor
string
Pagination cursor from the Link response header.

Example request

curl "https://sentry.io/api/0/projects/my-org/pump-station/issues/?query=is:unresolved" \
  -H "Authorization: Bearer <token>"

List issues for an organization

GET /api/0/organizations/{organization_id_or_slug}/issues/
Returns a list of issues across all projects in the organization. Supports rich filtering using Sentry’s search query syntax. Required scope: event:read

Path parameters

organization_id_or_slug
string
required
The ID or slug of the organization.

Query parameters

query
string
A Sentry structured search query. Defaults to is:unresolved. Examples:
  • is:unresolved — unresolved issues
  • is:resolved — resolved issues
  • assigned:me — issues assigned to you
  • level:error — error-level issues
  • issue.category:feedback — user feedback items
project
integer
Filter by project ID. Can be repeated for multiple projects.
environment
string
Filter by environment name.
statsPeriod
string
Time period for inline stats. One of 24h or 14d.
limit
integer
Number of results per page. Maximum is 100. Defaults to 25.
cursor
string
Pagination cursor from the Link response header.

Example request

curl "https://sentry.io/api/0/organizations/my-org/issues/?query=is:unresolved&environment=production&limit=25" \
  -H "Authorization: Bearer <token>"

Example response

[
  {
    "id": "1",
    "shortId": "PUMP-STATION-1",
    "title": "This is an example Python exception",
    "culprit": "raven.scripts.runner in main",
    "status": "unresolved",
    "statusDetails": {},
    "level": "error",
    "count": "1",
    "userCount": 0,
    "firstSeen": "2018-11-06T21:19:55Z",
    "lastSeen": "2018-11-06T21:19:55Z",
    "assignedTo": null,
    "isBookmarked": false,
    "isPublic": false,
    "isSubscribed": true,
    "hasSeen": false,
    "numComments": 0,
    "permalink": "https://sentry.io/the-interstellar-jurisdiction/pump-station/issues/1/",
    "project": {
      "id": "2",
      "name": "Pump Station",
      "slug": "pump-station"
    },
    "metadata": {
      "title": "This is an example Python exception"
    },
    "type": "default",
    "annotations": []
  }
]

Response fields

id
string
The unique ID of the issue.
shortId
string
A human-readable issue identifier (e.g. PUMP-STATION-1).
title
string
The issue title, derived from the exception or log message.
culprit
string
The code path or function where the error occurred.
status
string
The current status. One of unresolved, resolved, ignored, or reprocessing.
level
string
The severity level. One of fatal, error, warning, info, or debug.
count
string
The total number of events in this issue.
userCount
integer
The number of unique users affected.
firstSeen
string
ISO 8601 timestamp of when the issue was first seen.
lastSeen
string
ISO 8601 timestamp of when the issue was most recently seen.
assignedTo
object | null
The user or team the issue is assigned to, or null if unassigned.

Retrieve an issue

GET /api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/
Returns detailed information for a single issue, including activity, tags, and the most recent event summary. Required scope: event:read

Path parameters

organization_id_or_slug
string
required
The ID or slug of the organization.
issue_id
string
required
The ID of the issue.

Example request

curl https://sentry.io/api/0/organizations/my-org/issues/1/ \
  -H "Authorization: Bearer <token>"

Update an issue

PUT /api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/
Updates attributes on an individual issue. Only the fields you include in the request body are modified. Required scope: event:write

Path parameters

organization_id_or_slug
string
required
The ID or slug of the organization.
issue_id
string
required
The ID of the issue to update.

Request body

status
string
The new status. One of resolved, resolvedInNextRelease, unresolved, or ignored.
assignedTo
string
The actor ID or username of the user or team to assign the issue to. Use the format team:slug to assign to a team.
isBookmarked
boolean
Whether the current user bookmarks the issue.
isSubscribed
boolean
Whether the current user subscribes to workflow notifications for the issue.
isPublic
boolean
Whether to make the issue publicly viewable.
hasSeen
boolean
Marks the issue as seen or unseen for the current user.

Example request

curl -X PUT https://sentry.io/api/0/organizations/my-org/issues/1/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"status": "resolved"}'

Bulk update issues

PUT /api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/issues/
Updates multiple issues at once. Pass one or more id query parameters to specify which issues to update. Omit id to update all issues matching the optional status filter. Required scope: event:write

Query parameters

id
integer
The ID of an issue to update. Repeat this parameter for each issue: ?id=1&id=2&id=3.
status
string
Restrict the bulk operation to issues with this status. One of resolved, unresolved, ignored, or reprocessing.

Example request

curl -X PUT "https://sentry.io/api/0/projects/my-org/pump-station/issues/?id=1&id=2" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"status": "resolved"}'

Delete an issue

DELETE /api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/
Permanently removes an issue and all of its associated events. Required scope: event:admin
This operation is permanent and cannot be undone.

Example request

curl -X DELETE https://sentry.io/api/0/organizations/my-org/issues/1/ \
  -H "Authorization: Bearer <token>"
A successful deletion returns 202 Accepted.

Build docs developers (and LLMs) love