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 | 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
{
"scanRuns": [
{
"runNumber": 1,
"status": "Completed",
"queuedAt": "2025-08-21T06:50:27Z",
"startedAt": "2025-08-21T06:50:37Z",
"completedAt": "2025-08-21T06:51:52Z",
"axeVersion": "4.10.3",
"standard": "WCAG 2.1 AA",
"score": 0,
"issues": {
"total": 392,
"critical": 77,
"serious": 315,
"moderate": 0,
"minor": 0
},
"pages": {
"total": 18,
"completed": 17,
"critical": 17
},
"violationGroups": [
{
"name": "color",
"pageCount": 17
},
{
"name": "forms",
"pageCount": 17
},
{
"name": "name-role-value",
"pageCount": 10
},
{
"name": "parsing",
"pageCount": 1
},
{
"name": "text-alternatives",
"pageCount": 13
}
]
}
]
}
Page Details for a Scan Run
Example Request
GET https://yourcompany.dequecloud.com/monitor-public-api/v1/scans/[scanId]/runs/[runNumber]/pages
X-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}/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. |
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",
"issueGrouping": "string",
"needsReview": true,
"isExperimental": true,
"isManual": true,
"summary": "string",
"selector": [
"string"
],
"source": "string",
"tags": [
"string"
],
"igt": "string",
"testName": "string",
"createdAt": "2025-08-07T10:54:30.268Z",
"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. |