{
  "openapi": "3.0.4",
  "info": {
    "title": "axesPAC Cloud",
    "description": "axesPAC Cloud API enables you to check documents for accessibility issues.",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.axes4.com/pac"
    }
  ],
  "paths": {
    "/v2/jobs": {
      "post": {
        "tags": [
          "v2"
        ],
        "description": "Runs checks.",
        "operationId": "v2_jobs",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "[required] Name of the job, max 500 characters",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Language for the report as two or three letter code or two letter with region (e.g. 'en', 'eng', 'en-US')",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "checksets",
            "in": "query",
            "description": "[required] Checksets to check the PDF against, e.g. 'pdfua', 'wcag2', 'quality' (case-insensitive). Note: repeat as ...?checksets=pdfua&checksets=wcag2",
            "style": "form",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "requestBody": {
          "description": "The PDF file to check as raw binary data.",
          "content": {
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/message_summaryBodyWithJobV2"
                },
                "examples": {
                  "Message example": {
                    "value": "{\"body\":{\"jobId\":\"00000000-0000-0000-0000-000000000000\",\"name\":\"MyDocument.pdf\",\"documentInformation\":{\"pageCount\":10,\"title\":\"Title\",\"subject\":\"Subject\",\"author\":\"Author\",\"keywords\":\"Keywords\",\"creationDate\":\"2026-06-15T09:40:59.9076171+00:00\",\"modificationDate\":\"2026-06-15T09:40:59.9076222+00:00\",\"creator\":\"Creator\",\"producer\":\"Producer\",\"language\":\"Language\",\"ids\":\"Id1,Id2\",\"isTagged\":true,\"reportLanguage\":\"en\",\"numberOfTags\":3,\"sizeInKb\":2},\"reports\":[{\"type\":\"PDF/UA\",\"uaIndex\":85.3,\"report\":{\"value\":{\"checkId\":\"Check-Id-1\",\"caption\":\"Caption 1\",\"terminationCount\":1,\"errorCount\":2,\"warningCount\":1,\"passedCount\":10,\"severity\":\"Terminated\",\"severityId\":-1},\"children\":[{\"value\":{\"checkId\":\"Check-Id1-1\",\"caption\":\"Caption 1-1\",\"terminationCount\":0,\"errorCount\":0,\"warningCount\":0,\"passedCount\":8,\"severity\":\"Passed\",\"severityId\":2},\"children\":[{\"value\":{\"checkId\":\"Check-Id1-1A\",\"caption\":\"Caption 1A\",\"terminationCount\":0,\"errorCount\":0,\"warningCount\":0,\"passedCount\":4,\"severity\":\"Passed\",\"severityId\":2}},{\"value\":{\"checkId\":\"Check-Id1-1B\",\"caption\":\"Caption 1B\",\"terminationCount\":0,\"errorCount\":0,\"warningCount\":0,\"passedCount\":4,\"severity\":\"Passed\",\"severityId\":2}}]},{\"value\":{\"checkId\":\"Check-Id1-2\",\"caption\":\"Caption 1-2\",\"terminationCount\":0,\"errorCount\":2,\"warningCount\":1,\"passedCount\":2,\"severity\":\"Error\",\"severityId\":0},\"children\":[{\"value\":{\"checkId\":\"Check-Id1-2A\",\"caption\":\"Caption 2A\",\"terminationCount\":0,\"errorCount\":2,\"warningCount\":1,\"passedCount\":2,\"severity\":\"Error\",\"severityId\":0},\"issues\":[{\"issueId\":\"Issue-Id-1\",\"severity\":\"Error\",\"severityId\":0,\"caption\":\"Specific error\",\"count\":2},{\"issueId\":\"Issue-Id-2\",\"severity\":\"Warning\",\"severityId\":1,\"caption\":\"Specific warning\",\"count\":1}]}]},{\"value\":{\"checkId\":\"Check-Id1-3\",\"caption\":\"Caption 3\",\"terminationCount\":1,\"errorCount\":0,\"warningCount\":0,\"passedCount\":0,\"severity\":\"Terminated\",\"severityId\":-1}}]}}],\"creationDate\":\"2026-06-15T09:40:59.907629+00:00\"},\"version\":{\"major\":2,\"minor\":0}}"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Document could not be processed. It may be invalid."
          },
          "413": {
            "description": "Request was too large."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "You have reached the page limit for your api-key."
          }
        },
        "security": [
          {
            "ApiKeyAuth": [ ]
          }
        ]
      }
    },
    "/v2/jobs/{jobId}/report/summary": {
      "get": {
        "tags": [
          "v2"
        ],
        "description": "Gets the summary report of a job.",
        "operationId": "v2_jobs_jobId_report_summary",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/message_summaryBodyWithJobV2"
                },
                "examples": {
                  "Message example": {
                    "value": "{\"body\":{\"jobId\":\"00000000-0000-0000-0000-000000000000\",\"name\":\"MyDocument.pdf\",\"documentInformation\":{\"pageCount\":10,\"title\":\"Title\",\"subject\":\"Subject\",\"author\":\"Author\",\"keywords\":\"Keywords\",\"creationDate\":\"2026-06-15T09:40:59.9158452+00:00\",\"modificationDate\":\"2026-06-15T09:40:59.9158493+00:00\",\"creator\":\"Creator\",\"producer\":\"Producer\",\"language\":\"Language\",\"ids\":\"Id1,Id2\",\"isTagged\":true,\"reportLanguage\":\"en\",\"numberOfTags\":3,\"sizeInKb\":2},\"reports\":[{\"type\":\"PDF/UA\",\"uaIndex\":85.3,\"report\":{\"value\":{\"checkId\":\"Check-Id-1\",\"caption\":\"Caption 1\",\"terminationCount\":1,\"errorCount\":2,\"warningCount\":1,\"passedCount\":10,\"severity\":\"Terminated\",\"severityId\":-1},\"children\":[{\"value\":{\"checkId\":\"Check-Id1-1\",\"caption\":\"Caption 1-1\",\"terminationCount\":0,\"errorCount\":0,\"warningCount\":0,\"passedCount\":8,\"severity\":\"Passed\",\"severityId\":2},\"children\":[{\"value\":{\"checkId\":\"Check-Id1-1A\",\"caption\":\"Caption 1A\",\"terminationCount\":0,\"errorCount\":0,\"warningCount\":0,\"passedCount\":4,\"severity\":\"Passed\",\"severityId\":2}},{\"value\":{\"checkId\":\"Check-Id1-1B\",\"caption\":\"Caption 1B\",\"terminationCount\":0,\"errorCount\":0,\"warningCount\":0,\"passedCount\":4,\"severity\":\"Passed\",\"severityId\":2}}]},{\"value\":{\"checkId\":\"Check-Id1-2\",\"caption\":\"Caption 1-2\",\"terminationCount\":0,\"errorCount\":2,\"warningCount\":1,\"passedCount\":2,\"severity\":\"Error\",\"severityId\":0},\"children\":[{\"value\":{\"checkId\":\"Check-Id1-2A\",\"caption\":\"Caption 2A\",\"terminationCount\":0,\"errorCount\":2,\"warningCount\":1,\"passedCount\":2,\"severity\":\"Error\",\"severityId\":0},\"issues\":[{\"issueId\":\"Issue-Id-1\",\"severity\":\"Error\",\"severityId\":0,\"caption\":\"Specific error\",\"count\":2},{\"issueId\":\"Issue-Id-2\",\"severity\":\"Warning\",\"severityId\":1,\"caption\":\"Specific warning\",\"count\":1}]}]},{\"value\":{\"checkId\":\"Check-Id1-3\",\"caption\":\"Caption 3\",\"terminationCount\":1,\"errorCount\":0,\"warningCount\":0,\"passedCount\":0,\"severity\":\"Terminated\",\"severityId\":-1}}]}}],\"creationDate\":\"2026-06-15T09:40:59.9158529+00:00\"},\"version\":{\"major\":2,\"minor\":0}}"
                  }
                }
              }
            }
          },
          "404": {
            "description": "A report with this job-id could not be found."
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKeyAuth": [ ]
          }
        ]
      }
    },
    "/v2/jobs/{jobId}/report/details": {
      "get": {
        "tags": [
          "v2"
        ],
        "description": "Gets the detail report of a job.",
        "operationId": "v2_jobs_jobId_report_details",
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/message_detailBodyWithJobV2"
                },
                "examples": {
                  "Message example": {
                    "value": "{\"body\":{\"jobId\":\"00000000-0000-0000-0000-000000000000\",\"name\":\"MyDocument.pdf\",\"issues\":[{\"type\":\"PDF/UA\",\"issues\":[{\"issueId\":\"Issue-Id-1-1\",\"severity\":\"Error\",\"severityId\":0,\"checkId\":\"Check-Id-1\",\"caption\":\"Caption 1\",\"count\":2,\"details\":[{\"pageIndex\":1,\"rectangle\":{\"top\":10,\"bottom\":10,\"left\":100,\"right\":100}},{\"pageIndex\":5,\"rectangle\":{\"top\":0,\"bottom\":0,\"left\":20,\"right\":50}}]},{\"issueId\":\"Issue-Id-1-2\",\"severity\":\"Error\",\"severityId\":0,\"checkId\":\"Check-Id-1\",\"caption\":\"Caption 2\",\"count\":1,\"details\":[{\"pageIndex\":null,\"rectangle\":null}]},{\"issueId\":\"Issue-Id-2\",\"severity\":\"Warning\",\"severityId\":1,\"checkId\":\"Check-Id-2\",\"caption\":\"Caption 3\",\"count\":1,\"details\":[{\"pageIndex\":2,\"rectangle\":{\"top\":10,\"bottom\":10,\"left\":10,\"right\":10}}]}]}],\"cropBoxRanges\":[{\"startPageIndex\":0,\"endPageIndex\":12,\"cropBox\":{\"top\":0,\"bottom\":100,\"left\":200,\"right\":150}},{\"startPageIndex\":13,\"endPageIndex\":13,\"cropBox\":{\"top\":20,\"bottom\":20,\"left\":20,\"right\":20}},{\"startPageIndex\":14,\"endPageIndex\":20,\"cropBox\":{\"top\":0,\"bottom\":500,\"left\":0,\"right\":500}}],\"creationDate\":\"2026-06-15T09:40:59.9186575+00:00\"},\"version\":{\"major\":2,\"minor\":0}}"
                  }
                }
              }
            }
          },
          "404": {
            "description": "A report with this job-id could not be found."
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "ApiKeyAuth": [ ]
          }
        ]
      }
    },
    "/v2/apiKey/valid": {
      "get": {
        "tags": [
          "v2"
        ],
        "operationId": "v2_apiKey_valid",
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/apiKeyCheckResult"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKeyAuth": [ ]
          }
        ]
      }
    },
    "/v2/apiKey/usage": {
      "get": {
        "tags": [
          "v2"
        ],
        "description": "Returns the api key usage info.",
        "operationId": "v2_apiKey_usage",
        "responses": {
          "200": {
            "description": "The OK response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/apiKeyUsageResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Api-key invalid or expired."
          }
        },
        "security": [
          {
            "ApiKeyAuth": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "apiKeyCheckResult": {
        "type": "object",
        "properties": {
          "isValid": {
            "type": "boolean"
          }
        }
      },
      "apiKeyUsageResult": {
        "type": "object",
        "properties": {
          "totalPages": {
            "type": "integer",
            "description": "Total number of pages available in the time frame",
            "format": "int32"
          },
          "usedPages": {
            "type": "integer",
            "description": "Number of used pages for the time frame",
            "format": "int32"
          },
          "startDate": {
            "$ref": "#/components/schemas/dateOnly"
          },
          "expireDate": {
            "$ref": "#/components/schemas/dateOnly"
          }
        }
      },
      "cropBoxRange": {
        "type": "object",
        "properties": {
          "startPageIndex": {
            "type": "integer",
            "description": "StartIndex of cropBox range, inclusive",
            "format": "int32"
          },
          "endPageIndex": {
            "type": "integer",
            "description": "EndIndex of cropBox range, inclusive",
            "format": "int32"
          },
          "cropBox": {
            "$ref": "#/components/schemas/rectangle"
          }
        }
      },
      "dateOnly": {
        "type": "string",
        "description": "Start date of this time frame",
        "format": "date"
      },
      "detailBodyWithJobV2": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Unique identifier of the job"
          },
          "name": {
            "type": "string",
            "description": "Name of the job as submitted"
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/issueGroupV2"
            }
          },
          "cropBoxRanges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/cropBoxRange"
            }
          },
          "creationDate": {
            "type": "string",
            "description": "Creation date of report",
            "format": "date-time"
          }
        }
      },
      "documentInformation": {
        "type": "object",
        "properties": {
          "pageCount": {
            "type": "integer",
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "keywords": {
            "type": "string"
          },
          "creationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "modificationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "creator": {
            "type": "string"
          },
          "producer": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "description": "The default natural language of the document"
          },
          "ids": {
            "type": "string"
          },
          "isTagged": {
            "type": "boolean",
            "description": "True if the PDF declares itself as tagged"
          },
          "reportLanguage": {
            "type": "string",
            "description": "Language of the report"
          },
          "numberOfTags": {
            "type": "integer",
            "description": "Number of tags in the document. If -1, it could not be determined.",
            "format": "int32"
          },
          "sizeInKb": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "Information about the document"
      },
      "issueDetail": {
        "type": "object",
        "properties": {
          "pageIndex": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "rectangle": {
            "$ref": "#/components/schemas/rectangle"
          }
        }
      },
      "issueGroupV2": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/issueV2"
            }
          }
        }
      },
      "issueSummaryV2": {
        "type": "object",
        "properties": {
          "issueId": {
            "type": "string",
            "description": "Unique Id of the issue"
          },
          "severity": {
            "type": "string",
            "description": "Translated severity text"
          },
          "severityId": {
            "type": "integer",
            "description": "Severity-Id: -1 = Terminated, 0 = Error, 1 = Warning, 2 = Passed, 3 = Skipped",
            "format": "int32"
          },
          "caption": {
            "type": "string",
            "description": "Translated caption"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "issueV2": {
        "type": "object",
        "properties": {
          "issueId": {
            "type": "string",
            "description": "Unique Id of the issue"
          },
          "severity": {
            "type": "string",
            "description": "Translated severity text"
          },
          "severityId": {
            "type": "integer",
            "description": "Severity-Id: -1 = Terminated, 0 = Error, 1 = Warning, 2 = Passed, 3 = Skipped",
            "format": "int32"
          },
          "checkId": {
            "type": "string",
            "description": "Check-Id of the issue"
          },
          "caption": {
            "type": "string",
            "description": "Translated caption"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/issueDetail"
            }
          }
        }
      },
      "message_detailBodyWithJobV2": {
        "type": "object",
        "properties": {
          "body": {
            "$ref": "#/components/schemas/detailBodyWithJobV2"
          },
          "version": {
            "$ref": "#/components/schemas/messageVersion"
          }
        }
      },
      "message_summaryBodyWithJobV2": {
        "type": "object",
        "properties": {
          "body": {
            "$ref": "#/components/schemas/summaryBodyWithJobV2"
          },
          "version": {
            "$ref": "#/components/schemas/messageVersion"
          }
        }
      },
      "messageVersion": {
        "type": "object",
        "properties": {
          "major": {
            "type": "integer",
            "format": "int32"
          },
          "minor": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "nodeV2": {
        "type": "object",
        "properties": {
          "checkId": {
            "type": "string",
            "description": "Check-Id of the issue"
          },
          "caption": {
            "type": "string",
            "description": "Translated caption"
          },
          "terminationCount": {
            "type": "integer",
            "format": "int32"
          },
          "errorCount": {
            "type": "integer",
            "format": "int32"
          },
          "warningCount": {
            "type": "integer",
            "format": "int32"
          },
          "passedCount": {
            "type": "integer",
            "format": "int32"
          },
          "severity": {
            "type": "string",
            "description": "Translated severity text"
          },
          "severityId": {
            "type": "integer",
            "description": "Severity-Id: -1 = Terminated, 0 = Error, 1 = Warning, 2 = Passed, 3 = Skipped",
            "format": "int32"
          }
        }
      },
      "rectangle": {
        "type": "object",
        "properties": {
          "top": {
            "type": "number",
            "format": "double"
          },
          "bottom": {
            "type": "number",
            "format": "double"
          },
          "left": {
            "type": "number",
            "format": "double"
          },
          "right": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "summaryBodyWithJobV2": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Unique identifier of the job"
          },
          "name": {
            "type": "string",
            "description": "Name of the job as submitted"
          },
          "documentInformation": {
            "$ref": "#/components/schemas/documentInformation"
          },
          "reports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/summaryReportV2"
            },
            "description": "List of the reports"
          },
          "creationDate": {
            "type": "string",
            "description": "Creation date of report",
            "format": "date-time"
          }
        }
      },
      "summaryReportV2": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the report"
          },
          "uaIndex": {
            "type": "number",
            "description": "A number between 0 (worst) and 100 (best) describing the UA index",
            "format": "double"
          },
          "report": {
            "$ref": "#/components/schemas/summaryTreeV2"
          }
        }
      },
      "summaryTreeV2": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/nodeV2"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/summaryTreeV2"
            }
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/issueSummaryV2"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "name": "api-key",
        "in": "header"
      }
    }
  }
}