Compare build issues API in Automated Tests
Use this API to compare two builds of the same project. For each issue, it returns a lifecycle status (new, retained, or resolved) along with reconciled aggregate counts.
compare build issues
For geo-restricted data, use the following endpoints:
https://accessibility-eu.browserstack.com/api/automated-tests/v1/builds/compare/issues (European Union)
https://accessibility.browserstack.com/api/automated-tests/v1/builds/compare/issues (United States)
https://accessibility-in.browserstack.com/api/automated-tests/v1/builds/compare/issues (India)
Request parameters
Request
curl -u "YOUR_USERNAME:YOUR_ACCESS_KEY" \
"https://api-accessibility.browserstack.com/api/automated-tests/v1/builds/compare/issues?newReport={newBuildUuid}&baseReport={baseBuildUuid}"
-
newReport* String
Build ID of the newer build being compared against a baseline.
-
baseReport String
Build ID of the older baseline build. If omitted, the previous completed run of
newReportis used as the baseline. -
status String
Comma-separated subset of
new,retained,resolved. Defaults to all three. -
includeDuplicates Boolean
Whether to include duplicate issues in the response. Defaults to
false. -
limit Integer
Page size, in the range
[10, 100]. Defaults to10. -
nextPage String
Used to fetch subsequent pages from the API when
hasNextis true. Pass thenextPagereference received in the response of the last request.
Response Attributes 200 OK JSON
Response
{
"success": true,
"data": {
"summary": {
"newIssues": 0,
"retainedIssues": 12,
"resolvedIssues": 1,
"isMixedComparison": false,
"isGroupedComparison": false,
"baseReport": {
"id": "<base build TestRun UUID>",
"createdOn": "2026-04-15T06:56:54.916Z",
"projectName": "A11Y Issue Deduplication",
"buildName": "TAP Build",
"buildNumber": 2,
"engineVersion": "6.3.1",
"isGrouped": false,
"autoResolved": false
},
"newReport": {
"id": "<new build TestRun UUID>",
"createdOn": "2026-05-12T10:11:54.122Z",
"projectName": "A11Y Issue Deduplication",
"buildName": "TAP Build",
"buildNumber": 43,
"engineVersion": "6.3.1",
"isGrouped": true
}
},
"issues": [
{
"issueId": "39194976",
"signatureKey": "069e81b5de123183eb1478ca429bb9f526c090bf0558f97c869b0639547c17b7",
"status": "resolved",
"impact": "minor",
"url": "https://example.com/page6.html",
"componentId": "ul#top-menu-col",
"target": ["ul"],
"html": "<ul ...>",
"behaviour": "needs_review",
"ruleData": {
"id": "unnecessary-list",
"help": "List structure must not be used where it is not necessary",
"description": "Ensure that elements which are not lists visually are not structured as lists in HTML.",
"tags": ["cat.structure", "a11y-engine", "advanced", "wcag2a", "wcag131", "high-accuracy", "experimental"]
},
"guideline": "wcag131",
"testCaseIds": [308137],
"bestPractice": false,
"needsReview": true
}
],
"pagination": {
"hasNext": false,
"nextPage": null
}
},
"error": []
}
-
summary Object
â–¶ SHOW VALUESAggregate counts and metadata about both builds being compared.
-
newIssues Integer
Count of issues present in the new build that were not in the base build.
-
retainedIssues Integer
Count of issues present in both builds.
-
resolvedIssues Integer
Count of issues present in the base build but not in the new build.
-
isMixedComparison Boolean
True if exactly one of the two builds is grouped and the other is not.
-
isGroupedComparison Boolean
True if both builds are grouped.
-
baseReport Object
â–¶ SHOW VALUESDetails of the older baseline build.
-
id String
Build ID of the baseline build.
-
createdOn String
Timestamp at which the build was created. Nullable.
-
projectName String
Project the build belongs to. Nullable.
-
buildName String
Name of the build. Nullable.
-
buildNumber Integer
Build number. Nullable.
-
engineVersion String
Version of the accessibility engine that produced the build. Nullable.
-
isGrouped Boolean
True if the build is grouped.
-
autoResolved Boolean
True if
baseReportwas not supplied and was auto-resolved to the previous completed run.
-
-
newReport Object
â–¶ SHOW VALUESDetails of the newer build.
-
id String
Build ID of the new build.
-
createdOn String
Timestamp at which the build was created. Nullable.
-
projectName String
Project the build belongs to. Nullable.
-
buildName String
Name of the build. Nullable.
-
buildNumber Integer
Build number. Nullable.
-
engineVersion String
Version of the accessibility engine that produced the build. Nullable.
-
isGrouped Boolean
True if the build is grouped.
-
-
-
issues Array of Objects
â–¶ SHOW VALUESList of issues across both builds with their lifecycle status.
-
issueId String
ID of the issue.
-
signatureKey String
Stable identifier for the issue. Use this to track the same issue across builds.
-
status String
Lifecycle status of the issue. One of
new,retained, orresolved. -
impact String
Severity, one of
minor,moderate,serious, orcritical. -
url String
Page URL on which the issue was detected.
-
componentId String
Identifier for the component containing the issue.
-
target Array of Strings
CSS selector path identifying the element with the issue.
-
html String
HTML snippet of the element with the issue.
-
behaviour String
Curation state of the issue. One of
visible,hidden,needs_review, ornot_an_issue. -
ruleData Object
â–¶ SHOW VALUESMetadata about the accessibility rule the issue violates.
-
id String
Rule code.
-
help String
Short label for the rule. Nullable.
-
description String
Description of the rule. Nullable.
-
tags Array of Strings
Tags attached to the rule.
-
-
guideline String
WCAG guideline tag for the rule if present, else
null. -
testCaseIds Array of Integers
IDs of automated test cases on which the issue was observed.
-
bestPractice Boolean
True if the rule is a best-practice rule (not a WCAG violation).
-
needsReview Boolean
True if the issue requires manual confirmation.
-
-
pagination Object
â–¶ SHOW VALUESContains information to facilitate fetching additional records if they exist.
-
hasNext Boolean
True if there are more records to fetch. False if this is the last page.
-
nextPage String
A reference to the next page. Pass this as the
nextPagerequest parameter to fetch the next page.nullwhenhasNextisfalse.
-
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.