Skip to main content

Test Runs

Use this guide to fetch a single externally triggered test run or all test runs created by a trigger request using a Panto API key.

For shared connection details, see Overview.

Get Test Run By ID

GET /api/v1/qa/external/test-run/{id}

Path Parameters

  • id (string, required): Test run id.

Successful Response

{
"test_run": {
"id": "testrun_01",
"created_at": "2026-05-21T10:30:00Z",
"test_framework": "appium",
"context_id": "context_01",
"env_id": "env_01",
"build_file_id": "app_01",
"runner_create_timestamp": "2026-05-21T10:31:00Z",
"runner_start_timestamp": "2026-05-21T10:32:00Z",
"runner_end_timestamp": null,
"runner_status": "in_process",
"remark": null,
"test_run_name": "Checkout regression",
"test_flow_id": "flow_01",
"test_suite_id": null,
"target_device_list": [
{
"platform": "android",
"device_name": "pixel 8", // should be in lowercase
"platform_version": "14"
}
],
"trigger_id": "trigger_01"
}
}

Response Notes

  • test_run_name comes from the associated test suite when test_suite_id exists.
  • If there is no test suite, test_flow_id and test_run_name are resolved from the root test flow.
  • target_device_list contains the stored device and platform targets for the run.

Validation and Error Cases

{
"detail": "Test run not found"
}
{
"error": "Invalid or expired API key"
}

cURL Example

curl "https://qa-app.getpanto.ai/api/v1/qa/external/test-run/testrun_01" \
-H "X-PANTO-API-KEY: your_api_key_here"

Integration Notes

  • Use this endpoint when you already know a specific test_runs id from a trigger response.
  • This endpoint returns the full stored run payload for a single run.

Get Test Runs By Trigger ID

Use this endpoint to fetch all test runs created by a trigger request and inspect their aggregate status.

GET /api/v1/qa/external/test-runs-by-trigger/{trigger_id}

Path Parameters

  • trigger_id (string, required): Shared trigger id returned by the trigger endpoint.

Successful Response

{
"test_runs": [
{
"id": "testrun_01",
"created_at": "2026-05-21T10:30:00Z",
"test_framework": "appium",
"context_id": "context_01",
"env_id": "env_01",
"build_file_id": "app_01",
"runner_create_timestamp": "2026-05-21T10:31:00Z",
"runner_start_timestamp": "2026-05-21T10:32:00Z",
"runner_end_timestamp": null,
"runner_status": "in_process",
"remark": null,
"test_run_name": "Checkout regression",
"test_flow_id": "flow_01",
"test_suite_id": null,
"target_device_list": [
{
"platform": "android",
"device_name": "pixel 8", // should be in lowercase
"platform_version": "14"
}
],
"trigger_id": "trigger_01"
}
],
"status": "in_process"
}

Status Values

  • in_process
  • partially_passed
  • failed
  • passed

Status Calculation

  • If any run is still non-terminal, status is in_process.
  • If there is at least one passed run and at least one failed run, status is partially_passed.
  • If all finished runs failed, status is failed.
  • If all finished runs passed, status is passed.

Validation and Error Cases

{
"detail": "No test runs found for trigger id"
}
{
"error": "Invalid or expired API key"
}

cURL Example

curl "https://qa-app.getpanto.ai/api/v1/qa/external/test-runs-by-trigger/trigger_01" \
-H "X-PANTO-API-KEY: your_api_key_here"

Integration Notes

  • Use this endpoint to poll grouped execution status after triggering flows or suites.
  • The status field summarizes the current state across all returned test runs.