POST/api/v1/pdf/validate-pdfa

PDF/A Validation

Check whether a PDF document complies with PDF/A archival standards. Returns the claimed conformance level, a compliance verdict, a list of issues found, and basic document metadata.

Content-Type: multipart/form-data

Parameters

ParameterTypeRequiredDefaultDescription
filefileRequired-The PDF file to validate for PDF/A compliance.

Code Examples

cURL

bash
curl -X POST "https://app.alternapdf.com/api/v1/pdf/validate-pdfa" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@document.pdf"

Python

python
import requests
import json

url = "https://app.alternapdf.com/api/v1/pdf/validate-pdfa"
headers = {"X-API-Key": "YOUR_API_KEY"}

files = {
    "file": ("document.pdf", open("document.pdf", "rb"), "application/pdf"),
}

response = requests.post(url, headers=headers, files=files)
result = response.json()

print(json.dumps(result, indent=2))

if result["is_compliant"]:
    print(f"Compliant with {result['claimed_conformance']}")
else:
    print(f"Not compliant. {len(result['issues'])} issue(s) found:")
    for issue in result["issues"]:
        print(f"  - {issue}")

JavaScript

javascript
const fs = require("fs");
const FormData = require("form-data");
const axios = require("axios");

const form = new FormData();
form.append("file", fs.createReadStream("document.pdf"));

const response = await axios.post(
  "https://app.alternapdf.com/api/v1/pdf/validate-pdfa",
  form,
  {
    headers: {
      "X-API-Key": "YOUR_API_KEY",
      ...form.getHeaders(),
    },
  }
);

const result = response.data;
console.log(JSON.stringify(result, null, 2));

if (result.is_compliant) {
  console.log(`Compliant with ${result.claimed_conformance}`);
} else {
  console.log(`Not compliant. ${result.issues.length} issue(s) found:`);
  result.issues.forEach((issue) => console.log(`  - ${issue}`));
}

Response

200JSON validation report
json — compliant
{
  "is_compliant": true,
  "claimed_conformance": "PDF/A-2b",
  "issues": [],
  "metadata": {
    "page_count": 12,
    "pdf_version": "1.7"
  }
}
json — non-compliant
{
  "is_compliant": false,
  "claimed_conformance": null,
  "issues": [
    "Font 'Helvetica' is not embedded",
    "Document does not contain XMP metadata",
    "OutputIntent is missing"
  ],
  "metadata": {
    "page_count": 8,
    "pdf_version": "1.4"
  }
}
FieldTypeDescription
is_compliantbooleanWhether the document passes PDF/A validation.
claimed_conformancestring | nullThe PDF/A conformance level claimed by the document (e.g. "PDF/A-2b"), or null if none.
issuesstring[]List of compliance issues found. Empty array if compliant.
metadata.page_countintegerNumber of pages in the document.
metadata.pdf_versionstringPDF specification version (e.g. "1.4", "1.7").