axe Monitor API
Introduction
The axe Monitor API offers developers a streamlined way to interact with accessibility test result data outside the axe Monitor user interface. Using RESTful web services, the API provides access to:
- Scans for a user
- Scan Runs for a Scan
- Page Details for a Scan Run
- Issue Details for a Scan Run
- Issue Details for a Page
Licensed axe Monitor users can use the API with outside applications, provided that usage complies with the Subscription License Agreement.
Getting Started
-
Create an API key via axe Account.
Refer to the region-specific instructions given below:
-
axe Account in US region: axe.deque.com - To create an API Key, click this link: Create an API Key.
-
axe Account in EU region: axe-eu.deque.com - To create an API Key, click this link: Create an API Key.
-
axe Account in AUS region: axe-au.deque.com - To create an API Key, click this link: Create an API Key.
Perform the following steps to generate your API key:
-
On the API Keys page in axe Account, Select the "Add New API Key" button.
The ADD NEW API KEY dialog appears. -
Select axe Monitor from the product drop-down, name your API key, and select the Save button.
-
Under the Actions column, copy the API key to your clipboard.
-
-
Enter the API base URL: Using your preferred API platform, such as Postman or SwaggerUI, or your working directory, access the axe Monitor API. Replace “yourcompany” with the subdomain for your axe Monitor instance.
https://yourcompany.dequecloud.com/monitor-public-api/v1/{endpoint}
Add Headers
To access the API, you need to authenticate using the API key from axe Account.
X-API-Key: <your_api_key>
Optional Header Parameters
Name | Type | Description |
---|---|---|
X-Pagination-Per-Page |
Integer Default Value: 10 |
The maximum number of items returned in a single page |
X-Pagination-Page |
Integer Default Value: 1 |
The requested page number |
Example CURL Request
curl -X 'GET' \
'https://{base_url}/monitor-public-api/v1/scans/1/runs/1/issues?sortBy=testPageTitle&sortDir=desc' \
-H 'accept: application/json' \
-H 'X-API-KeyAuthorization: <your_api_key>' '
Endpoints
All endpoints can retrieve information with GET requests.
Endpoint | Purpose |
---|---|
/scans |
List all the scans a user can access. Allows you to retrieve scanId. |
/scans/[scanId]/runs |
List all the scan runs for a scan, with scan overview information. Allows you to retrieve the runId. |
/scans/[scanId]/runs/[runId]/pages |
Detailed page information for a scan run |
/scans/[scanId]/runs/[runId]/pages/[pageId]/issues |
Detailed accessibility issues for a page |
/scans/[scanId]/runs/[runId]/issues |
Detailed accessibility issues for a scan run |
List Scans for a User
Example Request
GET
https://yourcompany.dequecloud.com/monitor-public-api/v1/scans
X-API-Key: <your_api_key>
Example Response
{
"scans": [
"id": 1,
"name": "Test Scan",
"groups": [
"id": 1,
"name": "Group A"
]
]
}
Example Error Response
Scan Runs for a Scan
Example Request
GET
https://yourcompany.dequecloud.com/monitor-public-api/v1/scans/[scanId]/runs
X-API-KEY: <your_api_key>
Required Parameters
Name | Type | Description |
---|---|---|
scanId |
String |
The unique identifier of the scan. |
Optional Parameters
Name | Type | Description |
---|---|---|
needsReview |
String |
“true” or “false” allows you to control whether “Needs review” issues are counted in the response. |
Example Response
{
"runs": [
{
"runNumber" : 1,
"status" : "Complete",
"queuedAt": "2024-09-30T05:11:42Z",
"startedAt": "2024-09-30T05:11:45Z",
"completedAt": "2024-09-30T05:12:30Z",
"totalIssueCount": 29,
"completedPages": 1,
"axeVersion" : "4.9.0",
"standard" : "WCAG 2.2 AA"
“score”: “0”
“issues”: “28”
[ "criticalissues": “20”,
"seriousissues": “2”,
"moderateissues": “4”,
"minorissues": “2”,
]
pages: “40”
[ "criticalpages": “20”,
“aria”: “2”,
“color”: “2”,
“forms”: “2”,
“keyboard”: “2”,
“language”: “2”,
“namerolevalue”: “2”,
“pdf”: “2”,
“parsing”: “2”,
“semantics”: “2”,
“sensoryvisual”: “2”,
“structure”: “2”,
“tables”: “2”,
“alttext”: “2”,
“timemedia”: “2”
]
}
]
}
Page Details for a Scan Run
Example Request
GET https://yourcompany.dequecloud.com/monitor-public-api/v1/scans/[scanId]/runs/[runNumber]/pagesX-API-KEY: <your_api_key>
Required Path Parameters
Name | Type | Description |
---|---|---|
scanId |
String |
The unique identifier of the scan. |
runNumber |
Integer |
The specific run number of the scan. |
Optional Request Parameters
Name | Type | Description |
---|---|---|
status |
String |
Filters pages by status (Completed, Failed). |
sortBy |
String |
Specifies the column to sort by (title, url). Default value is title |
order |
String |
Specifies the sort direction (asc or desc). Default value is desc. |
Example Response
{
"pages": [
{
"id": 0,
"url": "string",
"title": "string",
"reasonForFailure": "string",
"totalCriticalIssues": 0,
"totalSeriousIssues": 0,
"totalModerateIssues": 0,
"totalMinorIssues": 0,
"totalNeedsReview": 0,
"totalFixedIssues": 0,
"totalOpenIssues": 0,
"health": "string",
"status": "string",
"scriptName": "string",
"scriptStep": 0,
"template": true,
"date": "2024-12-02T15:03:40.211Z",
"domainUrl": "string"
}
]
}
Issue Details for a Page
Example Request
GET
https://yourcompany.dequecloud.com/monitor-public-api/v1/scans/[scanId]/runs/[runNumber]/pages/[pageId]/issues
X-API-KEY: <your_api_key>
Required Parameters
Name | Type | Description |
---|---|---|
scanId |
String |
The unique identifier of the scan. |
runNumber |
Integer |
The specific run number of the scan. |
pageId |
String |
The unique identifier of the page. |
Optional Parameters
Name | Type | Description |
---|---|---|
status |
String |
Filters issues by status (open, fixed, or ignored). |
sortBy |
String |
Specifies the column to sort by (testPageTitle, testUrl, selector, createdAt, or status). Default value is testPageTitle. |
order |
String |
Specifies the sort direction (asc or desc). Default value is desc. |
Example Response
{
"issues": [
{
"issueId": 0,
"ruleId": "string",
"description": "string",
"help": "string",
"helpUrl": "string",
"impact": "string",
“issuegroup”: “string”
"needsReview": true,
"isExperimental": true,
"isManual": true,
"summary": "string",
"selector": [
"string"
],
"source": "string",
"tags": [
"string"
],
"igt": "string",
"testName": "string",
"createdAt": "2024-12-02T14:59:24.232Z",
"testUrl": "string",
"testPageTitle": "string",
"status": "string"
}
]
}
Issue Details for a Scan Run
Example Request
GET
https://yourcompany.dequecloud.com/monitor-public-api/v1/scans/[scanId]/runs/[runNumber]/pages/[pageId]/issues
X-API-KEY: <your_api_key>
Required Parameters
Name | Type | Required | Description |
---|---|---|---|
scanId |
String |
Yes | The unique identifier of the scan. |
runNumber |
Integer |
Yes | The specific run number of the scan. |
pageId |
String |
Yes | The unique identifier of the page. |
Optional Request Parameters
Name | Type | Required | Description |
---|---|---|---|
status |
String |
No | Filters issues by status (open, fixed, or ignored). |
sortBy |
String |
No | Specifies the column to sort by (testPageTitle, testUrl, selector, createdAt, or status). Default value is testPageTitle. |
order |
String |
No | Specifies the sort direction (asc or desc). Default value is desc. |
Example Response
{
"issues": [
{
"issueId": 0,
"ruleId": "string",
"description": "string",
"help": "string",
"helpUrl": "string",
"impact": "string",
“issuegroup”: “string”
"needsReview": true,
"isExperimental": true,
"isManual": true,
"summary": "string",
"selector": [
"string"
],
"source": "string",
"tags": [
"string"
],
"igt": "string",
"testName": "string",
"createdAt": "2024-12-02T14:59:24.232Z",
"testUrl": "string",
"testPageTitle": "string",
"status": "string"
}
]
}
Errors
HTTP Status Code | Error Type | Description |
---|---|---|
401 | Unauthorized | The user is unauthenticated or lacks access rights. |
400 | InvalidRequest | The request contains invalid parameters. |
500 | Internal Server Error | An error occurred while processing the request. |