---
title: "Get a test"
method: GET
path: "/v1/tests/{testId}"
tags: ["tests"]
---

# Get a test

`GET /v1/tests/{testId}`

Get a single structured test definition, including the groups it belongs to.

## Path parameters

- `testId` string, uuid, required

## Headers

- `Authorization` string, required

## Response `200`

Test details

- TestDetail
  - `id` string, uuid, required
  - `title` string, required
  - `description` string, nullable
  - `enabled` boolean
  - `platform` 'web' | 'mobile'
  - `steps` TestStep[], required
    - union
      - TestStep0
        - `title` string, required
        - `type` 'act', required
        - `disabled` boolean — When true, the step stays saved on the test but is skipped during runs.
      - TestStep1
        - `title` string, required
        - `type` 'assert', required
        - `disabled` boolean — When true, the step stays saved on the test but is skipped during runs.
      - TestStep2
        - `title` string, required
        - `type` 'login', required
        - `credentialId` string, uuid
        - `temporaryEmail` boolean
        - `disabled` boolean — When true, the step stays saved on the test but is skipped during runs.
      - TestStep3
        - `title` string, required
        - `type` 'files', required
        - `fileIds` string[], required
        - `disabled` boolean — When true, the step stays saved on the test but is skipped during runs.
      - TestStep4
        - `title` string
        - `type` 'screenshot', required
        - `disabled` boolean — When true, the step stays saved on the test but is skipped during runs.
      - TestStep5
        - `title` string
        - `type` 'javascript', required
        - `disabled` boolean — When true, the step stays saved on the test but is skipped during runs.
        - `code` string, required — JavaScript run in the browser page. Runs as an awaited function body; passes if it completes without throwing (returns nothing or { success: true }) and fails if it returns { success: false, reason } or throws. Web tests only.
      - TestStep6
        - `title` string
        - `type` 'microphone', required
        - `disabled` boolean — When true, the step stays saved on the test but is skipped during runs.
        - `fileId` string, required — Project file ID (UUID) of the audio file (e.g. MP3) to play through the microphone. Empty string marks an unconfigured draft that must have a file attached before the test runs.
        - `mode` 'blocking' | 'loop', required — blocking: the agent waits for playback to finish before continuing. loop: playback repeats until the run ends and the agent continues immediately. Web tests only.
  - `projectId` string, uuid
  - `projectUrl` string, uri, nullable
  - `projectName` string
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `groups` TestDetailGroupsItems[]
    - `id` string, uuid, required
    - `name` string, required
    - `isDefault` boolean, required

## Other responses

- `400` — Bad Request - Invalid input parameters
- `401` — Unauthorized - Invalid or missing API key
- `404` — Not Found - Resource does not exist or is not accessible
- `429` — Too Many Requests - Usage limit exceeded
- `500` — Internal Server Error
- `504` — Gateway Timeout - Test execution exceeded time limit

---

[API](https://skmtc.net/tester/apis/testerarmy-api.md) · [All operations](https://skmtc.net/tester/apis/testerarmy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tester/testerarmy-api/versions/d0302b4c4e0e/schema)
