list_error_groups
List the project's application-error groups — the fingerprinted, deduplicated exceptions your telemetry agent reports (the Dashboard's Telemetry → Errors drilldown). Each group collapses identical errors (by exception type + normalized stack) into one row with an occurrence count, level, first/last-seen times, the latest stack + URL, and any linked GitHub issue.
Request
GET /api/v1/ops/projects/{project}/telemetry/errors
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
project | path | string | yes | The project's public id. |
limit | query | integer | no | Max groups to return (default 50, max 200). |
status | query | string | no | Filter by status, e.g. open or resolved. |
- cURL
- CLI
- MCP
curl -H "Authorization: Bearer $TESTVIBE_API_KEY" \
"$TESTVIBE_SERVER/api/v1/ops/projects/$PROJECT/telemetry/errors?status=open&limit=20"
testvibe telemetry errors --status open --limit 20
Tool list_error_groups — optional limit, status.
Response
[
{
"groupId": 314,
"fingerprint": "a1b2c3…",
"source": "testvibe-web-prod",
"level": "error",
"exceptionType": "System.NullReferenceException",
"title": "Object reference not set… (CheckoutView.SubmitAsync)",
"count": 27,
"status": "open",
"firstSeenUtc": "2026-07-05T09:12:00Z",
"lastSeenUtc": "2026-07-06T14:58:41Z",
"lastUrl": "https://app.example.com/checkout",
"lastStack": "System.NullReferenceException: …",
"githubIssueNumber": 57,
"githubIssueUrl": "https://github.com/…/issues/57"
}
]
lastStack is trimmed to ~4000 chars. githubIssueNumber/githubIssueUrl are populated when the auto-filer has opened an issue for a first-party error group.
Errors
| HTTP | When |
|---|---|
404 not_found | No such project in this workspace. |