API reference / Tests and incidents
List incidents
The incidents of the workspace's apps: each is the errors of one problem. view: ongoing (open, the default), new (first seen in the last 24 hours), regressed (back after a person resolved it), resolved, ignored or all. Filter by app (id or slug), by environment, or by words of the title (q). #14 finds Incident 14.
/api/v1/incidentsOther ways to call it
troopy incidents listtroopy_list_incidentsQuery parameters
pageinteger1-based page number
Default 1 · At least 1
limitintegerItems per page, at most 100
Default 20 · At least 1 · At most 100
viewenum<string>ongoingnewregressedresolvedignoredall
Default "ongoing"
appstringThe app's id or slug
At most 80 characters
environmentstringAt most 40 characters
qstringAt most 200 characters
sortenum<string>last or first seen, most events, or most people
lastfirsteventspeople
Default "last"
Response
200 · application/jsondata*array<object>24 properties
number*integerIts number in the workspace, as in Incident 14
title*stringThe error and its message
culprit*string | nullWhere it happens: the last frame of the app's own code, or the route
type*string | nullThe type of the error, like TypeError. null for a message
level*enum<string>fatalerrorwarninginfodebug
crash*booleanOne of its errors crashed the app: nothing caught it
status*enum<string>ignored becomes open when its ignore runs out
openresolvedignored
regressedAt*string | nullWhen it came back after a person resolved it
app*object4 properties
id*stringA 24-character id
name*stringslug*stringplatform*enum<string>websitenextjsnodepythonother
count*integerIts errors, each counted
users*integerThe people who saw it, about
firstSeen*stringISO 8601 date and time
lastSeen*stringISO 8601 date and time
environments*array<string>firstRelease*string | nulllastRelease*string | nullresolved*object | null3 properties
by*objectWho wrote it
3 properties
type*enum<string>personagentapi
id*stringname*stringat*stringISO 8601 date and time
nextRelease*booleanResolved in the next release: only a newer release brings it back
ignored*object | null5 properties
by*objectWho wrote it
3 properties
type*enum<string>personagentapi
id*stringname*stringat*stringISO 8601 date and time
until*string | nullIt is open again after this time
events*integer | nullIt is open again when its count reaches this
users*integer | nullIt is open again when this many people saw it
last24h*array<integer>Its errors in each of the last 24 hours, oldest first
alert*object | nullWhy it needs a look, and whether a person saw it. A resolve or an ignore clears it
3 properties
why*enum<string>newregressedescalatedspike
at*stringISO 8601 date and time
seen*booleantriage*object | nullThe latest look of the QA tester, or of a person
6 properties
severity*enum<string>criticalhighmediumlow
verdict*enum<string>fixnoisewatch
summary*stringWhat happened, in words that an owner understands
why*stringWhy that severity and that verdict
by*objectWho wrote it
3 properties
type*enum<string>personagentapi
id*stringname*stringat*stringISO 8601 date and time
triageDue*string | nullSince when it waits for the QA tester's look: an alert, or a person's ask
ticket*object | nullThe engineering ticket that fixes it
3 properties
key*stringLike VIR-42
title*stringstatus*enum<string>backlogtodoin_progressneeds_youin_reviewdonecanceled
fix*object | nullThe ticket that fixed it, once that ticket went live. Then Troopy resolves the incident in the next release
5 properties
key*stringThe ticket, like VIR-42
title*stringat*stringWhen the ticket went live
release*string | nullThe first release of the app after that: the fix is in it
back*string | nullWhen an error of a newer release brought the incident back
pagination*object4 properties
page*integerlimit*integertotal*integerpages*integer