Get test execution history for a project
List individual test-case execution events for an agent over time, optionally filtered by test case or branch. Use this to see pass/fail trends, distinct from a single test run’s snapshot.
GET
/
v1
/
agents
/
{agentId}
/
testing
/
test-history
Get test execution history for a project
curl --request GET \
--url https://api.us.poly.ai/v1/agents/{agentId}/testing/test-history \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-history"
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-history', 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-history",
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-history"
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-history")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/agents/{agentId}/testing/test-history")
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{
"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 history entries to return
Required range:
x >= 1Number of history entries to skip
Required range:
x >= 0Filter by test case ID
Filter by branch ID
Response
Successful response
Individual test case executions matching the query, most recent first.
List of test history events
Show child attributes
Show child attributes
Last modified on November 12, 2026
Was this page helpful?
⌘I
Get test execution history for a project
curl --request GET \
--url https://api.us.poly.ai/v1/agents/{agentId}/testing/test-history \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.us.poly.ai/v1/agents/{agentId}/testing/test-history"
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-history', 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-history",
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-history"
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-history")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.poly.ai/v1/agents/{agentId}/testing/test-history")
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{
"testHistory": [
{
"id": "<string>",
"testCaseId": "<string>",
"status": "<string>",
"projectId": "<string>",
"testRunId": "<string>",
"rawConversation": {},
"results": {},
"testCaseSnapshot": {},
"artifactVersion": "",
"lambdaDeploymentVersion": "<string>",
"deployment": {},
"deploymentId": "<string>",
"startedAt": "",
"startedBy": "",
"updatedAt": "<string>"
}
]
}
