curl --request GET \
--url https://guidinghand.ai/v1/attempts/{attempt_id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://guidinghand.ai/v1/attempts/{attempt_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://guidinghand.ai/v1/attempts/{attempt_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"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",
"test_case": {
"object": "test_case",
"test_case_id": "tc_8Kq2mZ0aLp4x",
"key": "DSP-01",
"name": "Apps switched to dark mode",
"prompt": "All my windows suddenly went black. How do I get the white back?",
"start_state": "win10-22h2",
"setup_script": "<string>",
"success": {
"check_script": "<string>",
"rubric": "<string>"
},
"customer": {
"persona": "Retired teacher. Not technical. Short, polite answers.",
"facts": {
"Wi-Fi network": "HomeNet",
"Wi-Fi password": {
"secret": "blue-kite-42"
}
},
"clicks_admin_prompts": true,
"does_steps": true
},
"operator": {
"approvals": "approve"
},
"limits": {
"minutes": 10,
"steps": 250
},
"runs_on": "vm",
"category": "Display & graphics",
"tags": [
"uac"
],
"metadata": {
"customer_id": "cus_42"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"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>"
]
}
}Get an attempt
The attempt, with the copy of the test case it ran (test_case).
curl --request GET \
--url https://guidinghand.ai/v1/attempts/{attempt_id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://guidinghand.ai/v1/attempts/{attempt_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://guidinghand.ai/v1/attempts/{attempt_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"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",
"test_case": {
"object": "test_case",
"test_case_id": "tc_8Kq2mZ0aLp4x",
"key": "DSP-01",
"name": "Apps switched to dark mode",
"prompt": "All my windows suddenly went black. How do I get the white back?",
"start_state": "win10-22h2",
"setup_script": "<string>",
"success": {
"check_script": "<string>",
"rubric": "<string>"
},
"customer": {
"persona": "Retired teacher. Not technical. Short, polite answers.",
"facts": {
"Wi-Fi network": "HomeNet",
"Wi-Fi password": {
"secret": "blue-kite-42"
}
},
"clicks_admin_prompts": true,
"does_steps": true
},
"operator": {
"approvals": "approve"
},
"limits": {
"minutes": 10,
"steps": 250
},
"runs_on": "vm",
"category": "Display & graphics",
"tags": [
"uac"
],
"metadata": {
"customer_id": "cus_42"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"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 attempt’s id (at_…).
Response
OK
One try of one case with one agent: a fresh machine, a real GuidingHand task on it, the simulated customer, the check and the judge.
"at_Lc0aQ3Vb7sT2"
Which try of this case and agent, from 1.
The attempt this one retries, after an error.
queued, preparing, running, checking, done, cancelled error: something on GuidingHand’s side (the machine didn’t start, the check didn’t print False before the task, …). Errors never count against the agent and are retried up to 2 times.
passed, failed, error, null The GuidingHand task it ran.
The task’s replay in the console.
The check script’s output before and after the task.
Show child attributes
Show child attributes
The rubric’s verdict.
Show child attributes
Show child attributes
The simulated customer’s turns.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The case as it was when the run started.
Show child attributes
Show child attributes