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_namecomes from the associated test suite whentest_suite_idexists.- If there is no test suite,
test_flow_idandtest_run_nameare resolved from the root test flow. target_device_listcontains 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_runsid 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_processpartially_passedfailedpassed
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
statusfield summarizes the current state across all returned test runs.