API reference / Tests and incidents
List test runs
The workspace's test runs, newest first. Filters: a place (environment) and a status. Get one for its parts, reports and pictures. Troopy deletes a test run 90 days after it ends, and the pictures of a run that passed after 7 days.
/api/v1/test-runsOther ways to call it
troopy tests runstroopy_list_test_runsQuery parameters
pageinteger1-based page number
Default 1 · At least 1
limitintegerItems per page, at most 100
Default 20 · At least 1 · At most 100
environmentstringA 24-character id
statusenum<string>queuedrunningdonecanceled
Response
200 · application/jsondata*array<object>17 properties
id*stringA 24-character id
kind*enum<string>ticket: a change. review: Troopy's code review of a change. screens: the blind critic's look at the pictures of a change. cases: tests of the library. explore: a look for problems. first_users: the QA tester tries it as 5 kinds of new user. check: whether the place loads
ticketreviewscreenscasesexplorefirst_userscheck
status*enum<string>queuedrunningdonecanceled
waitingFor*enum<string> | nullIn the queue: a QA tester to hire, one of the workspace's 2 places, the computer, a release that reaches Production, or a Claude plan that is out of usage
qaslotcomputerdeployplan
verdict*enum<string> | nullWhen done: fail when a part failed, blocked when a part couldn't be checked, pass only when each part passed
passfailblocked
error*string | nullWhy it ended early: its place didn't load or is gone, or its ticket moved on
environment*object | nullThe place, as it was when the run started: a place to test, or a preview of a ticket's change. Null when it reads only the code of the change
4 properties
id*string | nullNull for the preview of a ticket's change, which is no place of the workspace
name*stringkind*enum<string>productionstagingpreview
url*stringnote*string | nullWhat Troopy noted on the way, like a preview that didn't load
ticket*object | nullThe engineering ticket whose change it tests: its key, its pull request, and the commit tested
5 properties
id*stringA 24-character id
key*stringrepo*stringpr*integersha*stringprogress*objectIts parts: one for each test, or one for a ticket or a look
2 properties
done*integertotal*integertrigger*enum<string> | nullschedule: its place's schedule started it. release: a release started it. null: a person, the API or a ticket
schedulerelease
release*object | nullA check after a release: the tickets that the release took live
1 properties
tickets*array<object>2 properties
id*stringA 24-character id
key*stringreplayed*integerParts that replayed a test's recording whole, with no AI
replaying*booleanTroopy replays a part now, with no AI
createdBy*objectWho wrote it
3 properties
type*enum<string>personagentapi
id*stringname*stringcreatedAt*stringISO 8601 date and time
finishedAt*string | nullpagination*object4 properties
page*integerlimit*integertotal*integerpages*integer