axe DevTools Mobile API
The axe DevTools Mobile API (Application Program Interface) is organized around Representational State Transfer, often referred to as REST.
Utilize our API and completely control your team's workflow in accessibility testing.
Jump to:
- Authentication
- Scan Summaries
- Filtered Scan Summaries
- Fetch a Scan
- Submit a Scan
- Update a Scan's Name
- Update a Scan's Tag(s)
- Delete a Scan
References to {{result_userid}}, {{result_package}}, or {{result_id}} can be found within AxeDevToolsResultKey
objects of axe DevTools Mobile after a scan is completed.
Authentication
To start, copy or create a new API key at axe.deque.com/settings.
For any request, add your API key to the header:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Scan Summaries
Retrieves a summarized list of results from the server.
Request
URL: https://axe-mobile-backend.deque.com/attest/results/summaries
Headers:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Content-Type | application/json |
Response
Returns an array of result summaries.
Example JSON
[
{
"key": {
"userId": "",
"packageName": "",
"resultId": ""
},
"userName": "",
"summary": {
"MeaningfulAccessibleName": {
"PASS": 10,
"FAIL": 1
},
"A11yElementFocusBox": {
"PASS": 10
},
"ConflictingTraits": {
"PASS": 10
}
},
"tags": [
""
],
"axeDevice": {
"dpi": 2.0,
"name": "iPhone 8",
"os": "iOS",
"osVersion": "13.7",
"screenHeight": 1334,
"screenWidth": 750
},
"axeMetaData": {
"axeVersion": "XCUI: 2.0.1-647-f49682f0",
"appIdentifier": "",
"analysisTimestamp": "",
"screenTitle": ""
},
"scanName": "",
"uuid": "",
}
]
Filtered Scan Summaries
Retrieves a summarized list of results from the server matching the specified criteria.
Request
URL: https://axe-mobile-backend.deque.com/attest/results/summaries
Headers:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Content-Type | application/json |
Query Params:
Key | Value |
---|---|
userId | String |
os | String |
tags | String (Comma Separated) |
packageName | String |
Response
Returns an array of result summaries.
Example JSON
[
{
"key": {
"userId": "",
"packageName": "",
"resultId": ""
},
"userName": "",
"summary": {
"MeaningfulAccessibleName": {
"PASS": 10,
"FAIL": 1
},
"A11yElementFocusBox": {
"PASS": 10
},
"ConflictingTraits": {
"PASS": 10
}
},
"tags": [
""
],
"axeDevice": {
"dpi": 2.0,
"name": "iPhone 8",
"os": "iOS",
"osVersion": "13.7",
"screenHeight": 1334,
"screenWidth": 750
},
"axeMetaData": {
"axeVersion": "XCUI: 2.0.1-647-f49682f0",
"appIdentifier": "",
"analysisTimestamp": "",
"screenTitle": ""
},
"scanName": "",
"uuid":"",
}
]
Fetch a Scan
Returns a specific scan result from the dashboard.
Request
URL: https://axe-mobile-backend.deque.com/attest/result/axe/{{result_userid}}/{{result_package}}/{{result_id}}
Headers:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Content-Type | application/json |
Response
Returns a scan result.
Example JSON
Note: `axeView` will contain different platform-specific properties for an iOS or Android scan.
{
"axeConf": {
"standards": [
"Best Practice",
"Platform",
"WCAG 2.0",
"WCAG 2.1"
],
"ruleIds": [
"SwitchName",
"ActiveViewName"
],
"rules": {
"SwitchName": {
"impact": 1,
"standard": "Best Practice",
"summary": "Views that have modifiable Values
should get their name from a nearby Label.",
"ignored": false
},
"ActiveViewName": {
"impact": 3,
"standard": "WCAG 2.0",
"summary": "Views that users can interact with must
have a Name.",
"ignored": false
}
},
"issueFilterConf": {
"onlyShowResultsVisibleToUser": false
}
},
"axeContext": {
"axeView": {
"isComposeView": false,
"isImportantForAccessibility": true,
"visibility": 0.0,
"axeViewId": "",
"measuredWidth": 1080.0,
"className": "",
"textColor": "0",
"boundsInScreen": {
"bottom": 2340.0,
"left": 0.0,
"right": 1080.0,
"top": 0.0
},
"isVisibleToUser": true,
"isAccessibilityFocusable": false,
"overridesAccessibilityDelegate": false,
"measuredHeight": 2340.0,
"children": [
{
"axeViewId": "",
"boundsInScreen": {
"bottom": 0.0,
"left": 0.0,
"right": 0.0,
"top": 0.0
},
"calculatedProps": {
...
},
"children": [
...
],
"className": "android.widget.LinearLayout",
"ignoreRules": [
"HiddenInformativeViewFocus",
"HiddenActiveViewFocus"
],
"isAccessibilityFocusable": false,
"isClickable": false,
"isComposeView": false,
"isEnabled": true,
"isImportantForAccessibility": false,
"isVisibleToUser": true,
"measuredHeight": 0.0,
"measuredWidth": 0.0,
"overridesAccessibilityDelegate": false,
"packageName": "",
"textColor": "0",
"viewIdResourceName": "",
"visibility": 0.0
},
...
],
"isEnabled": true,
"viewIdResourceName": "",
"calculatedProps": {
...
},
"isClickable": false,
"ignoreRules": [
""
],
"packageName": ""
},
"axeDevice": {
"dpi": 3.0,
"name": "",
"os": "Android",
"osVersion": "",
"screenHeight": 0,
"screenWidth": 0
},
"screenshot": "",
"axeEventStream": [],
"axeMetaData": {
"axeVersion": "",
"appIdentifier": "",
"analysisTimestamp": "",
"screenTitle": ""
}
},
"axeRuleResults": [
{
"axeViewId": "",
"isVisibleToUser": true,
"props": {
...
},
"ruleId": "",
"ruleSummary": "",
"impact": 4,
"status": "PASS"
},
...
],
"userName": "",
"scanName": "",
"tags": [
""
]
}
Submit a Scan
Uploads a scan result to the dashboard.
Request
URL: https://axe-mobile-backend.deque.com/attest/result/axe
Headers:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Content-Type | application/json |
Body:
JSON from iOS or Android scan.
Response
Returns the result key of the submitted result.
Example JSON
{
"userId": "",
"packageName": "",
"resultId": ""
}
Update a Scan's Name
Updates a scan's name as shown within the dashboard.
Request
URL: https://axe-mobile-backend.deque.com/attest/results/summaries/{{result_userid}}/{{result_package}}/{{result_id}}/name
Headers:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Content-Type | application/json |
Body:
Name of the Scan
Response
Returns the scan result summary.
Example JSON
{
"key": {
"userId": "",
"packageName": "",
"resultId": ""
},
"userName": "",
"summary": {
"ActiveControlName": {
"PASS": 10
},
"A11yElementFocusBox": {
"PASS": 10,
"FAIL": 1
}
},
"tags": [
""
],
"axeDevice": {
"dpi": 3.0,
"name": "",
"os": "",
"osVersion": "",
"screenHeight": 0,
"screenWidth": 0
},
"axeMetaData": {
"axeVersion": "",
"appIdentifier": "",
"analysisTimestamp": "",
"screenTitle": ""
},
"scanName": "Name of the Scan"
}
Update a Scan's Tag(s)
Updates a scan's tags as shown in the dashboard to the specified tags.
Request
URL: https://axe-mobile-backend.deque.com/attest/result/tag/{{result_userid}}/{{result_package}}/{{result_id}}
Headers:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Content-Type | application/json |
Body:
["Example Tag"]
Response
Returns the result key of the updated result.
Example JSON
{
"userId": "",
"packageName": "",
"resultId": ""
}
Delete a Scan
Removes a scan result from the dashboard.
Request
URL: https://axe-mobile-backend.deque.com/attest/result/{{result_userid}}/{{result_package}}/{{result_id}}
Headers:
Key | Value |
---|---|
X-Api-Key | YOUR_API_KEY |
Content-Type | application/json |
Response
Returns the result key of the deleted result.
Example JSON
{
"userId": "",
"packageName": "",
"resultId": ""
}