Events
Session API for issue occurrences, timelines, releases seen, and crash-dialog feedback.
Requires a dashboard session. Org-scoped via RLS. Ingest remains DSN-only.
List events for an issue
GET /api/v1/issues/{issue_id}/events with a login cookie. Limit defaults to 50, clamped 1–200.
Cookie from login (see Issues):
curl -sS -b cookies.txt \
"http://localhost:8080/api/v1/issues/${ISSUE_ID}/events?limit=50&offset=0"GET /api/v1/issues/{issue_id}/events?limit=50&offset=0&release={optional}| Query | Default | Notes |
|---|---|---|
limit | 50 | clamped 1–200 |
offset | 0 | |
release | none | filter occurrences |
Response 200
{
"events": [
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"issue_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"occurred_at": "2026-09-17T12:00:00Z",
"environment": "local",
"release": "my-app@0.0.0",
"platform": "javascript",
"runtime_name": null,
"runtime_version": null,
"browser_name": "Chrome",
"os_name": "macOS",
"user_id": null,
"user_email": null,
"payload_json": {},
"stack_frames": [],
"breadcrumbs": []
}
],
"total": 42,
"has_more": false
}Missing issue → 404. UI counterpart: Product · Events.
Releases seen on an issue
GET /api/v1/issues/{issue_id}/releases{ "releases": ["my-app@0.0.0", "my-app@1.0.0"] }How do I read a timeline?
GET /api/v1/issues/{issue_id}/timeline?window=7dwindow | Bucketing |
|---|---|
7d (default) | hourly |
14d, 28d/30d, all | daily |
How do I read crash-dialog feedback?
Posted on ingest via user-feedback. Read-back:
GET /api/v1/events/{event_id}/feedbackReturns stored crash-dialog feedback for the event (org-scoped), or empty when none.
curl -sS -b cookies.txt \
"http://localhost:8080/api/v1/events/${EVENT_ID}/feedback"Why is payload_json empty?
Spike-valve counter-only accepts increment the issue but discard bodies. Later events for that fingerprint keep frames. Operators then see elevated event_count without matching stored rows. The hourly cap is the 403 path: Errors.
Can I GET events with the DSN?
No. The DSN is ingest only. Use the session cookie on GET /api/v1/issues/{id}/events. DSN headers return 401, and a cookie on envelope or store is ignored. Org scope comes from RLS on the session: Authentication.