Adobe Document Generation API

Generate PDF and Word documents from templates with dynamic JSON data.

OpenAPI Specification

adobe-document-generation-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Adobe PDF Services Accessibility Auto-Tag Document Generation API
  description: The Adobe PDF Services API enables developers to create, convert, manipulate, and extract content from PDF documents programmatically. The API uses an asynchronous job-based model where you submit a job, poll for its status, and retrieve the result. Operations include creating PDFs from various formats, exporting PDFs to other formats, combining and splitting PDFs, compressing, OCR processing, protecting with passwords, extracting structured content, auto-tagging for accessibility, and generating documents from templates. Authentication uses OAuth 2.0 with client credentials (server-to-server).
  version: 4.0.0
  contact:
    name: Adobe Developer Support
    url: https://developer.adobe.com/document-services/
    email: pdfsvcops@adobe.com
  license:
    name: Adobe Terms of Service
    url: https://www.adobe.com/legal/terms.html
  termsOfService: https://www.adobe.com/legal/terms.html
servers:
- url: https://pdf-services-ue1.adobe.io
  description: Adobe PDF Services API - US East Production
- url: https://pdf-services.adobe.io
  description: Adobe PDF Services API - Default Production
security:
- bearerAuth: []
tags:
- name: Document Generation
  description: Generate PDF and Word documents from templates with dynamic JSON data.
paths:
  /operation/documentgeneration:
    post:
      operationId: generateDocument
      summary: Adobe Generate a Document From a Template
      description: Generate a PDF or Word document by merging a Word template (DOCX) with JSON data. Supports dynamic text insertion, conditional sections, tables, lists, images, and computed expressions.
      tags:
      - Document Generation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentGenerationRequest'
            examples:
              GeneratedocumentRequestExample:
                summary: Default generateDocument request
                x-microcks-default: true
                value:
                  assetID: '500123'
                  jsonDataForMerge: example_value
                  outputFormat: pdf
                  fragments: example_value
      responses:
        '201':
          description: Job created successfully.
          headers:
            Location:
              description: URL to poll for job status.
              schema:
                type: string
                format: uri
            x-request-id:
              $ref: '#/components/headers/x-request-id'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobStatusResponse'
              examples:
                Generatedocument201Example:
                  summary: Default generateDocument 201 response
                  x-microcks-default: true
                  value:
                    status: in progress
                    asset:
                      assetID: '500123'
                      downloadUri: https://www.example.com
                      metadata:
                        type: example_value
                        size: 10
                    error:
                      code: example_value
                      message: example_value
                      status: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    ErrorResponse:
      type: object
      description: Error response returned when a request fails.
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: A machine-readable error code.
              examples:
              - INVALID_ASSET_ID
              - BAD_REQUEST
              - UNAUTHORIZED
              - RATE_LIMIT_EXCEEDED
            message:
              type: string
              description: A human-readable error message.
            status:
              type: integer
              description: The HTTP status code.
              examples:
              - 400
              - 401
              - 404
              - 429
          example: example_value
    JobStatusResponse:
      type: object
      description: The status and result of an asynchronous PDF operation job.
      properties:
        status:
          type: string
          description: The current status of the job.
          enum:
          - in progress
          - done
          - failed
          example: in progress
        asset:
          type: object
          description: The output asset information, available when status is done.
          properties:
            assetID:
              type: string
              description: The asset ID of the output file.
            downloadUri:
              type: string
              format: uri
              description: The pre-signed download URI for the output file.
            metadata:
              type: object
              description: Metadata about the output asset.
              properties:
                type:
                  type: string
                  description: The MIME type of the output file.
                size:
                  type: integer
                  description: The size of the output file in bytes.
          example: example_value
        error:
          type: object
          description: Error information, available when status is failed.
          properties:
            code:
              type: string
              description: A machine-readable error code.
            message:
              type: string
              description: A human-readable error message.
            status:
              type: integer
              description: The HTTP status code associated with the error.
          example: example_value
    DocumentGenerationRequest:
      type: object
      required:
      - assetID
      - jsonDataForMerge
      - outputFormat
      properties:
        assetID:
          type: string
          description: The asset ID of the Word template (DOCX).
          example: '500123'
        jsonDataForMerge:
          type: object
          description: The JSON data to merge with the template.
          additionalProperties: true
          example: example_value
        outputFormat:
          type: string
          description: The desired output format.
          enum:
          - pdf
          - docx
          default: pdf
          example: pdf
        fragments:
          type: object
          description: Reusable document fragments for template composition.
          additionalProperties:
            type: string
          example: example_value
  headers:
    x-request-id:
      description: A unique identifier for the request, useful for debugging and support.
      schema:
        type: string
  responses:
    BadRequest:
      description: The request was malformed or contained invalid parameters. Check the error message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Authentication failed. The access token is missing, expired, or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded. Wait before retrying. Check Retry-After header for guidance.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 access token obtained via client credentials grant from Adobe Identity Management Service (IMS). Generate credentials in the Adobe Developer Console and exchange them for an access token at https://ims-na1.adobelogin.com/ims/token/v3.