curl --request GET \
--url https://api.docketqa.com/test_run/{test_run_id} \
--header 'X-API-KEY: <api-key>'{
"test_run": {
"id": 123,
"status": "<string>",
"test_blueprint_id": 123,
"test_group_run_id": 123,
"blueprint_metadata": {},
"results": [
{
"step_number": 123,
"task": "<string>",
"is_successful": true,
"result": "<string>",
"duration": 123,
"actions": [
{
"description": "<string>",
"type": "<string>",
"screenshot_url": "<string>",
"screenshot_url_before": "<string>",
"api_response": {}
}
]
}
],
"test_video_url": "<string>",
"test_video_download_url": "<string>",
"additional_attempts": [
{}
],
"created_at": "<string>",
"updated_at": "<string>"
}
}curl --request GET \
--url https://api.docketqa.com/test_run/{test_run_id} \
--header 'X-API-KEY: <api-key>'{
"test_run": {
"id": 123,
"status": "<string>",
"test_blueprint_id": 123,
"test_group_run_id": 123,
"blueprint_metadata": {},
"results": [
{
"step_number": 123,
"task": "<string>",
"is_successful": true,
"result": "<string>",
"duration": 123,
"actions": [
{
"description": "<string>",
"type": "<string>",
"screenshot_url": "<string>",
"screenshot_url_before": "<string>",
"api_response": {}
}
]
}
],
"test_video_url": "<string>",
"test_video_download_url": "<string>",
"additional_attempts": [
{}
],
"created_at": "<string>",
"updated_at": "<string>"
}
}Show Properties
"running", "passed", or "failed".title, type, device_type, starting_url, browser_zoom, viewport_width, viewport_height, variables, etc.) and the full steps array with all step properties (see step types).null while the test is still running.Show Result object properties
Show Action properties
"click_element", "input_text", "extract_content", "scroll_down", etc.).api type steps). May include api_response_url with a pre-signed URL to the full response body..webm file.num_retries > 0 and the first attempt failed). Each attempt contains results and test_video_url.{
"test_run": {
"id": 38,
"status": "failed",
"test_blueprint_id": 180,
"test_group_run_id": 35,
"blueprint_metadata": {
"id": 180,
"title": "Login Flow",
"type": "integration",
"device_type": "browser",
"starting_url": "https://example.com/login",
"browser_zoom": 1.0,
"viewport_width": 1440,
"viewport_height": 900,
"variables": null,
"steps": [
{
"action": "Enter 'user@example.com' in the email field",
"step_number": 1,
"type": "act",
"use_vision": false
},
{
"action": "Enter 'password123' in the password field",
"step_number": 2,
"type": "act",
"use_vision": false
}
]
},
"results": [
{
"step_number": 1,
"task": "Enter 'user@example.com' in the email field",
"is_successful": false,
"result": "The agent could not complete the objective because no email field was present on the page.",
"duration": 43,
"actions": [
{
"description": "Action: extract content with goal='Find any input fields'",
"type": "extract_content",
"screenshot_url": "https://..."
}
]
},
{
"step_number": 2,
"task": "Enter 'password123' in the password field",
"is_successful": false,
"result": "Step not completed",
"duration": 0,
"actions": []
}
],
"test_video_url": "https://...",
"test_video_download_url": "https://...",
"additional_attempts": [],
"created_at": "2025-07-03T01:38:03.032648+00:00",
"updated_at": "2025-07-03T01:40:05.043914+00:00"
}
}
test_runs[].id value to poll this endpoint until the status changes from "running" to "passed" or "failed".