QA Wolf CI API

Continuous integration triggers and pipeline gating

OpenAPI Specification

qa-wolf-ci-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: QA Wolf REST CI API
  version: v0
  description: 'The QA Wolf REST API provides direct HTTP access to core platform actions: triggering test runs on deployment, polling run outcomes to gate CI pipelines, and generating signed URLs to upload executable run inputs. QA Wolf recommends the @qawolf/ci-sdk library for most use cases rather than calling these endpoints directly. This specification was generated by the API Evangelist enrichment pipeline from QA Wolf''s published REST API reference documentation; it is a faithful capture of documented behavior, not a provider-published OpenAPI file.'
  x-provenance:
    generated: '2026-07-20'
    method: generated
    source: https://docs.qawolf.com/qawolf/rest-overview.md
    note: Generated from published docs; QA Wolf does not publish an OpenAPI file.
  contact:
    name: QA Wolf
    email: hello@qawolf.com
    url: https://docs.qawolf.com/qawolf/rest-overview
servers:
- url: https://app.qawolf.com
  description: QA Wolf platform
security:
- bearerAuth: []
tags:
- name: CI
  description: Continuous integration triggers and pipeline gating
paths:
  /api/webhooks/deploy_success:
    post:
      tags:
      - CI
      operationId: notifyDeploySuccess
      summary: Notify QA Wolf of a successful deployment
      description: Notify QA Wolf of a successful deployment to trigger a test run. Match rules on the QA Wolf side decide which triggers fire and which flows run.
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeploySuccessRequest'
      responses:
        '200':
          description: Request accepted. Inspect the body to confirm run creation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploySuccessResponse'
        '401':
          description: Invalid API key
        '403':
          description: Disabled team
        '405':
          description: Wrong HTTP method
  /api/webhooks/environment_terminated:
    post:
      tags:
      - CI
      operationId: notifyEnvironmentTerminated
      summary: Notify QA Wolf that an ephemeral environment has been terminated
      description: Notify QA Wolf that an ephemeral environment has been terminated. Stops all runs targeting the environment and requests flow promotion to the static base environment. The environment will show as "closed" in QA Wolf.
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentTerminatedRequest'
      responses:
        '200':
          description: Termination accepted
        '401':
          description: Invalid API key
        '403':
          description: Disabled team
  /api/v0/ci-greenlight/{rootRunId}:
    get:
      tags:
      - CI
      operationId: getCiGreenlight
      summary: Poll for the outcome of a run to gate a pipeline
      description: Returns the outcome of a run for use as a pipeline gate. Poll this endpoint until the run reaches a terminal state, then pass or fail the pipeline based on the reported outcome.
      security:
      - bearerAuth: []
      parameters:
      - name: rootRunId
        in: path
        required: true
        description: The root run id returned when a run was triggered.
        schema:
          type: string
      responses:
        '200':
          description: Run outcome
        '401':
          description: Invalid API key
        '403':
          description: Disabled team
  /api/v0/run-inputs-executables-signed-urls:
    get:
      tags:
      - CI
      operationId: getRunInputExecutableSignedUrl
      summary: Generate a signed URL for an executable run input
      description: Generate a signed URL to upload an executable file to QA Wolf.
      security:
      - bearerAuth: []
      responses:
        '200':
          description: A signed URL to upload the executable
        '401':
          description: Invalid API key
    put:
      tags:
      - CI
      operationId: uploadRunInputExecutable
      summary: Upload an executable file via a signed URL
      description: Upload an executable file to QA Wolf using a previously generated signed URL.
      responses:
        '200':
          description: Upload accepted
components:
  schemas:
    DeploySuccessResponse:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
            properties:
              created_suite_id:
                type: string
              duplicate_suite_id:
                type: string
              trigger_id:
                type: string
              failure_reason:
                type: string
    EnvironmentTerminatedRequest:
      type: object
      properties:
        deployment_url:
          type: string
          description: The URL of the ephemeral environment that was terminated.
        branch:
          type: string
    DeploySuccessRequest:
      type: object
      description: Fields describing a successful deployment that should trigger runs.
      properties:
        branch:
          type: string
          description: Git branch name, used for UI display and PR matching.
        sha:
          type: string
          description: Git commit SHA, used for GitHub checks and commit links.
        deployment_type:
          type: string
          description: Required if a trigger is configured to match deployment types.
        deployment_url:
          type: string
          description: Overrides the environment URL; exposed to flows as process.env.URL.
        hosting_service:
          type: string
          enum:
          - GitHub
          - GitLab
          default: GitHub
          description: Hosting service for commit links.
        commit_url:
          type: string
          description: Makes the commit id clickable when no repo is configured.
        variables:
          type: object
          additionalProperties: true
          description: Environment variable overrides applied to the triggered runs.
        deduplication_key:
          type: string
          description: Controls run cancellation / deduplication behavior.
        ephemeral_environment:
          type: boolean
          description: Use with deployment_url for non-integrated ephemeral deployments.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token using the workspace API key (QAWOLF_API_KEY). Find the key in the platform under Workspace Settings -> Integrations -> API Access.