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.
On the API Keys page in axe Account, Select the "Add New API Key" button.
A modal will appear. Select axe Monitor from the product dropdown, 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}
To access the API, you need to authenticate using the API key from axe Account.
X-API-Key: <your_api_key>
Name
Type
Description
X-Pagination-Per-Page
IntegerDefault 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.