> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qa.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Start test run

> Execute a run for a given project. Supports API or GITHUB trigger. When using GITHUB trigger, provide actor, branch, commitHash, commitMessage, and repository. Use applications to override environment or device preset per run.



## OpenAPI

````yaml /api-reference/api.json post /v1/run
openapi: 3.0.0
info:
  title: QA.tech API
  version: 1.0.0
  contact:
    name: QA.tech
    url: https://qa.tech
    email: support@qa.tech
  description: >-
    REST API for triggering and managing AI-powered test runs. Authenticate with
    a project API token (Authorization: Bearer <token>) found in Project
    Settings -> Integrations.
servers:
  - url: https://api.qa.tech
    description: Production
    variables: {}
security:
  - BearerAuth: []
tags:
  - name: Runs
  - name: Infrastructure
  - name: Test Cases
  - name: Application Builds
  - name: Status badge
  - name: Remote Tunnels
  - name: Chat
  - name: Applications
paths:
  /v1/run:
    post:
      tags:
        - Runs
      summary: Start test run
      description: >-
        Execute a run for a given project. Supports API or GITHUB trigger. When
        using GITHUB trigger, provide actor, branch, commitHash, commitMessage,
        and repository. Use applications to override environment or device
        preset per run.
      operationId: RunProject
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunRequest'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunResponse'
components:
  schemas:
    RunRequest:
      type: object
      properties:
        trigger:
          type: string
          enum:
            - API
            - GITHUB
        actor:
          type: string
        branch:
          type: string
        commitHash:
          type: string
        commitMessage:
          type: string
        repository:
          type: string
        testPlanShortId:
          $ref: '#/components/schemas/TestPlanShortId'
        testCaseIds:
          type: array
          items:
            type: string
        applications:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationOverride'
        notifications:
          type: array
          items:
            $ref: '#/components/schemas/NotificationOverride'
      description: >-
        Request body for triggering a test run. Supports GitHub trigger fields
        and application overrides.
    RunResponse:
      type: object
      required:
        - success
        - run
      properties:
        success:
          type: boolean
        run:
          $ref: '#/components/schemas/Run'
    TestPlanShortId:
      type: string
      pattern: ^pln(-.+_.+|_.+)$
    ApplicationOverride:
      type: object
      required:
        - applicationShortId
      properties:
        applicationShortId:
          $ref: '#/components/schemas/ApplicationShortId'
        devicePresetShortId:
          $ref: '#/components/schemas/DevicePresetShortId'
        environment:
          $ref: '#/components/schemas/ApplicationEnvironmentOverride'
      description: Override application, environment, or device preset for a specific run
    NotificationOverride:
      type: object
      required:
        - type
        - channel
      properties:
        type:
          type: string
          enum:
            - slack
        channel:
          type: string
        notifyOn:
          type: string
          enum:
            - failure
            - always
      description: Override notifications for a specific run
    Run:
      type: object
      required:
        - id
        - shortId
        - url
        - testCount
        - testPlan
      properties:
        id:
          type: string
        shortId:
          type: string
        url:
          type: string
        testCount:
          type: integer
          format: int32
        testPlan:
          $ref: '#/components/schemas/TestPlan'
    ApplicationShortId:
      type: string
      pattern: ^app(-.+_.+|_.+)$
    DevicePresetShortId:
      type: string
      pattern: ^preset(-.+_.+|_.+)$
    ApplicationEnvironmentOverride:
      anyOf:
        - $ref: '#/components/schemas/ApplicationEnvironmentOverrideByUrl'
        - $ref: '#/components/schemas/ApplicationEnvironmentOverrideByShortId'
        - $ref: >-
            #/components/schemas/ApplicationEnvironmentOverrideByApplicationBuildShortId
    TestPlan:
      type: object
      required:
        - name
        - shortId
      properties:
        name:
          type: string
        shortId:
          $ref: '#/components/schemas/TestPlanShortId'
    ApplicationEnvironmentOverrideByUrl:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          format: uri
        name:
          type: string
    ApplicationEnvironmentOverrideByShortId:
      type: object
      required:
        - shortId
      properties:
        shortId:
          $ref: '#/components/schemas/EnvironmentShortId'
    ApplicationEnvironmentOverrideByApplicationBuildShortId:
      type: object
      required:
        - applicationBuildShortId
      properties:
        applicationBuildShortId:
          $ref: '#/components/schemas/ApplicationBuildShortId'
      description: >-
        Use a specific application build (from POST /v1/application/builds).
        Creates or reuses an environment with this build.
    EnvironmentShortId:
      type: string
      pattern: ^env(-.+_.+|_.+)$
    ApplicationBuildShortId:
      type: string
      pattern: ^build(-.+_.+|_.+)$
  securitySchemes:
    BearerAuth:
      type: http
      scheme: Bearer

````