> ## Documentation Index
> Fetch the complete documentation index at: https://developer.pdf.co/llms.txt
> Use this file to discover all available pages before exploring further.

# PDF to PDF/A (API Tester)

> Submit a PDF/A conversion and receive a background job ID.

<Note>
  **Full reference:** [PDF to PDF/A](/api/pdf-to-pdfa) covers parameters, validation states, billing and limits. This operation starts a background job. Use [Background Job Check](/api/job-check) to retrieve the final files.
</Note>


## OpenAPI

````yaml /openapi.json post /v1/pdf/convert/to/pdfa
openapi: 3.0.1
info:
  title: PDF.co API
  description: ''
  version: '1.0'
servers:
  - url: https://api.pdf.co
security:
  - ApiKeyAuth: []
tags:
  - name: Extraction
  - name: Editing
  - name: PDF Conversion
  - name: Excel Conversion
  - name: PDF Merging & Splitting
  - name: Forms
  - name: Find & Search
  - name: Document, File & System
  - name: Pages
  - name: Barcodes
paths:
  /v1/pdf/convert/to/pdfa:
    post:
      tags:
        - PDF Conversion
      summary: PDF to PDF/A
      description: >-
        Convert the complete PDF to PDF/A-3b and validate it with veraPDF. This
        endpoint is asynchronous only and has no async parameter. The submission
        response returns a jobId and planned file names, without output or
        report URLs. Poll /v1/job/check or use a callback for the final PDF,
        validation report and warnings. Completed non-compliant output is still
        charged; failed jobs refund the original processing debit once. See the
        full reference for validation states and limits.
      operationId: post_v1_pdf_convert_to_pdfa
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - url
              properties:
                url:
                  allOf:
                    - $ref: '#/components/schemas/url'
                  default: >-
                    https://pdfco-test-files.s3.us-west-2.amazonaws.com/document-parser/sample-invoice.pdf
                callback:
                  type: string
                  format: uri
                  description: >-
                    Callback URL notified when the background job finishes. Use
                    it instead of polling.
                name:
                  type: string
                  description: >-
                    Output PDF file name. If omitted, it derives from url when
                    possible.
                expiration:
                  type: integer
                  default: 60
                  description: >-
                    Minutes before temporary output and report URLs expire. The
                    maximum also depends on the subscription plan and cannot
                    exceed seven days.
      responses:
        '200':
          description: >-
            Background job accepted. File links are returned only in the final
            job result when those files are produced.
          content:
            application/json:
              schema:
                type: object
                properties:
                  pageCount:
                    type: integer
                    description: >-
                      Page count reported when the job is accepted; read the
                      output count from the final job result.
                  error:
                    type: boolean
                    description: False when the job was accepted.
                  status:
                    type: integer
                    description: >-
                      HTTP status code of the submission request, not the
                      background job status.
                  duration:
                    type: integer
                    description: >-
                      Time to accept the request in milliseconds, excluding
                      conversion and validation.
                  name:
                    type: string
                    description: Planned converted PDF file name.
                  validationReportName:
                    type: string
                    description: Planned validation report file name.
                  jobId:
                    type: string
                    description: >-
                      Background job identifier. Poll /v1/job/check or use a
                      callback for the final result.
                  credits:
                    type: integer
                    description: Credits charged for processing the first page only.
                  remainingCredits:
                    type: integer
                    description: Credits remaining for the account.
              example:
                pageCount: 1
                error: false
                status: 200
                duration: 31
                name: sample-invoice.pdf
                validationReportName: sample-invoice-pdfa-validation.json
                jobId: EXAMPLEJOBID0123456789ABCDEFGHIJ--166-400
                credits: 25
                remainingCredits: 400000
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/NotEnoughCredits'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '408':
          $ref: '#/components/responses/Timeout'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '442':
          $ref: '#/components/responses/DamagedDocument'
        '452':
          $ref: '#/components/responses/InvalidUrl'
        '454':
          $ref: '#/components/responses/InvalidParameters'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    url:
      type: string
      format: uri
      description: >-
        URL to the source file [`url`
        attribute](/api/url-input-and-request-limits).
  responses:
    BadRequest:
      description: >-
        Bad request. Typically due to bad input parameters or unreachable input
        URLs (e.g., access restrictions like login or password).
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 400
              message:
                type: string
                example: >-
                  Bad request. Typically due to bad input parameters or
                  unreachable input URLs (e.g., access restrictions like login
                  or password).
    Unauthorized:
      description: >-
        Unauthorized. Authentication is required and has failed or has not yet
        been provided.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 401
              message:
                type: string
                example: >-
                  Unauthorized. Authentication is required and has failed or has
                  not yet been provided.
    NotEnoughCredits:
      description: Not enough credits.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 402
              message:
                type: string
                example: Not enough credits.
    Forbidden:
      description: Access forbidden for input URL.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 403
              message:
                type: string
                example: Access forbidden for input URL.
    NotFound:
      description: The requested resource could not be found.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 404
              message:
                type: string
                example: The requested resource could not be found.
    Timeout:
      description: The server timed out waiting for the request.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 408
              message:
                type: string
                example: The server timed out waiting for the request.
    TooManyRequests:
      description: Too many requests in a given time period.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 429
              message:
                type: string
                example: Too many requests in a given time period.
    DamagedDocument:
      description: Input document is damaged or of incorrect type.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 442
              message:
                type: string
                example: Input document is damaged or of incorrect type.
    InvalidUrl:
      description: Invalid URL.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 452
              message:
                type: string
                example: Invalid URL.
    InvalidParameters:
      description: Invalid parameters.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 454
              message:
                type: string
                example: Invalid parameters.
    InternalServerError:
      description: Something went wrong. Please try again or contact support.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: boolean
                example: true
              status:
                type: integer
                example: 500
              message:
                type: string
                example: Something went wrong. Please try again or contact support.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.