Automated tests
Access and manage project-level data, build summaries, and test case results for your app projects using the App Accessibility REST API.
The automated scans API endpoints let you list, retrieve, and analyze your app projects, builds, and test cases in App Accessibility testing. Use these endpoints to manage projects, get build overviews, and fetch test case results for accessibility analysis.
Get a list of all automated test projects
Retrieve a paginated list of all projects. You can filter by project name.
Request Parameters
Request
curl 'https://api-app-accessibility.browserstack.com/automate/api/v1/project' \
-u YOUR_USERNAME:YOUR_ACCESS_KEY
-
page_size integer
The number of projects to return per page.
-
page_number integer
The page number to retrieve.
-
name string
Filter projects by name (optional).
Response attributes 200
application/json
Response
{
"success": true,
"projects": [
{
"id": 10001,
"name": "Example Project",
"normalised_name": "example+project",
"created_at": "2024-11-22T06:20:29.000Z",
"team_id": null
},
{
"id": 10002,
"name": "Example Project 1",
"normalised_name": "example+project+1",
"created_at": "2024-11-22T08:55:20.000Z",
"team_id": null
},
{
"id": 10003,
"name": "Example Project 2",
"normalised_name": "example+project+2",
"created_at": "2024-11-22T10:20:10.000Z",
"team_id": null
}
],
"info": {
"page": 2,
"page_size": 1,
"count": 3,
"prev": 1,
"next": 3
}
}
-
success boolean
Whether the request was successful.
-
project object
The project object.
-
id integer
Unique identifier for the project.
-
name string
Name of the project.
-
normalised_name string
Project name in a normalized format (URL-friendly).
-
created_at string
ISO 8601 timestamp when the project was created.
-
team_id integer/null
Associated team ID, if any.
-
Get a list of all builds
Retrieve a paginated list of all builds for a specific project using the project ID. You can filter builds by name, test health, creation date, bundle ID, and user ID.
Request Parameters
Request
curl 'https://api-app-accessibility.browserstack.com/automate/api/v1/project/{project_id}/build?page_size=30&page=1' \
-u YOUR_USERNAME:YOUR_ACCESS_KEY
-
project_id* integer
The unique identifier of the project to retrieve builds for.
-
page_size integer
Number of objects needed per page.
-
page integer
Page number to navigate.
-
build_name string
To search the build (optional).
-
test_health array
Filter by test health (e.g., [“passed”, “failed”]).
-
created_between array
Filter by creation date range (e.g., [“2024-12-10T00:00:00.652Z”,”2025-01-13T00:00:00.652Z”]).
-
bundle_id string
Bundle identifier (optional).
-
user_id string
BrowserStack user ID (optional).
Response attributes 200
application/json
Response
{
"success": true,
"info": {
"page": 1,
"page_size": 30,
"count": 2,
"prev": null,
"next": null
},
"filters": {
"users": [],
"status": ["passed", "failed", "skipped"]
},
"builds": [
{
"id": 100001,
"build_number": 46,
"name": "Anonymized Build",
"normalised_name": "anonymized_build",
"created_at": "2025-08-31T10:16:29.932Z",
"started_at": "2025-08-31T10:16:29.270Z",
"created_by": {
"id": 12345,
"user_id": 67890,
"name": "User One",
"email_id": "user.one@example.com",
"group_id": 111,
"status": "active"
},
"project_id": 55555,
"th_build_id": "anonymized_build_id_1",
"app_details": {
"name": "AnonymizedApp",
"version": "1.0.0",
"framework": "unknown",
"package_name": "com.example.anonymizedapp"
},
"session_data": {
"sdk": {"version": "1.40.0"},
"language": "java",
"frameworkName": "Cucumber-Junit5",
"frameworkVersion": "",
"testFramework": {
"name": "selenium",
"version": "4.13.0"
}
},
"status": "failed",
"test_health": {
"total_count": 2,
"failed_count": 2
},
"issue_summary": {
"total": 46,
"severity_count": {
"minor": 6,
"serious": 16,
"critical": 20,
"moderate": 4,
"failed_issues": 46,
"needs_review": 0,
"confirmed": 0,
"hidden_issues": 0,
"duplicate_issues": 25
},
"scan_count": 8
}
},
{
"id": 100002,
"build_number": 45,
"name": "Anonymized Build 2",
"normalised_name": "anonymized_build_2",
"created_at": "2025-08-29T19:32:23.721Z",
"started_at": "2025-08-29T19:32:22.913Z",
"created_by": {
"id": 12345,
"user_id": 67890,
"name": "User One",
"email_id": "user.one@example.com",
"group_id": 111,
"status": "active"
},
"project_id": 55555,
"th_build_id": "anonymized_build_id_2",
"app_details": {
"name": "AnonymizedApp",
"version": "1.0.0",
"framework": "unknown",
"package_name": "com.example.anonymizedapp"
},
"session_data": {
"sdk": {"version": "1.40.0"},
"language": "java",
"frameworkName": "Cucumber-Junit5",
"frameworkVersion": "",
"testFramework": {
"name": "selenium",
"version": "4.13.0"
}
},
"status": "failed",
"test_health": {
"total_count": 2,
"failed_count": 2
},
"issue_summary": {
"total": 168,
"severity_count": {
"minor": 4,
"serious": 94,
"critical": 66,
"moderate": 4,
"failed_issues": 168,
"needs_review": 0,
"confirmed": 0,
"hidden_issues": 0,
"duplicate_issues": 158
},
"scan_count": 10
}
}
]
}
-
success boolean
Whether the request was successful.
-
info object
Pagination information for the builds list.
-
page integer
Current page number.
-
page_size integer
Number of objects per page.
-
count integer
Total number of builds.
-
prev integer/null
Previous page number, if any.
-
next integer/null
Next page number, if any.
-
-
filters object
Available filter options for users and status.
-
users array
List of users.
-
status array
List of build statuses.
-
-
builds array
Array of build objects.
-
id integer
Build ID.
-
build_number integer
Build number.
-
name string
Build name.
-
normalised_name string
Normalized build name.
-
created_at string
Build creation timestamp.
-
started_at string
Build start timestamp.
-
created_by object
User who created the build.
-
id integer
Internal user ID.
-
user_id integer
BrowserStack user ID.
-
name string
Name of the user.
-
email_id string
Email address of the user.
-
group_id integer
Group ID of the user.
-
status string
Status of the user.
-
-
project_id integer
Project ID.
-
th_build_id string
TestHub build ID.
-
app_details object
App details.
-
name string
App name.
-
version string/null
App version.
-
package_name string
App package name.
-
-
session_data object
Session data for the build.
-
sdk object
SDK info.
-
version string
SDK version.
-
-
language string
Programming language.
-
frameworkName string
Test framework name.
-
frameworkVersion string
Test framework version.
-
testFramework object
Test framework details.
-
name string
Name of the framework used for testing.
-
version string
Version of the framework used for testing.
-
-
-
status string
Build status.
-
test_health object
Test health summary.
-
total_count integer
Total test count.
-
failed_count integer
Failed test count.
-
-
issue_summary object
Summary of issues found in the build.
-
total integer
Total number of issues.
-
severity_count object
Count of issues by severity.
-
minor integer
Number of minor issues.
-
serious integer
Number of serious issues.
-
critical integer
Number of critical issues.
-
moderate integer
Number of moderate issues.
-
failed_issues integer
Number of failed issues.
-
needs_review integer
Number of issues needing review.
-
confirmed integer
Number of confirmed issues.
-
hidden_issues integer
Number of hidden issues.
-
duplicate_issues integer
Number of duplicate issues.
-
-
scan_count integer
Number of scans performed.
-
-
Get a list of all test cases in a build
Retrieve a list of all tests for a specific build using the build ID. You can filter by name, device, or test health.
Request Parameters
Request
curl 'https://api-app-accessibility.browserstack.com/automate/api/v1/project/{project_id}/build/{th_build_id}/test' \
-u YOUR_USERNAME:YOUR_ACCESS_KEY
-
project_id* integer
Unique identifier for the project.
-
th_build_id* string
Unique identifier for the build.
-
page_size integer
Number of test cases to return per page.
-
page integer
Page number to retrieve.
-
name string
Filter test cases by name (optional).
-
device string
Filter test cases by device name (optional).
-
test_health array
Filter test cases by health status (e.g., passed, failed).
Response attributes 200
application/json
Response
{
"success": true,
"filters": {
"status": [
"passed",
"failed",
"skipped",
"running"
]
},
"test_cases": [
{
"id": 10001,
"uuid": "anon-uuid-1",
"name": "Sample Test 1 - Navigate to app url",
"status": "failed",
"created_at": "2025-08-29T19:33:48.286Z",
"created_by": {
"id": 12345,
"user_id": 67890,
"name": "User One",
"email_id": "user.one@example.com",
"group_id": 111,
"status": "active"
},
"tags": null,
"error": null,
"th_btcer_id": "anon-uuid-1",
"device": {
"model": "Samsung Galaxy Tab A9 Plus",
"os": "ANDROID",
"os_version": "14"
},
"integrations": [],
"app_accessibility": {
"status": "failed",
"summary": {
"total": 139,
"scan_count": 5,
"severity_count": {
"minor": 0,
"serious": 86,
"critical": 51,
"moderate": 2,
"duplicate_issues": 134
}
},
"created_at": "2025-08-29T19:33:48.000Z",
"updated_at": "2025-08-29T19:37:52.000Z"
},
"issue_summary": {
"total": 139,
"scan_count": 5,
"severity_count": {
"minor": 0,
"serious": 86,
"critical": 51,
"moderate": 2,
"duplicate_issues": 134
}
}
},
{
"id": 10002,
"uuid": "anon-uuid-2",
"name": "Sample Test 2 - Navigate to app url",
"status": "failed",
"created_at": "2025-08-29T19:32:32.708Z",
"created_by": {
"id": 12345,
"user_id": 67890,
"name": "User One",
"email_id": "user.one@example.com",
"group_id": 111,
"status": "active"
},
"tags": null,
"error": null,
"th_btcer_id": "anon-uuid-2",
"device": {
"model": "Samsung Galaxy S22 Ultra",
"os": "ANDROID",
"os_version": "12"
},
"integrations": [],
"app_accessibility": {
"status": "failed",
"summary": {
"total": 29,
"scan_count": 5,
"severity_count": {
"minor": 4,
"serious": 8,
"critical": 15,
"moderate": 2,
"duplicate_issues": 24
}
},
"created_at": "2025-08-29T19:32:32.000Z",
"updated_at": "2025-08-29T19:35:54.000Z"
},
"issue_summary": {
"total": 29,
"scan_count": 5,
"severity_count": {
"minor": 4,
"serious": 8,
"critical": 15,
"moderate": 2,
"duplicate_issues": 24
}
}
}
],
"info": {
"page": 1,
"page_size": 30,
"count": 2,
"prev": null,
"next": null
}
}
-
success boolean
True if the request was successful.
-
filters object
Available filter options for test status.
-
status array
List of possible test statuses.
-
-
test_cases array
List of test case objects.
-
id integer
Anonymized unique identifier for the test case.
-
uuid string
Anonymized UUID of the test case.
-
name string
Name of the test case.
-
status string
Status of the test case (e.g., passed, failed).
-
created_at string
ISO 8601 timestamp when the test case was created.
-
created_by object
Anonymized user who created the test case.
-
id integer
Internal user ID.
-
user_id integer
BrowserStack user ID.
-
name string
Name of the user.
-
email_id string
Email address of the user.
-
group_id integer
Group ID of the user.
-
status string
Status of the user.
-
-
tags array/null
Tags associated with the test case (nullable).
-
error string/null
Error message, if any (nullable).
-
th_btcer_id string
Anonymized test case execution result ID.
-
device object
Device details for the test case.
-
model string
Device model name.
-
os string
Device operating system.
-
os_version string
Device OS version.
-
-
integrations array
List of integrations for the test case.
-
pm_tool_type string
Project management tool type.
-
ticket_link string
Link to the related ticket.
-
report_type string
Type of report (e.g., automate_build).
-
resource_id string
Resource ID for the integration.
-
-
app_accessibility object
Accessibility summary for the test case.
-
status string
Accessibility status.
-
summary object
Accessibility summary details.
-
total integer
Total accessibility issues.
-
scan_count integer
Number of scans performed.
-
severity_count object
Count of issues by severity.
-
minor integer
Number of minor issues.
-
serious integer
Number of serious issues.
-
critical integer
Number of critical issues.
-
moderate integer
Number of moderate issues.
-
failed_issues integer
Number of failed issues.
-
needs_review integer
Number of issues needing review.
-
confirmed integer
Number of confirmed issues.
-
hidden_issues integer
Number of hidden issues.
-
duplicate_issues integer
Number of duplicate issues.
-
-
-
created_at string
ISO 8601 timestamp when accessibility summary was created.
-
updated_at string
ISO 8601 timestamp when accessibility summary was last updated.
-
-
issue_summary object
Issue summary for the test case.
-
total integer
Total number of issues.
-
severity_count object
Count of issues by severity.
-
minor integer
Number of minor issues.
-
serious integer
Number of serious issues.
-
critical integer
Number of critical issues.
-
moderate integer
Number of moderate issues.
-
failed_issues integer
Number of failed issues.
-
needs_review integer
Number of issues needing review.
-
confirmed integer
Number of confirmed issues.
-
hidden_issues integer
Number of hidden issues.
-
duplicate_issues integer
Number of duplicate issues.
-
-
scan_count integer
Number of scans performed.
-
-
info object
Pagination information about the test case.
-
page integer
Current page number.
-
page_size integer
Number of objects per page.
-
count integer
Total number of builds.
-
prev integer/null
Previous page number, if any.
-
next integer/null
Next page number, if any.
-
-
Get specific build details
Retrieve details for a specific build by its unique UUID. This includes metadata, issue summary, app details, session data, and integrations.
Request Parameters
Request
curl 'https://api-app-accessibility.browserstack.com/automate/api/v1/build/{th_uuid}' \
-u YOUR_USERNAME:YOUR_ACCESS_KEY
-
th_uuid* string
The unique UUID of the build to retrieve.
Response attributes 200
application/json
Response
{
"success": true,
"meta_data": {
"build_id": 45,
"name": "sdk_wrapper_build",
"created_at": "2025-08-29T19:32:23.721Z",
"ended_at": null,
"created_by": {
"id": 121393,
"user_id": 9309695,
"name": "User Name",
"email_id": "user@example.com",
"group_id": 2,
"status": "active"
},
"public_link": {
"isEnabled": false,
"link": ""
},
"issue_summary": {
"total": 168,
"severity_count": {
"minor": 4,
"serious": 94,
"critical": 66,
"moderate": 4,
"failed_issues": 168,
"needs_review": 0,
"confirmed": 0,
"hidden_issues": 0,
"duplicate_issues": 158
},
"scan_count": 10
},
"project_name": "anonymized_project_name",
"app_details": null,
"session_data": {
"os": [
{
"os": "android",
"os_version": "12",
"model": null
},
{
"os": "android",
"os_version": "14",
"model": null
}
],
"framework": {
"name": "Cucumber-Junit5",
"version": ""
},
"sdk": {
"version": "1.40.0"
},
"test_case_count": 2
},
"wcag_version": [
"WCAG 2.1 AAA"
],
"best_practice": true,
"eligible_rules": {
"Accessible Elements": {
"interactive-element-accessibility": {
"label": "Accessible Interactive Elements",
"is_selected": true
},
"interactive-element-unsupported-type": {
"label": "Interactive Elements with Unsupported Type",
"is_selected": true
}
},
"Touch Target Size": {
"touch-target-size": {
"label": "Touch Target Size",
"is_selected": true
},
"touch-target-size-and-spacing": {
"label": "Touch Target Size & Spacing",
"is_selected": true
}
},
"Color Contrast": {
"text-color-contrast": {
"label": "Text Element Color Contrast (Minimum)",
"is_selected": true
},
"non-text-color-contrast": {
"label": "Non-Text Element Color Contrast",
"is_selected": true
}
},
"Readable Text and Layout": {
"readable-text-spacing": {
"label": "Readable Text Spacing",
"is_selected": true
},
"two-dimensional-scroll": {
"label": "Two-Dimensional Scrolling",
"is_selected": true
},
"responsive-containers": {
"label": "Responsive Containers",
"is_selected": true
}
},
"Input Purpose": {
"input-type-for-input-field": {
"label": "Input type for Input Fields",
"is_selected": true
},
"accessible-input-field-label": {
"label": "Accessible Input Field Labels",
"is_selected": true
}
},
"Accessibility Labels": {
"editable-element-content-label": {
"label": "Editable Element Accessibility Label",
"is_selected": true
},
"imageview-element-content-label": {
"label": "Meaningful accessibility label for images",
"is_selected": true
},
"duplicate-element-content-label": {
"label": "Duplicate Accessibility Label on Screen",
"is_selected": true
},
"interactable-element-content-label": {
"label": "Interactive Element Accessibility Label",
"is_selected": true
},
"checkbox-element-content-label": {
"label": "Checkbox Element Accessibility Label",
"is_selected": true
},
"switch-element-content-label": {
"label": "Switch Element Accessibility Label",
"is_selected": true
},
"editable-element-no-content-description": {
"label": "Content Description in Editable Elements",
"is_selected": true
},
"state-in-content-label": {
"label": "View State in Element Accessibility Label",
"is_selected": true
},
"view-type-in-content-label": {
"label": "View Type in Element Accessibility Label",
"is_selected": true
},
"button-element-content-label-capitalization": {
"label": "Button Element Accessibility Label Capitalization",
"is_selected": true
},
"special-character-element-content-label": {
"label": "Special-Character Element Accessibility Label",
"is_selected": true
},
"label-in-name": {
"label": "Label in Name",
"is_selected": true
},
"label-at-front": {
"label": "Accessibility Label at front",
"is_selected": true
},
"link-text-purpose": {
"label": "Link Text Purpose",
"is_selected": true
}
},
"Text resize": {
"text-magnification": {
"label": "Font Magnification Support",
"is_selected": true
},
"readable-text-size": {
"label": "Readable Font Size",
"is_selected": true
},
"text-truncation": {
"label": "Text Truncation",
"is_selected": true
}
},
"Display Orientation": {
"app-orientation-support": {
"label": "App Orientation Lock",
"is_selected": true
},
"screen-orientation": {
"label": "Supported Screen Orientations",
"is_selected": true
}
},
"Keyboard and Focus Navigation": {
"traversal-order-cycle": {
"label": "Traversal Order Cycle",
"is_selected": true
},
"overlapping-interactive-elements": {
"label": "Overlapping Interactive Elements",
"is_selected": true
},
"meaningful-reading-order": {
"label": "Meaningful Reading Order",
"is_selected": true
},
"focus-order-for-interactive-elements": {
"label": "Focus Order for Interactive Elements",
"is_selected": true
}
},
"Accessible Images": {
"images-of-text": {
"label": "Images with Text",
"is_selected": true
}
}
},
"normalised_name": "sdk_wrapper_build",
"devices": [
{
"id": 27943,
"os": "ANDROID",
"os_version": "12",
"browser_name": "",
"browser_version": null,
"model": "Samsung Galaxy S22 Ultra",
"created_at": "2024-12-16T08:00:50.000Z"
},
{
"id": 28690,
"os": "ANDROID",
"os_version": "14",
"browser_name": "",
"browser_version": null,
"model": "Samsung Galaxy Tab A9 Plus",
"created_at": "2024-12-17T01:00:53.000Z"
}
],
"show_deduplication": true,
"integrations": [],
"any_remediations_in_processing": false,
"test_configuration": {
"best_practice": true,
"wcag_criteria": [
"WCAG 2.1 AAA"
]
},
"all_member_review_issue": false,
"auto_scan": null,
"status": "failed",
"test_health": {
"total_count": 2,
"failed_count": 2
}
}
}
-
success boolean
True if the request was successful.
-
meta_data Object
Metadata and details for the build.
-
build_id integer
Unique identifier for the build.
-
name string
Name of the build.
-
created_at string
ISO 8601 timestamp when the build was created.
-
ended_at string/null
ISO 8601 timestamp when the build ended, or null if ongoing.
-
created_by object
User who created the build.
-
id integer
Internal user ID.
-
user_id integer
BrowserStack user ID.
-
name string
Name of the user.
-
email_id string
Email address of the user.
-
group_id integer
Group ID of the user.
-
status string
Status of the user.
-
-
public_link object
Public link details for the build.
-
is_enabled boolean
Whether the public link is enabled.
-
link string/null
The public link URL, or null if not enabled.
-
-
issue_summary object
Summary of issues for the build.
-
total integer
Total number of issues.
-
severity_count object
Count of issues by severity.
-
minor integer
Number of minor issues.
-
serious integer
Number of serious issues.
-
critical integer
Number of critical issues.
-
moderate integer
Number of moderate issues.
-
failed_issues integer
Number of failed issues.
-
needs_review integer
Number of issues needing review.
-
confirmed integer
Number of confirmed issues.
-
hidden_issues integer
Number of hidden issues.
-
duplicate_issues integer
Number of duplicate issues.
-
-
scan_count integer
Number of scans performed.
-
-
project_name string
Name of the associated project.
-
app_details object
Details of the app tested in the build.
-
name string
App name.
-
version string/null
App version.
-
package_name string
App package name.
-
-
session_data object
Session data for the build.
-
os array
List of operating systems used.
-
name string
OS name.
-
version string
OS version.
-
-
framework object
Test framework details.
-
name string
Framework name.
-
version string
Framework version.
-
-
sdk object
SDK details.
-
version string
SDK version.
-
-
test_case_count integer
Number of test cases in the build.
-
-
wcag_version object
WCAG version used for accessibility testing, or null if not applicable.
-
version string
WCAG version.
-
-
best_practice boolean
Whether best practices are enabled for the build.
-
eligible_rules object
The eligible accessibility rules for the build.
-
normalised_name string
Normalized build name.
-
devices array
List of devices used in the build.
-
id integer
Device ID.
-
os string
Device OS.
-
os_version string
Device OS version.
-
browser_name string
Browser name, if applicable.
-
model string
Device model.
-
created_at string
Device creation timestamp.
-
-
show_deduplication boolean
Whether deduplication is enabled for the build.
-
integrations array
List of integrations associated with the build.
-
pm_tool_type string
Project management tool type.
-
ticket_link string
Link to the related ticket.
-
report_type string
Type of report (e.g., automate_build).
-
resource_id string
Resource ID for the integration.
-
-
any_remediations_in_progress boolean
Whether there are any remediations in progress for the build.
-
test_configuration object
Test configuration details for the build.
-
best_practice boolean
Whether best practices are enabled.
-
needs_review_enabled boolean
Whether the needs review feature is enabled.
-
wcag_criteria array
List of WCAG criteria enabled for the build.
-
-
all_member_review_issue boolean
Whether all members can review issues for the build.
-
auto_scan boolean
Whether auto-scan is enabled for the build.
-
status string
Current status of the build.
-
test_health object
Test health summary for the build.
-
total_count integer
Total test count.
-
failed_count integer
Failed test count.
-
-
Get build issue summary
Retrieve a summary of a test build in a project, including test results and issue statistics. You can filter by test case UUID or device.
Request Parameters
Request
curl 'https://api-app-accessibility.browserstack.com/automate/api/v1/project/{project_id}/build/{th_build_id}/overview' \
-u YOUR_USERNAME:YOUR_ACCESS_KEY
-
project_id* integer
Unique identifier for the project.
-
th_build_id* integer
Unique identifier for the build.
-
test_case_uuid string
Filter the overview by a specific test case UUID (optional).
-
device array
Filter the overview by one or more device names (optional).
Response attributes 200
application/json
Response
{
"success": true,
"data": {
"th_build_id": "anonymized_build_id_2",
"issue_summary": {
"total": 168,
"severity_count": {
"minor": 4,
"serious": 94,
"critical": 66,
"moderate": 4,
"failed_issues": 168,
"needs_review": 0,
"confirmed": 0,
"hidden_issues": 0,
"duplicate_issues": 158
},
"scan_count": 10
},
"build_number": 45,
"test_health": {
"total_count": 2,
"failed_count": 2
},
"issue_category": [
{"count": 44, "category": "Color Contrast"},
{"count": 6, "category": "Input Purpose"},
{"count": 7, "category": "Accessibility Labels"},
{"count": 4, "category": "Readable Text and Layout"},
{"count": 2, "category": "Text resize"},
{"count": 57, "category": "Accessible Elements"},
{"count": 48, "category": "Touch Target Size"}
],
"trend_data": [
{
"id": 100001,
"build_number": 46,
"issue_summary": {
"total": 46,
"severity_count": {
"minor": 6,
"serious": 16,
"critical": 20,
"moderate": 4,
"failed_issues": 46,
"needs_review": 0,
"confirmed": 0,
"hidden_issues": 0,
"duplicate_issues": 25
},
"scan_count": 8
},
"issue_category": [
{"count": 6, "category": "Color Contrast"},
{"count": 6, "category": "Input Purpose"},
{"count": 6, "category": "Accessibility Labels"},
{"count": 6, "category": "Readable Text and Layout"},
{"count": 2, "category": "Text resize"},
{"count": 12, "category": "Accessible Elements"},
{"count": 8, "category": "Touch Target Size"}
],
"th_build_id": "anonymized_build_id_1",
"test_health": {
"total_count": 2,
"failed_count": 2
}
},
{
"id": 100002,
"build_number": 45,
"issue_summary": {
"total": 168,
"severity_count": {
"minor": 4,
"serious": 94,
"critical": 66,
"moderate": 4,
"failed_issues": 168,
"needs_review": 0,
"confirmed": 0,
"hidden_issues": 0,
"duplicate_issues": 158
},
"scan_count": 10
},
"issue_category": [
{"count": 44, "category": "Color Contrast"},
{"count": 6, "category": "Input Purpose"},
{"count": 7, "category": "Accessibility Labels"},
{"count": 4, "category": "Readable Text and Layout"},
{"count": 2, "category": "Text resize"},
{"count": 57, "category": "Accessible Elements"},
{"count": 48, "category": "Touch Target Size"}
],
"th_build_id": "anonymized_build_id_2",
"test_health": {
"total_count": 2,
"failed_count": 2
}
}
]
}
}
-
success boolean
Whether the request was successful.
-
data object
Overview data for the build.
-
th_build_id string
Anonymized build UUID.
-
issue_summary object
Summary of issues found in the build.
-
total integer
Total number of issues.
-
severity_count object
Count of issues by severity.
-
minor integer
Number of minor issues.
-
serious integer
Number of serious issues.
-
critical integer
Number of critical issues.
-
moderate integer
Number of moderate issues.
-
failed_issues integer
Number of failed issues.
-
needs_review integer
Number of issues needing review.
-
confirmed integer
Number of confirmed issues.
-
hidden_issues integer
Number of hidden issues.
-
duplicate_issues integer
Number of duplicate issues.
-
-
scan_count integer
Number of scans performed.
-
-
build_number integer
The build number.
-
test_health object
Test health summary for the build.
-
total_count integer
Total test count.
-
failed_count integer
Failed test count.
-
-
issue_category array
List of issue categories and their counts.
-
count integer
Number of issues in this category.
-
category string
Name of the issue category.
-
-
trend_data array
Trend data for previous builds.
-
id integer
Anonymized trend entry ID.
-
build_number integer
Build number for the trend entry.
-
issue_summary object
Issue summary for the trend entry.
-
total integer
Total number of issues.
-
severity_count object
Count of issues by severity.
-
minor integer
Number of minor issues.
-
serious integer
Number of serious issues.
-
critical integer
Number of critical issues.
-
moderate integer
Number of moderate issues.
-
failed_issues integer
Number of failed issues.
-
needs_review integer
Number of issues needing review.
-
confirmed integer
Number of confirmed issues.
-
hidden_issues integer
Number of hidden issues.
-
duplicate_issues integer
Number of duplicate issues.
-
-
scan_count integer
Number of scans performed.
-
-
issue_category array
List of issue categories for the trend entry.
-
count integer
Number of issues in this category.
-
category string
Name of the issue category.
-
-
th_build_id string
Anonymized build UUID for the trend entry.
-
test_health object
Test health summary for the trend entry.
-
total_count integer
Total test count.
-
failed_count integer
Failed test count.
-
-
-
Get detailed issue level data for the build
Get detailed accessibility data, metadata, and additional information for each test case in a build. You can filter results by test case, device, severity, rule, and more.
Request Parameters
Request
curl 'https://api-app-accessibility.browserstack.com/automate/api/v1/build/{th_uuid}/snapshot' \
-u YOUR_USERNAME:YOUR_ACCESS_KEY
-
th_uuid* string
Unique identifier for the build.
-
test_case_uuids array
List of test case UUIDs to filter results (optional).
-
devices array
List of device names to filter results (optional).
-
severity array
List of severity levels to filter results (optional).
-
rules array
List of rule IDs to filter results (optional).
- Show 4 more
-
scanWithIssuesOnly boolean
If true, only return scans with issues (optional).
-
hideExperimentalRules boolean
If true, hide results for experimental rules (optional).
-
page integer
Page number to retrieve (optional).
-
page_size integer
Number of results per page (optional).
Response attributes 200
application/json
Response
{
"success": true,
"data": [
{
"meta": {
"snapshot_id": 38,
"screenshot_url": "https://cdn.example.com/screenshots/screenshot-17e976b2.jpeg",
"testcase_name": "Login button accessibility check",
"device": {
"model": "Pixel 7",
"os": "Android",
"os_version": "13"
},
"status": "finished",
"no_unique_issues": 0,
"severity_count": {
"serious": 2,
"critical": 1,
"minor": 3
},
"integrations": [
{
"pm_tool_type": "Jira",
"ticket_link": "https://jira.example.com/browse/APP-202",
"report_type": "automate_snapshot",
"resource_id": "snapshot_report_45678"
}
]
},
"aggregated_results": [
{
"rule_id": "interactable-element-content-label",
"label": "Interactive element accessibility label",
"description": "All interactable UI elements or custom views must have a descriptive accessibility label. This label is essential for Screen Readers to understand the element's name, value, and purpose.",
"suggestion": "Add a descriptive label to the element.",
"show_suggestion": true,
"severity": "Serious",
"wcag_version": "2.1",
"wcag_level": "AA",
"guidelines": [
{
"version": "2.1",
"authority": "WCAG",
"level": "A",
"success_criteria_version": "1.3.1",
"url": "https://www.w3.org/TR/WCAG21/#info-and-relationships",
"message": "WCAG 2.1-1.3.1 A"
},
{
"version": "2.1",
"authority": "WCAG",
"level": "AA",
"success_criteria_version": "2.4.6",
"url": "https://www.w3.org/TR/WCAG21/#headings-and-labels",
"message": "WCAG 2.1-2.4.6 AA"
},
{
"version": "2.1",
"authority": "WCAG",
"level": "A",
"success_criteria_version": "4.1.2",
"url": "https://www.w3.org/TR/WCAG21/#name-role-value",
"message": "WCAG 2.1-4.1.2 A"
}
],
"learn_more_link": "https://www.example.com/docs/app-accessibility/rule-repository/rules-list/name-role-value#interactive-element-accessibility-label",
"is_experimental": false,
"rule_issues": [
{
"uid": "issue-44385-1",
"rule_dynamic_meta": {
"accessibility_label": "",
"accessibility_label_key": [
"desc"
]
},
"serial_number": 1,
"issue_class_android": "android.webkit.WebView",
"issue_details": [
{
"label": "className",
"value": "android.webkit.WebView",
"important": false
}
],
"issue_id_android": "ISSUE-001",
"issue_type": "GENERIC",
"show_issue_details_link": false
}
]
}
],
"bounding_boxes": {
"issue-44385-1": {
"serial_number": 1,
"x": 0,
"y": 15.292,
"height": 70.958,
"width": 100
}
}
}
]
}
-
success boolean
Indicates if the request was successful.
-
data array
Array of snapshot result objects, each containing metadata and accessibility findings for a test case.
-
meta object
Metadata about the snapshot, including device and severity details.
-
snapshot_id integer
Unique identifier for the snapshot.
-
screenshot_url string
URL of the screenshot image for the snapshot.
-
device object
Device information for the snapshot.
-
model string
Device model name.
-
os string
Device operating system.
-
os_version string
Device OS version.
-
-
testcase_name string
Name of the test case associated with the snapshot.
-
no_unique_issues boolean
Whether there are unique issues in this snapshot.
-
severity_count object
Number of issues by severity for this snapshot.
-
serious integer
Count of serious issues.
-
critical integer
Count of critical issues.
-
minor integer
Count of minor issues.
-
-
integrations array
Integrations associated with this snapshot.
-
pm_tool_type string
Project management tool type.
-
ticket_link string
Link to the related ticket.
-
report_type string
Type of report (e.g., automate_build).
-
resource_id string
Resource ID for the integration.
-
-
-
aggregated_results array
Accessibility rule results aggregated for this snapshot.
-
rule_id string
Unique ID for the accessibility rule.
-
label string
Human-readable label for the rule.
-
description string
Description of the accessibility rule.
-
suggestion string
Suggested fix or improvement for the rule.
-
show_suggestion boolean
True if the suggestion should be shown to the user.
-
severity string
Severity level of the rule violation.
-
wcag_version string
WCAG version applicable to the rule.
-
wcag_level string
WCAG conformance level for the rule.
-
guidelines array
List of WCAG guideline references for this rule.
-
version string
WCAG guideline version.
-
authority string
Guideline authority (e.g., WCAG).
-
level string
Guideline conformance level.
-
success_criteria_version string
Success criteria version for the guideline.
-
url string
URL to the guideline documentation.
-
message string
Human-readable message for the guideline.
-
-
learn_more_link string
URL to learn more about the rule.
-
is_experimental boolean
True if the rule is experimental.
-
rule_issues array
List of individual issues found for this rule.
-
uid string
Unique ID for the rule issue.
-
rule_dynamic_meta object
Dynamic metadata for the rule issue, such as accessibility labels.
-
ai_result boolean
Whether the issue was detected by AI.
-
ai_suggested_label string
AI generated Accessibility label suggestion.
-
accessibility_label string
Accessibility label for the issue.
-
accessibility_label_key array
Keys for the accessibility label.
-
framework string
The framework used to conduct the test.
-
session_start_date string
The start date of the test session.
-
ai_remediation_status string
The AI remediation status for the issue.
-
-
serial_number integer
Serial number of the issue in the snapshot.
-
issue_class_android string
Android class name for the issue, if applicable.
-
issue_details array
List of details about the issue.
-
label string
Label for the issue detail.
-
value string
Value for the issue detail.
-
important boolean
True if this detail is important.
-
-
how_to_fix_desc string
Description of how to fix the issue.
-
issue_id_android string
Android-specific issue ID, if applicable.
-
issue_type string
Type of the issue (e.g., GENERIC).
-
show_issue_details_link boolean
True if a link to issue details should be shown.
-
duplication_count integer
Number of duplicate instances of this issue.
-
-
-
bounding_boxes object
Bounding box coordinates for issues in the snapshot.
-
issue_uid object
Bounding box for a specific issue (use the actual issue UID as the key in real data).
-
serial_number integer
Serial number of the issue.
-
x number
X coordinate.
-
y number
Y coordinate.
-
height number
Height of the bounding box.
-
width number
Width of the bounding box.
-
-
-
Get detailed data for a testcase
Retrieve comprehensive, issue-level accessibility results and snapshot metadata for a specific test case in a build.
Request Parameters
Request
curl 'https://api-app-accessibility.browserstack.com/automate/api/v1/build/{th_uuid}/test/{test_case_uuid}/snapshot' \
-u YOUR_USERNAME:YOUR_ACCESS_KEY
-
th_uuid* string
The unique identifier of the build containing the test case.
-
test_case_uuid* string
The unique identifier of the test case to retrieve results for.
Response attributes 200
application/json
Response
{
"success": true,
"data": {
"details": [
{
"meta": {
"snapshot_id": 100001,
"screenshot_url": "https://app-accessibility-assets.browserstack.com/{th_uuid}/{test_case_uuid}/screenshot-d6ffd5ff.jpeg",
"testcase_name": "Test-2",
"device": {
"model": "Samsung Galaxy S24",
"os": "ANDROID",
"os_version": "14"
},
"status": "rule_processing_ended",
"severity_count": {
"critical": 4,
"fail": 8,
"serious": 2,
"minor": 1,
"moderate": 1
},
"integrations": []
},
"aggregated_results": [
{
"rule_id": "editable-element-content-label",
"label": "Editable Element Accessibility Label",
"description": "Editable elements such as EditTexts or TextViews should have both name and value available to assistive technologies like Screen Readers and Voice Control. This ensures users can understand the field's purpose and value, and interact with it using voice commands.",
"suggestion": "Not Applicable",
"show_suggestion": false,
"severity": "Critical",
"wcag_version": "2.1",
"wcag_level": "AAA",
"guidelines": [
{
"version": "2.1",
"authority": "WCAG",
"level": "A",
"success_criteria_version": "1.3.1",
"url": "https://www.w3.org/TR/WCAG21/#info-and-relationships",
"message": "WCAG 2.1-1.3.1 A"
},
{
"version": "2.1",
"authority": "WCAG",
"level": "A",
"success_criteria_version": "4.1.2",
"url": "https://www.w3.org/TR/WCAG21/#name-role-value",
"message": "WCAG 2.1-4.1.2 A"
}
],
"learn_more_link": "https://www.browserstack.com/docs/app-accessibility/rule-repository/rules-list/info-and-relationships#editable-element-accessibility-label",
"is_experimental": false,
"rule_issues": [
{
"uid": "42362-ad4b05be-7e4d-44e8-9e04-b239043099d1_4",
"rule_dynamic_meta": {
"accessibility_label": "",
"accessibility_label_key": "hint",
"framework": "unknown",
"session_start_date": "20251009",
"ai_remediation_status": "not_initiated"
},
"serial_number": "1",
"issue_class_android": "android.widget.EditText",
"issue_details": [
{
"label": "className",
"value": "\"android.widget.EditText\"",
"important": false
},
{
"label": "viewId",
"value": "\"com.bsstag.espressotesting:id/url\"",
"important": false
},
{
"label": "frame",
"value": "{\"x\":60,\"y\":399,\"width\":960,\"height\":136}",
"important": false
},
{
"label": "visibleText",
"value": "\"\"",
"important": false
},
{
"label": "isImportantForAccessibility",
"value": true,
"important": false
},
{
"label": "isEditable",
"value": true,
"important": false
},
{
"label": "text",
"value": "\"\"",
"important": false
},
{
"label": "contentDescription",
"value": "\"\"",
"important": false
},
{
"label": "hint",
"value": "\"\"",
"important": false
},
{
"label": "labeledBy",
"value": "\"\"",
"important": false
},
{
"label": "detectedLabel",
"value": "\"\"",
"important": true
},
{
"label": "isCheckable",
"value": false,
"important": false
},
{
"label": "stateDesc",
"value": "\"\"",
"important": false
}
],
"how_to_fix_desc": "<document>Ensure the accessibility label is defined for this element using <code>hint</code>.</document>",
"issue_id_android": "com.bsstag.espressotesting:id/url",
"issue_type": "GENERIC",
"show_issue_details_link": false,
"duplication_count": 0
}
]
},
{
"rule_id": "imageview-element-content-label",
"label": "Meaningful accessibility label for images",
"description": "Informative ImageView or ImageButton elements should have a meaningful accessibility label that clearly describes their purpose or content. Labels must be accurate and relevant so screen reader users can understand the element's function—not just that it exists.",
"suggestion": "Not Applicable",
"show_suggestion": false,
"severity": "Critical",
"wcag_version": "2.1",
"wcag_level": "AAA",
"guidelines": [
{
"version": "2.1",
"authority": "WCAG",
"level": "A",
"success_criteria_version": "1.1.1",
"url": "https://www.w3.org/TR/WCAG21/#non-text-content",
"message": "WCAG 2.1-1.1.1 A"
}
],
"learn_more_link": "https://www.browserstack.com/docs/app-accessibility/rule-repository/rules-list/non-text-content#imageview-element-accessibility-label",
"is_experimental": false,
"ai_response_present": true,
"rule_issues": [
{
"uid": "41401-c4854315-41a3-41f1-9f83-3ec59326e5bb_6",
"rule_dynamic_meta": {
"ai_result": true,
"ai_suggested_label": "Stop the action.",
"accessibility_label": "",
"accessibility_label_key": [],
"existing_alt_text_score": "Confirmed Issue",
"framework": "unknown",
"session_start_date": "20251009",
"ai_remediation_status": "not_initiated"
},
"serial_number": "2",
"issue_class_android": "android.widget.ImageButton",
"issue_details": [
{
"label": "className",
"value": "\"android.widget.ImageButton\"",
"important": false
},
{
"label": "viewId",
"value": "\"com.bsstag.espressotesting:id/gallery\"",
"important": false
},
{
"label": "frame",
"value": "{\"x\":864,\"y\":1980,\"width\":168,\"height\":168}",
"important": false
},
{
"label": "visibleText",
"value": "\"\"",
"important": false
},
{
"label": "isImportantForAccessibility",
"value": true,
"important": false
},
{
"label": "text",
"value": "\"\"",
"important": false
},
{
"label": "contentDescription",
"value": "\"\"",
"important": false
},
{
"label": "hint",
"value": "\"\"",
"important": false
},
{
"label": "labeledBy",
"value": "\"\"",
"important": false
},
{
"label": "detectedLabel",
"value": "\"\"",
"important": true
}
],
"how_to_fix_desc": "<document>Add a concise and meaningful <code>contentDescription</code> that accurately reflects the image's purpose. This ensures screen readers can convey the right context to users.</document>",
"issue_id_android": "com.bsstag.espressotesting:id/gallery",
"issue_type": "AI_BASED_SUGGESTIONS",
"show_issue_details_link": false,
"duplication_count": 0
}
]
}
],
"bounding_boxes": {}
}
],
"info": {
"page": 1,
"page_size": 50,
"total_pages": 2,
"total_items": 100
}
}
}
-
success boolean
True if the request was successful.
-
data array
List of test case details objects.
-
meta object
Metadata for the test case snapshot.
-
snapshot_id integer
Unique identifier for the snapshot.
-
screenshot_url string
Direct URL to the screenshot image.
-
testcase_name string
Name of the test case.
-
device object
Device information for the test case.
-
model string
Device model name.
-
os string
Device operating system.
-
os_version string
Device OS version.
-
-
status string
Status of the test case snapshot.
-
severity_count object
Severity counts for the test case.
-
serious integer
Count of serious issues.
-
critical integer
Count of critical issues.
-
minor integer
Count of minor issues.
-
-
integrations array
Integrations for the test case.
-
pm_tool_type string
Project management tool type.
-
ticket_link string
Link to the related ticket.
-
report_type string
Type of report (e.g., automate_build).
-
resource_id string
Resource ID for the integration.
-
-
-
aggregated_results array
List of aggregated accessibility rule results for the test case.
-
rule_id string
Unique ID for the accessibility rule.
-
label string
Human-readable label for the rule.
-
description string
Description of the accessibility rule.
-
suggestion string
Suggested fix or improvement for the rule.
-
show_suggestion boolean
True if the suggestion should be shown to the user.
-
severity string
Severity level of the rule violation.
-
wcag_version string
WCAG version applicable to the rule.
-
wcag_level string
WCAG conformance level for the rule.
-
guidelines array
List of WCAG guideline references for this rule.
-
version string
WCAG guideline version.
-
authority string
Guideline authority (e.g., WCAG).
-
level string
Guideline conformance level.
-
success_criteria_version string
Success criteria version for the guideline.
-
url string
URL to the guideline documentation.
-
message string
Human-readable message for the guideline.
-
-
learn_more_link string
URL to learn more about the rule.
-
is_experimental boolean
True if the rule is experimental.
-
rule_issues array
List of individual issues found for this rule.
-
uid string
Unique ID for the rule issue.
-
rule_dynamic_meta object
Dynamic metadata for the rule issue, such as accessibility labels.
-
ai_result boolean
Whether the issue was detected by AI.
-
ai_suggested_label string
AI generated Accessibility label suggestion.
-
accessibility_label string
Accessibility label for the issue.
-
accessibility_label_key array
Keys for the accessibility label.
-
framework string
The framework used to conduct the test.
-
session_start_date string
The start date of the test session.
-
ai_remediation_status string
The AI remediation status for the issue.
-
-
serial_number integer
Serial number of the issue in the snapshot.
-
issue_class_android string
Android class name for the issue, if applicable.
-
issue_details array
List of details about the issue.
-
label string
Label for the issue detail.
-
value string
Value for the issue detail.
-
important boolean
True if this detail is important.
-
-
how_to_fix_desc string
Description of how to fix the issue.
-
issue_id_android string
Android-specific issue ID, if applicable.
-
issue_type string
Type of the issue (e.g., GENERIC).
-
show_issue_details_link boolean
True if a link to issue details should be shown.
-
duplication_count integer
Number of duplicate instances of this issue.
-
-
-
bounding_boxes object
Bounding box coordinates for issues in the test case.
-
issue_uid object
Bounding box for a specific issue (use the actual issue UID as the key in real data).
-
serial_number integer
Serial number of the issue.
-
x number
X coordinate.
-
y number
Y coordinate.
-
height number
Height of the bounding box.
-
width number
Width of the bounding box.
-
-
-
-
info object
Pagination information for the test case list.
-
page integer
Current page number.
-
page_size integer
Number of objects per page.
-
count integer
Total number of builds.
-
prev integer/null
Previous page number, if any.
-
next integer/null
Next page number, if any.
-
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.