axe Monitor API

Link to axe Monitor API copied to clipboard
Not for use with personal data

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

  1. Create an API Key via axe Account.
    1. On the API Keys page in axe Account, Select the "Add New API Key" button.
    2. A modal will appear. Select axe Monitor from the product dropdown, name your API key, and select the Save button.
    3. Under the Actions column, copy the API key to your clipboard.
  2. 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}
  1. 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.