The dashboard calls these records Issues. The public API paths remain under
/errors, and the
CLI remains squasher errors, for compatibility. Do not rewrite those contract names to
/issues.Error group IDs
Each error group has two IDs:id- the UUID of the group.short_id- a short ID that is unique in the project, for exampleiss_42. Squasher gives the next number to each new group in the project. The first group in a project isiss_1. A short ID never changes and is not used again.
{error_group_id} path parameter on this page accepts the UUID or the short ID. The
dashboard issue URL accepts both too. Request bodies, such as duplicate_error_group_ids, take
UUIDs only.
List error groups
from- optional ISO 8601 start timestampto- optional ISO 8601 end timestampstatus- one ofunresolved,resolved,ignored,muted, orallpriority- one oflow,medium,high, orcriticallevel- severity level filterservice-service.namefilterenvironment- deployment environment filterq- substring search across title, type, fingerprint, service, and environment. A short ID (iss_42,#42, or42) also finds that group.limitoffsetsort- one oflast_seen,first_seen,event_count, orpriority
id, short_id, priority, bookmarked, subscribed, service_name, and environment when known, plus facets arrays for service, environment, and level filter dropdowns. Each group also exposes assigned_to and ai_assigned; when ai_assigned is true and assigned_to is null the Squasher agent currently owns the group (auto-triage assignment).
Each group may also include an optional automation object summarizing the latest AI activity for that group: triage_status, plus fix_run and triage_run (each with the run’s intent, status, stage, and a pr_url when a pull request has been opened). Any field is null when it does not apply, and automation itself is null when there is no AI activity.
Count error groups per status
status, sort, limit, and offset: from,
to, priority, level, service, environment, and q.
Example response:
total is the sum of the four counts. Merged duplicate groups are not counted, the same as in
the list.
CLI:
Get one error group
{error_group_id} is the UUID or the short ID, for example
GET /v1/projects/{project_id}/errors/iss_42. The response has both id and short_id.
The response can include the group title, fingerprint, priority, bookmark and subscription state for the current user, event counts, timestamps, current AI triage fields, merged_into when the group is an active duplicate, and merged_from for active duplicates merged into this canonical group.
Optional query parameters:
include_replay- set tofalseto skip replay linkage when you only need the core group fieldsfrom- optional ISO 8601 start timestamp for replay linkage lookupto- optional ISO 8601 end timestamp for replay linkage lookup
Update workflow metadata
assigned_to to assign or clear an owner. Setting assigned_to also clears the response field ai_assigned, signalling that a human has taken over from the Squasher agent. Use status to move the error group through unresolved, resolved, ignored, or muted. Use priority to set triage urgency. Use bookmarked and subscribed to update the current user’s saved and notification state; those two fields require an OAuth user session and are rejected for API-key-only requests. Include at least one field in the body.
CLI:
Merge duplicate groups
merged_into so callers can link to the canonical group. Future runtime events that match a merged duplicate fingerprint increment the canonical group.
Unmerge a duplicate group
List related traces
from- optional ISO 8601 start timestampto- optional ISO 8601 end timestamp
List suspect commits
from- optional ISO 8601 start timestampto- optional ISO 8601 end timestamp
Read the AI triage result
AI triage runs in the background. The API has no endpoint that starts a triage run or lists triage runs. Read the latest result from the error group detail:triage_summary, triage_fix, and
triage_status. In list responses, the automation object also shows the status of the latest
triage and fix run.
To triage an issue again, open it in the dashboard and select Run triage in the Squasher
triage card. To investigate it with the Squasher Agent, send the issue link to the
Ask API, squasher ask, dashboard chat, or Slack. See
AI triage.
Agent handoff
Use this sequence for incident or bug investigation:- List unresolved groups with a bounded time window.
- Fetch one error group detail.
- Fetch related traces and suspect commits, and read the triage fields of the detail.
- Ask before updating status or assigning ownership.
squasher errors ... or MCP search("errors") followed by execute.