curl --request GET \
--url https://api.testdino.com/api/public/v1/{projectId}/test-runs/{runId} \
--header 'Authorization: Bearer <token>'{
"success": true,
"data": {
"id": "<string>",
"counter": 123,
"project": "<string>",
"ci": true,
"status": "pending",
"startTime": "2023-11-07T05:31:56Z",
"endTime": "2023-11-07T05:31:56Z",
"duration": 123,
"testStats": {
"total": 123,
"passed": 123,
"failed": 123,
"skipped": 123,
"flaky": 123,
"timedOut": 123,
"totalAttempts": 123,
"retriedTests": 123,
"pending": 123
},
"metadata": {
"git": {
"branch": "<string>",
"environment": "<string>",
"environmentSource": "<string>",
"commit": {
"hash": "<string>",
"message": "<string>",
"author": "<string>",
"email": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"repository": {
"name": "<string>",
"url": "<string>"
},
"pr": {
"id": "<string>",
"title": "<string>",
"url": "<string>",
"status": "<string>"
}
},
"ci": {
"provider": "<string>",
"pipeline": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"build": {
"number": "<string>",
"trigger": "<string>"
},
"environment": {
"name": "<string>",
"type": "<string>",
"os": "<string>",
"node": "<string>"
}
},
"system": {
"hostname": "<string>",
"cpu": {
"count": 123,
"model": "<string>"
},
"memory": {
"total": "<string>"
},
"os": "<string>",
"nodejs": "<string>",
"playwright": "<string>"
},
"test": {
"framework": {
"name": "<string>",
"version": "<string>"
},
"configFile": "<string>",
"rootDir": "<string>",
"testDir": "<string>",
"timeout": 123,
"globalTimeout": 123,
"retries": 123,
"workers": 123,
"fullyParallel": true,
"forbidOnly": true,
"grepInvert": "<string>",
"maxFailures": 123,
"reportSlowTests": {
"max": 123,
"threshold": 123
},
"shard": {},
"projects": [
{
"name": "<string>",
"testDir": "<string>",
"timeout": 123,
"retries": 123,
"grep": "<string>",
"outputDir": "<string>",
"repeatEach": 123,
"use": {
"browserName": "<string>",
"viewport": {
"width": 123,
"height": 123
},
"headless": true,
"trace": "<string>",
"screenshot": "<string>",
"video": "<string>",
"isMobile": true
}
}
],
"customTags": [
"<string>"
]
},
"azureUpload": {
"status": "<string>",
"url": "<string>"
}
},
"errorCategory": {
"failed": {
"assertion_failures": 123,
"element_not_found": 123,
"timeout_issues": 123,
"network_issues": 123,
"other_failures": 123
},
"flaky": {
"timing_related": 123,
"environment_dependent": 123,
"network_dependent": 123,
"assertion_intermittent": 123,
"other_flaky": 123
},
"skipped": {
"manually_skipped": 123,
"configuration_skipped": 123,
"conditional_skipped": 123
}
},
"liveStats": {},
"tagStats": [
{}
],
"url": "<string>",
"errorGroups": {
"runId": "<string>",
"summary": {
"totalTests": 123,
"passedTests": 123,
"failedTests": 123,
"flakyTests": 123,
"totalErrorGroups": 123,
"categorySummary": {}
},
"errorGroups": [
{
"id": "<string>",
"errorCategory": "<string>",
"signature": "<string>",
"count": 123,
"affectedTests": [
{
"id": "<string>",
"name": "<string>",
"fullTitle": "<string>",
"status": "passed",
"duration": 123,
"retries": 123,
"browserId": "<string>",
"errorMessage": "<string>",
"filePath": "<string>",
"stacktrace": "<string>",
"startTime": "2023-11-07T05:31:56Z",
"tags": [
"<string>"
]
}
]
}
]
},
"coverage": {},
"specs": [
{
"id": "<string>",
"name": "<string>",
"fileName": "<string>",
"filePath": "<string>",
"tags": [
"<string>"
],
"testStats": {
"passed": 123,
"failed": 123,
"flaky": 123,
"skipped": 123
},
"testCases": [
{
"id": "<string>",
"title": "<string>",
"fullTitle": "<string>",
"status": "passed",
"duration": 123,
"browserId": "<string>",
"failure_category": "<string>",
"error_type": "<string>",
"confidence": 123,
"metadata": {
"categories": [
"<string>"
],
"dependencies": [
"<string>"
],
"annotations": [
{}
],
"tags": [
"<string>"
]
}
}
]
}
],
"artifacts": {}
}
}Full detail for a single test run.
Returns test stats (pass/fail/skip/flaky), git metadata, tag stats, error categorization, and a deep-link to the TestDino UI. Use ?include= to bundle errors, coverage, specs, or artifacts into the same response.
curl --request GET \
--url https://api.testdino.com/api/public/v1/{projectId}/test-runs/{runId} \
--header 'Authorization: Bearer <token>'{
"success": true,
"data": {
"id": "<string>",
"counter": 123,
"project": "<string>",
"ci": true,
"status": "pending",
"startTime": "2023-11-07T05:31:56Z",
"endTime": "2023-11-07T05:31:56Z",
"duration": 123,
"testStats": {
"total": 123,
"passed": 123,
"failed": 123,
"skipped": 123,
"flaky": 123,
"timedOut": 123,
"totalAttempts": 123,
"retriedTests": 123,
"pending": 123
},
"metadata": {
"git": {
"branch": "<string>",
"environment": "<string>",
"environmentSource": "<string>",
"commit": {
"hash": "<string>",
"message": "<string>",
"author": "<string>",
"email": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"repository": {
"name": "<string>",
"url": "<string>"
},
"pr": {
"id": "<string>",
"title": "<string>",
"url": "<string>",
"status": "<string>"
}
},
"ci": {
"provider": "<string>",
"pipeline": {
"id": "<string>",
"name": "<string>",
"url": "<string>"
},
"build": {
"number": "<string>",
"trigger": "<string>"
},
"environment": {
"name": "<string>",
"type": "<string>",
"os": "<string>",
"node": "<string>"
}
},
"system": {
"hostname": "<string>",
"cpu": {
"count": 123,
"model": "<string>"
},
"memory": {
"total": "<string>"
},
"os": "<string>",
"nodejs": "<string>",
"playwright": "<string>"
},
"test": {
"framework": {
"name": "<string>",
"version": "<string>"
},
"configFile": "<string>",
"rootDir": "<string>",
"testDir": "<string>",
"timeout": 123,
"globalTimeout": 123,
"retries": 123,
"workers": 123,
"fullyParallel": true,
"forbidOnly": true,
"grepInvert": "<string>",
"maxFailures": 123,
"reportSlowTests": {
"max": 123,
"threshold": 123
},
"shard": {},
"projects": [
{
"name": "<string>",
"testDir": "<string>",
"timeout": 123,
"retries": 123,
"grep": "<string>",
"outputDir": "<string>",
"repeatEach": 123,
"use": {
"browserName": "<string>",
"viewport": {
"width": 123,
"height": 123
},
"headless": true,
"trace": "<string>",
"screenshot": "<string>",
"video": "<string>",
"isMobile": true
}
}
],
"customTags": [
"<string>"
]
},
"azureUpload": {
"status": "<string>",
"url": "<string>"
}
},
"errorCategory": {
"failed": {
"assertion_failures": 123,
"element_not_found": 123,
"timeout_issues": 123,
"network_issues": 123,
"other_failures": 123
},
"flaky": {
"timing_related": 123,
"environment_dependent": 123,
"network_dependent": 123,
"assertion_intermittent": 123,
"other_flaky": 123
},
"skipped": {
"manually_skipped": 123,
"configuration_skipped": 123,
"conditional_skipped": 123
}
},
"liveStats": {},
"tagStats": [
{}
],
"url": "<string>",
"errorGroups": {
"runId": "<string>",
"summary": {
"totalTests": 123,
"passedTests": 123,
"failedTests": 123,
"flakyTests": 123,
"totalErrorGroups": 123,
"categorySummary": {}
},
"errorGroups": [
{
"id": "<string>",
"errorCategory": "<string>",
"signature": "<string>",
"count": 123,
"affectedTests": [
{
"id": "<string>",
"name": "<string>",
"fullTitle": "<string>",
"status": "passed",
"duration": 123,
"retries": 123,
"browserId": "<string>",
"errorMessage": "<string>",
"filePath": "<string>",
"stacktrace": "<string>",
"startTime": "2023-11-07T05:31:56Z",
"tags": [
"<string>"
]
}
]
}
]
},
"coverage": {},
"specs": [
{
"id": "<string>",
"name": "<string>",
"fileName": "<string>",
"filePath": "<string>",
"tags": [
"<string>"
],
"testStats": {
"passed": 123,
"failed": 123,
"flaky": 123,
"skipped": 123
},
"testCases": [
{
"id": "<string>",
"title": "<string>",
"fullTitle": "<string>",
"status": "passed",
"duration": 123,
"browserId": "<string>",
"failure_category": "<string>",
"error_type": "<string>",
"confidence": 123,
"metadata": {
"categories": [
"<string>"
],
"dependencies": [
"<string>"
],
"annotations": [
{}
],
"tags": [
"<string>"
]
}
}
]
}
],
"artifacts": {}
}
}Project PAT (tdp_) token with public-api scope
The project identifier (e.g. project_abc123). Must match the project associated with your PAT.
The test run identifier (e.g. test_run_abc123).
Comma-separated optional data sections: errors, coverage, specs, artifacts, all.
Comma-separated artifact URLs to generate authenticated download links for (max 100). Only applies when include=artifacts.
Was this page helpful?