List test run attempts
curl --request GET \
--url https://guidinghand.ai/v1/test_runs/{test_run_id}/attempts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://guidinghand.ai/v1/test_runs/{test_run_id}/attempts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://guidinghand.ai/v1/test_runs/{test_run_id}/attempts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"object": "attempt",
"attempt_id": "at_Lc0aQ3Vb7sT2",
"test_run_id": "<string>",
"test_case_id": "<string>",
"key": "<string>",
"agent_id": "<string>",
"try": 123,
"retry_of": "<string>",
"status": "queued",
"outcome": "passed",
"task_id": "<string>",
"replay_url": "<string>",
"check": {
"before": "<string>",
"after": "<string>",
"passed": true
},
"judge": {
"passed": true,
"reason": "<string>"
},
"customer": [
{
"question": "<string>",
"answer": "<string>",
"actions": [
"admin_yes"
]
}
],
"error": "<string>",
"metrics": {
"active_seconds": 123,
"steps": 123,
"questions": 123,
"approvals": 123,
"cost_cents": 123
},
"runner_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z"
}
],
"has_more": true,
"next_cursor": "<string>"
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}Test runs
List test run attempts
GET
/
v1
/
test_runs
/
{test_run_id}
/
attempts
List test run attempts
curl --request GET \
--url https://guidinghand.ai/v1/test_runs/{test_run_id}/attempts \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://guidinghand.ai/v1/test_runs/{test_run_id}/attempts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://guidinghand.ai/v1/test_runs/{test_run_id}/attempts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"object": "attempt",
"attempt_id": "at_Lc0aQ3Vb7sT2",
"test_run_id": "<string>",
"test_case_id": "<string>",
"key": "<string>",
"agent_id": "<string>",
"try": 123,
"retry_of": "<string>",
"status": "queued",
"outcome": "passed",
"task_id": "<string>",
"replay_url": "<string>",
"check": {
"before": "<string>",
"after": "<string>",
"passed": true
},
"judge": {
"passed": true,
"reason": "<string>"
},
"customer": [
{
"question": "<string>",
"answer": "<string>",
"actions": [
"admin_yes"
]
}
],
"error": "<string>",
"metrics": {
"active_seconds": 123,
"steps": 123,
"questions": 123,
"approvals": 123,
"cost_cents": 123
},
"runner_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"finished_at": "2023-11-07T05:31:56Z"
}
],
"has_more": true,
"next_cursor": "<string>"
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}{
"error": {
"type": "invalid_request",
"message": "<string>",
"code": "<string>",
"answered_by": "customer",
"test_case_ids": [
"<string>"
]
}
}Authorizations
An org API key (gh_live_…) from Settings → API keys in the console.
Path Parameters
The test run’s id (tr_…).
Query Parameters
Only this case’s attempts (an id or key).
Only this agent’s attempts.
Only attempts with this outcome.
Available options:
passed, failed, error How many to return, 1 to 100.
Required range:
1 <= x <= 100next_cursor from the previous page.