Skip to main content
Check test run status and retrieve detailed results programmatically. This endpoint enables blocking mode in CI/CD pipelines, custom post-run automation, and integration with your existing tooling.

When to Use This API

  • Test result analysis - Build dashboards or generate reports from test results
  • Custom post-run automation - Trigger webhooks, custom alerting, or auto-create tickets
  • CI/CD blocking mode - Wait for test completion before proceeding with deployments (GitLab, CircleCI, Jenkins, etc.)
For detailed examples, see:

Quick Example: Polling Script

Basic polling example:
RESPONSE=$(curl -s "https://app.qa.tech/api/projects/$QATECH_PROJECT_UUID/runs/$SHORT_ID" \
  -H "Authorization: Bearer $QATECH_API_TOKEN")

STATUS=$(echo "$RESPONSE" | jq -r '.status')

if [[ "$STATUS" == "COMPLETED" || "$STATUS" == "ERROR" || "$STATUS" == "CANCELLED" ]]; then
  RESULT=$(echo "$RESPONSE" | jq -r '.result')
  if [[ "$RESULT" == "PASSED" ]]; then
    echo "Tests passed!"
  else
    echo "Tests failed: $RESULT"
  fi
else
  echo "Status: $STATUS - still running"
fi
Variables:
  • $QATECH_PROJECT_UUID - Your project’s 36-character UUID (see Finding Your Project UUID)
  • $SHORT_ID - The 6-character run short ID (returned from Start Run API response: run.shortId)
  • $QATECH_API_TOKEN - Your project’s API token (found in Settings → Integrations → API)

API Reference

Endpoint

GET /projects/{projectUuid}/runs/{shortId}

Authentication

The Get Run Status API uses Bearer token authentication. Include your project’s API token in the Authorization header:
Authorization: Bearer YOUR_API_TOKEN
You can obtain your project’s API token from the QA.tech dashboard in Settings → Integrations → API.

Path Parameters

ParameterTypeRequiredDescription
projectUuidstring (UUID)YesYour project’s UUID (36-character format)
shortIdstringYesThe 6-character short ID of the run (returned from Start Run API)

Response Format

Success Response (200)

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "shortId": "abc123",
  "status": "COMPLETED",
  "result": "FAILED",
  "failedTestCases": [
    {
      "id": "test-case-uuid",
      "shortId": "xyz789",
      "name": "Login flow test",
      "status": "COMPLETED",
      "result": "FAILED",
      "resultTitle": "Could not find login button",
      "evaluationThought": "The test failed because the login button was not visible on the page.",
      "promptGoal": "Test the login flow",
      "promptExamples": null
    }
  ]
}

Response Fields

FieldTypeDescription
idstring (UUID)Internal run identifier
shortIdstring6-character short ID used in URLs
statusstringCurrent run status (see Status Values below)
resultstring | nullTest result when status is COMPLETED (see Result Values below)
failedTestCasesarrayArray of failed test cases (only populated when result is FAILED)

Failed Test Case Fields

FieldTypeDescription
idstring (UUID)Test case identifier
shortIdstring6-character short ID
namestringTest case name
statusstringTest case status
resultstringAlways "FAILED" in this array
resultTitlestringBrief failure summary
evaluationThoughtstringDetailed failure explanation
promptGoalstring | nullOriginal test goal
promptExamplesstring | nullExample scenarios used

Status Values

StatusDescription
INITIATEDRun has been created but not started
RUNNINGTests are currently executing
COMPLETEDAll tests have finished
ERRORRun encountered an error
CANCELLEDRun was cancelled

Result Values

ResultDescription
PASSEDAll tests passed
FAILEDOne or more tests failed
SKIPPEDTests were skipped
nullRun is still in progress (status is INITIATED or RUNNING)

Understanding the Response

Status Lifecycle

The status field tracks the run lifecycle:
  1. INITIATED → Run created, queued for execution
  2. RUNNING → Tests are executing
  3. COMPLETED / ERROR / CANCELLED → Run finished

Result Field

The result field is only meaningful when status is COMPLETED:
  • PASSED - All tests succeeded
  • FAILED - At least one test failed (check failedTestCases array for details)
  • SKIPPED - Tests were skipped
  • null - Run is still in progress (status is INITIATED or RUNNING)

Failed Test Cases

When result is FAILED, the failedTestCases array contains details about each failed test:
  • resultTitle - Quick summary (e.g., “Could not find login button”)
  • evaluationThought - Detailed explanation of why the test failed
  • promptGoal - The original test objective

Error Handling

Not Found (404)

Returned when:
  • Invalid project UUID
  • Invalid run shortId
  • Invalid API token
Response:
{
  "statusText": "Unknown Error"
}

Forbidden (403)

Returned when the organization is suspended. Response:
{
  "statusText": "Organization is suspended"
}