---
title: "Get test results"
method: GET
path: "/test-results/{signature}"
tags: ["Test Results"]
---

# Get test results

`GET /test-results/{signature}`

Get historical test execution results for a specific test signature

## Path parameters

- `signature` string, required

## Query parameters

- `date_start` string, date-time, required
- `date_end` string, date-time, required
- `limit` integer
- `starting_after` string
- `ending_before` string
- `tags[]` string[]
- `branches[]` BranchFilterQueryValue[]
  - union — Branch filter value: an exact branch name, or a trailing `*` for prefix match (e.g. `release/*`). Max 250 characters.
    - string — Exact branch name (must not contain `*` or spaces).
    - string — Prefix match: branch prefix followed by `*`.
- `authors[]` string[]
- `groups[]` string[]
- `environments[]` string[]
- `branch[]` BranchFilterQueryValue[]
  - union — Branch filter value: an exact branch name, or a trailing `*` for prefix match (e.g. `release/*`). Max 250 characters.
    - string — Exact branch name (must not contain `*` or spaces).
    - string — Prefix match: branch prefix followed by `*`.
- `tag[]` string[]
- `status[]` RecordedTestOutcome[]
- `flaky` boolean
- `annotations` string

## Response `200`

Successful response

- TestResultsResponse
  - `status` 'OK', required
  - `has_more` boolean, required
  - `data` TestResult[], required
    - `cursor` string
    - `signature` string
    - `framework` string
    - `createdAt` string, date-time
    - `projectId` string
    - `groupId` string
    - `runId` string
    - `instanceId` string
    - `spec` string
    - `machineId` string
    - `tags` string[]
    - `title` string[]
    - `testId` string
    - `displayError` string, nullable
    - `commit` object
      - `branch` string
      - `authorEmail` string
      - `authorName` string
      - `sha` string
      - `message` string
    - `duration` integer
    - `flaky` boolean
    - `expectedStatus` string, nullable
    - `status` 'passed' | 'failed' | 'pending' | 'skipped' — Final per-test outcome stored in Currents. - **passed** — Runner reported success. - **failed** — Runner reported failure (assertions, errors, timeouts, etc.). - **pending** — Intentional skip or disabled test (e.g. `test.skip()` / `it.skip()`). In **Tests Explorer** (`GET /tests/{projectId}`) this increments `metrics.ignored` and does **not** increment `metrics.failures`. - **skipped** — Runner reported a skip without a normal pass/fail (often interrupted or never executed as pass/fail). In **Tests Explorer** this increments `metrics.failures` together with `failed` (there is no separate `skipped` counter in that response). On **run and spec** payloads, `stats.skipped` is still reported separately from `stats.failures` and `stats.pending`.
    - `attempts` object[]
      - `attemptId` string
      - `state` string
      - `error` object, nullable
        - `message` string
        - `stack` string
        - `location` object
      - `startedAt` string, date-time
      - `duration` integer
    - `annotations` object[], nullable
      - `type` string
      - `description` string

## Other responses

- `400` — Invalid request parameters
- `401` — Authentication failed
- `404` — Resource not found
- `413` — Payload Too Large - Response size exceeds limits. Use Accept-Encoding: gzip header.

---

[API](https://skmtc.dev/currents/apis/currents-rest-api.md) · [All operations](https://skmtc.dev/currents/apis/currents-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/currents/currents-rest-api/revisions/d0e2ed0e7e6a/schema)
