Get a test-results upload
Returns where an upload is (waiting for its bundle, received, ingested or skipped) and the problems ingestion found in it. Requires read access to the upload’s test collection.
Authorizations
An API key, sent as Authorization: Bearer <key>. An organization admin creates one in the Trunk app under Settings → Developer → API Keys and chooses the merge-queue permissions it holds; a key with none can read merge queues but change nothing. Those permissions scope merge queue only: every key can use the Flaky Tests and Dynamic CI endpoints, including their writes, whatever permissions it holds.
Path Parameters
The upload's id, as its create returned it.
"f47ac10b-58cc-4372-a567-0e02b2c3d479"
Response
The upload
A test-results upload: where it is, and what ingestion found.
The upload's id.
"f47ac10b-58cc-4372-a567-0e02b2c3d479"
The id of the test collection the upload belongs to.
"aB3xY9kQ"
The repository the tests are stored under. The nil UUID for an upload without a repository.
"7a1f0e3d-2b4c-4d5e-8f90-123456789abc"
Where an upload is. awaitingData: Trunk has not read the bundle. Past expiresAt on the create, it was never uploaded or could not be read. received: ingestion has started and not finished. Ingestion retries for about 10 minutes, so an upload still received with updatedAt more than 15 minutes old was not ingested and will not change. ingested: ingestion has recorded the upload. Its results and defects are written just after, so defects can still grow for a few seconds; each one moves updatedAt. If writing them fails, the upload stays ingested with its results incomplete. An invalid defect names a part of the bundle that was left out. skipped: it was read, but so many of its tests failed that Trunk treated the run as an infrastructure failure and stored no results.
awaitingData, received, ingested, skipped "ingested"
The problems ingestion found, oldest first. Empty until the bundle has been read. At most 1000; past that, every invalid defect is kept before any suboptimal one.
1000The version of the client that built the bundle, as ingestion read it from the bundle. Empty until the bundle has been read. It is not the clientVersion sent on the create.
"trunk-analytics-cli 0.12.3"
When the upload was created.
"2026-10-06T16:00:00.000Z"
The last time ingestion touched the upload. Each ingestion attempt moves it, even when status stays the same.
"2026-10-06T16:00:04.000Z"