List test runs for a project
List simulation test runs for an agent, optionally filtered by test set or branch. Fetch a single test run by ID for full details.
GET
/
v1
/
agents
/
{agentId}
/
testing
/
test-runs
List test runs for a project
curl --request GET \
--url https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"testRuns": [
{
"id": "<string>",
"name": "<string>",
"projectId": "<string>",
"startedAt": "<string>",
"startedBy": "<string>",
"updatedAt": "<string>",
"artifactVersion": "<string>",
"status": "<string>",
"testCaseCount": 123,
"passedCount": 123,
"failedCount": 123,
"errorCount": 123,
"branchId": "<string>",
"lambdaDeploymentVersion": "<string>",
"deploymentId": "<string>",
"deployment": {},
"testSetId": "<string>",
"testHistory": [
{
"id": "<string>",
"testCaseId": "<string>",
"status": "<string>",
"projectId": "<string>",
"testRunId": "<string>",
"rawConversation": {},
"results": {},
"testCaseSnapshot": {},
"artifactVersion": "",
"lambdaDeploymentVersion": "<string>",
"deployment": {},
"deploymentId": "<string>",
"startedAt": "",
"startedBy": "",
"updatedAt": "<string>"
}
]
}
]
}Authorizations
Path Parameters
Query Parameters
Max number of test runs to return
Required range:
x >= 1Number of test runs to skip
Required range:
x >= 0Filter by test set ID
Filter by branch ID
Response
Successful response
Test runs matching the query, most recent first.
List of test runs
Show child attributes
Show child attributes
Last modified on November 12, 2026
Was this page helpful?
⌘I
List test runs for a project
curl --request GET \
--url https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/agents/{agentId}/testing/test-runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"testRuns": [
{
"id": "<string>",
"name": "<string>",
"projectId": "<string>",
"startedAt": "<string>",
"startedBy": "<string>",
"updatedAt": "<string>",
"artifactVersion": "<string>",
"status": "<string>",
"testCaseCount": 123,
"passedCount": 123,
"failedCount": 123,
"errorCount": 123,
"branchId": "<string>",
"lambdaDeploymentVersion": "<string>",
"deploymentId": "<string>",
"deployment": {},
"testSetId": "<string>",
"testHistory": [
{
"id": "<string>",
"testCaseId": "<string>",
"status": "<string>",
"projectId": "<string>",
"testRunId": "<string>",
"rawConversation": {},
"results": {},
"testCaseSnapshot": {},
"artifactVersion": "",
"lambdaDeploymentVersion": "<string>",
"deployment": {},
"deploymentId": "<string>",
"startedAt": "",
"startedBy": "",
"updatedAt": "<string>"
}
]
}
]
}
