---
title: "Test runs as a CTRF report"
method: GET
path: "/v2/test-runs/ctrf"
tags: ["Test Runs"]
---

# Test runs as a CTRF report

`GET /v2/test-runs/ctrf`

## Request

- Base URL: `https://app.aiva.works` (the document declares no server; this is the origin it was published from)
- URL: `https://app.aiva.works/v2/test-runs/ctrf`
- Auth: API key in header `X-API-KEY`

The test runs matching the filters, as one CTRF report.

## Query parameters

- `testRunIds` string[]
- `status` 'Created' | 'Enqueued' | 'Starting' | 'Running' | 'Passed' | 'Failed' | 'Stopped' | 'FailedToStart' | 'Interrupted' | 'Invalid'
- `testId` string, guid
- `batchExecutionId` string, guid
- `startedAfter` string, date-time
- `startedBefore` string, date-time
- `page` integer
- `pageSize` integer

## Response `200`

Test runs as a CTRF report

- CtrfTestResults
  - `reportFormat` string, required
  - `specVersion` string, required
  - `results` Results, required
    - `tool` Tool, required
      - `name` string, required
    - `summary` Summary, required
      - `tests` integer, required
      - `passed` integer, required
      - `failed` integer, required
      - `pending` integer, required
      - `skipped` integer, required
      - `other` integer, required
      - `start` integer, nullable: Start time of the first test in milliseconds since the Unix epoch
      - `stop` integer, nullable: Stop time of the last test in milliseconds since the Unix epoch
      - `extra` SummaryExtra
        - `userEmail` string, nullable: Email of user which ran the test batch
        - `batchId` string, guid, nullable: v1: ID of the test batch execution. v2: ID of the defined batch this execution belongs to (null for an ad-hoc batch) -- see ExecutionId for the execution itself.
        - `executionId` string, guid, nullable: ID of the batch execution. Only populated in v2.
        - `testBatchLink` string, nullable: URL of the test batch in AIVA
    - `tests` Test[], required
      - `name` string, required: Test name
      - `status` string, required: Test run status as per the CTRF specification -- one of the following: passed, failed, skipped, pending, other (see https://ctrf.io/docs/specification/status)
      - `rawStatus` string: Test run status used in AIVA
      - `duration` integer, nullable: Duration of the test run in milliseconds
      - `start` integer, nullable: Start time of the test in milliseconds since the Unix epoch
      - `stop` integer, nullable: Stop time of the test in milliseconds since the Unix epoch
      - `message` string, nullable: Error message in case of a failed test
      - `parameters` object, nullable: Variables the test was run with
      - `extra` Extra, required
        - `testResultLink` string, nullable: URL of the test result in AIVA GUI
        - `testRunId` string, required: GUID of the test run this result corresponds to

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: User does not have permission to access test runs
- `500`: Server Error

---

[API](https://skmtc.dev/aiva/apis/aiva-cloud-api.md) · [All operations](https://skmtc.dev/aiva/apis/aiva-cloud-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aiva/apis/aiva-cloud-api/revisions/70eef14d3bcd?raw)
