Testerarmy Test Runs API

The Test Runs API from Testerarmy — 5 operation(s) for test runs.

Operations 5

GET /v1/runs List test runs
GET /v1/runs/{id} Get test run status
POST /v1/runs/{id}/cancel Cancel a queued or running run
POST /v1/batches/{batchId}/cancel Cancel a queued or running batch
POST /v1/batches/{batchId}/rerun Re-run a batch

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/testerarmy-test-runs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

testerarmy-test-runs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TestArmy Groups Test Runs API
  version: 1.0.0
  description: AI-powered browser automation API for QA testing. Automate web testing workflows using natural language prompts.
servers:
- url: https://tester.army/api
  description: Production API server
tags:
- name: Test Runs
paths:
  /v1/runs:
    get:
      summary: List test runs
      description: List test runs for the authenticated team with optional project/status filtering and cursor pagination.
      tags:
      - Test Runs
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          pattern: ^(?:[1-9]|[1-9][0-9]|100)$
          description: Max results per page (default 20, max 100)
        required: false
        description: Max results per page (default 20, max 100)
        name: limit
        in: query
      - schema:
          type: string
          enum:
          - queued
          - running
          - completed
          - failed
          - cancelled
          description: Filter by status
        required: false
        description: Filter by status
        name: status
        in: query
      - schema:
          type: string
          format: uuid
          description: Filter by project ID
        required: false
        description: Filter by project ID
        name: projectId
        in: query
      - schema:
          type: string
          format: uuid
          description: Filter by test ID
        required: false
        description: Filter by test ID
        name: testId
        in: query
      - schema:
          type: string
          description: Cursor for pagination
        required: false
        description: Cursor for pagination
        name: cursor
        in: query
      responses:
        '200':
          description: List of runs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunListResponse'
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '429':
          description: Too Many Requests - Usage limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '504':
          description: Gateway Timeout - Test execution exceeded time limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
  /v1/runs/{id}:
    get:
      summary: Get test run status
      description: Retrieve the current status and result of a test run. Poll this endpoint to check for completion.
      tags:
      - Test Runs
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
          description: Test run ID
        required: true
        description: Test run ID
        name: id
        in: path
      responses:
        '200':
          description: Run details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunResponse'
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '404':
          description: Run not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '429':
          description: Too Many Requests - Usage limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '504':
          description: Gateway Timeout - Test execution exceeded time limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
  /v1/runs/{id}/cancel:
    post:
      summary: Cancel a queued or running run
      description: Cancel a queued or running test run.
      tags:
      - Test Runs
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
          description: Test run ID
        required: true
        description: Test run ID
        name: id
        in: path
      responses:
        '200':
          description: Run cancelled
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                    - cancelled
                required:
                - id
                - status
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '409':
          description: Conflict - Run is already terminal or cannot be cancelled
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '429':
          description: Too Many Requests - Usage limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '504':
          description: Gateway Timeout - Test execution exceeded time limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
  /v1/batches/{batchId}/cancel:
    post:
      summary: Cancel a queued or running batch
      description: Cancel all queued or running runs in a prior group-run batch. Finished runs are left unchanged, making the endpoint idempotent when the batch has already completed.
      tags:
      - Test Runs
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
          description: Batch ID
        required: true
        description: Batch ID
        name: batchId
        in: path
      responses:
        '200':
          description: Batch cancellation summary
          content:
            application/json:
              schema:
                type: object
                properties:
                  batchId:
                    type: string
                    format: uuid
                  cancelled:
                    type: integer
                    minimum: 0
                  alreadyFinished:
                    type: integer
                    minimum: 0
                  cancelledRunIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                  alreadyFinishedRunIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                required:
                - batchId
                - cancelled
                - alreadyFinished
                - cancelledRunIds
                - alreadyFinishedRunIds
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '404':
          description: Batch not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '409':
          description: Conflict - Some runs could not be cancelled
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                  batchId:
                    type: string
                    format: uuid
                  cancelled:
                    type: integer
                    minimum: 0
                  alreadyFinished:
                    type: integer
                    minimum: 0
                  cancelledRunIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                  alreadyFinishedRunIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                  failedRunIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                required:
                - error
                - message
                - batchId
                - cancelled
                - alreadyFinished
                - cancelledRunIds
                - alreadyFinishedRunIds
                - failedRunIds
        '429':
          description: Too Many Requests - Usage limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '504':
          description: Gateway Timeout - Test execution exceeded time limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
  /v1/batches/{batchId}/rerun:
    post:
      summary: Re-run a batch
      description: Create a new group-run batch from the runnable tests in a prior batch. Deleted, disabled, or malformed tests are skipped and returned as `skippedTestIds`.
      tags:
      - Test Runs
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
          format: uuid
          description: Source batch ID
        required: true
        description: Source batch ID
        name: batchId
        in: path
      responses:
        '202':
          description: Batch re-run queued successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - queued
                    - cancelled
                  groupId:
                    type: string
                    format: uuid
                  batchId:
                    type: string
                    format: uuid
                  sourceBatchId:
                    type: string
                    format: uuid
                  runIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                  queuedRunIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                  cancelledRunIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                  skippedTestIds:
                    type: array
                    items:
                      type: string
                      format: uuid
                  count:
                    type: integer
                required:
                - status
                - groupId
                - batchId
                - sourceBatchId
                - runIds
                - queuedRunIds
                - cancelledRunIds
                - skippedTestIds
                - count
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '404':
          description: Batch not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '409':
          description: Conflict - Batch cannot be re-run
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '429':
          description: Too Many Requests - Usage limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
        '504':
          description: Gateway Timeout - Test execution exceeded time limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                - error
                - message
components:
  schemas:
    TestOutput:
      type: object
      properties:
        featureName:
          type: string
          description: Name of the feature being tested
        result:
          type: string
          enum:
          - PASS
          - FAILED
          description: Test result - PASS if no issues found, FAILED if any issues were reported
        description:
          type: string
          description: Short summary of what was tested and the final result; include a compact grouped issue summary only when the user explicitly asks for one
        issues:
          type: array
          items:
            $ref: '#/components/schemas/Issue'
          default: []
          description: Issues reported during the session via the report_issue tool
        screenshots:
          type: array
          items:
            type: string
          description: Array of screenshot URLs captured during testing
        steps:
          type: array
          items:
            $ref: '#/components/schemas/TestOutputStep'
          description: Per-step summaries with timing information
      required:
      - featureName
      - result
      - description
      - screenshots
    Issue:
      type: object
      properties:
        type:
          type: string
          enum:
          - issue
          - warning
          default: issue
          description: issue = confirmed bug, warning = non-blocking observation
        name:
          type: string
          description: Short name of the issue (e.g. 'Login form rejects valid email')
        description:
          type: string
          description: What was tested, what happened, and what was expected
        url:
          type: string
          format: uri
          description: URL where the issue happened
        severity:
          type: integer
          minimum: 1
          maximum: 5
          description: Issue severity from 1 (minor) to 5 (critical)
        reproductionSteps:
          type: array
          items:
            type: string
          description: Short reproduction steps in execution order
        expectedBehavior:
          type: string
          description: What should have happened
        actualBehavior:
          type: string
          description: What actually happened
        screenshotUrl:
          type: string
          description: Screenshot URL showing the issue
        tMs:
          type: integer
          description: Milliseconds elapsed since the recording reference time when the issue was reported
      required:
      - name
      - description
      - url
    TestOutputStep:
      type: object
      properties:
        stepIndex:
          type: integer
        title:
          type: string
        type:
          type: string
          enum:
          - act
          - assert
          - login
          - files
          - screenshot
          - javascript
        status:
          type: string
          enum:
          - passed
          - failed
        summary:
          type: string
        error:
          type:
          - string
          - 'null'
        errorCode:
          type: string
          enum:
          - AUTH_CREDENTIAL_UNAVAILABLE
          - AUTH_CREDENTIAL_INVALID
          - AUTH_BASIC_REQUIRED
          - VERCEL_BYPASS_REQUIRED
          - MOBILE_RELEASE_BUILD_REQUIRED
          - VIEWPORT_RESIZE_UNSUPPORTED
          - STEP_TOOL_LIMIT_EXHAUSTED
          - STEP_DEADLINE_EXHAUSTED
          - STEP_NO_CONCLUSION
        startedAtMs:
          type: integer
          description: Milliseconds elapsed since recording reference when the step started
        completedAtMs:
          type: integer
          description: Milliseconds elapsed since recording reference when the step completed
        reusableActionTrace:
          $ref: '#/components/schemas/ReusableActionTrace'
      required:
      - stepIndex
      - title
      - status
    RunResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique run identifier
        type:
          type: string
          enum:
          - ci
          - test
          description: Run type
        status:
          type: string
          enum:
          - queued
          - running
          - completed
          - failed
          - cancelled
          description: Current run status
        platform:
          type:
          - string
          - 'null'
          enum:
          - web
          - ios
          - android
          - null
          description: Target platform
        deviceModel:
          type:
          - string
          - 'null'
          enum:
          - iphone
          - ipad
          - null
          description: Non-default mobile device variant within the run platform (e.g. ipad on iOS). Null means the platform default phone-sized device; explicitly requested defaults are stored as null.
        source:
          type:
          - string
          - 'null'
          enum:
          - api
          - github_action
          - github_app
          - scheduled
          - webhook
          - structured_test
          - null
          description: Run source
        projectId:
          type:
          - string
          - 'null'
          format: uuid
          description: Linked project ID
        input:
          type: object
          additionalProperties: {}
          description: Original request input
        output:
          anyOf:
          - $ref: '#/components/schemas/TestOutput'
          - $ref: '#/components/schemas/PlannerSkippedOutput'
          - {}
          description: Run output when completed or skipped
        testPlan:
          type:
          - object
          - 'null'
          properties:
            instructions:
              type: string
              description: Natural language instructions for the QA agent
            focusAreas:
              type: array
              items:
                type: string
              description: Focus areas derived from changed files
            complexity:
              type: string
              enum:
              - simple
              - moderate
              - complex
              description: Estimated test complexity (affects timeout)
            changeType:
              type: string
              enum:
              - frontend
              - backend
              - mixed
              - infra
              description: 'Classify this PR: frontend = UI/component changes, backend = API/DB/service changes with no visible UI effect, mixed = both, infra = CI/config/docs only'
            steps:
              type: array
              items:
                oneOf:
                - type: object
                  properties:
                    title:
                      type: string
                      minLength: 1
                      maxLength: 500
                      description: Concise description of what to do or verify
                    type:
                      type: string
                      enum:
                      - act
                      description: Perform an action
                  required:
                  - title
                  - type
                - type: object
                  properties:
                    title:
                      type: string
                      minLength: 1
                      maxLength: 500
                      description: Concise description of what to do or verify
                    type:
                      type: string
                      enum:
                      - assert
                      description: Verify a condition
                  required:
                  - title
                  - type
                - type: object
                  properties:
                    title:
                      type: string
                      minLength: 1
                      maxLength: 500
                      description: Concise description of the login step
                    type:
                      type: string
                      enum:
                      - login
                      description: Authenticate using a credential
                    credentialId:
                      type: string
                      description: ID of the credential to use
                    temporaryEmail:
                      type: boolean
                      description: Set to true to create a temporary email inbox at run time
                  required:
                  - title
                  - type
                - type: object
                  properties:
                    title:
       

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/testerarmy/refs/heads/main/openapi/testerarmy-test-runs-api-openapi.yml