PDFMonkey Templates API

Manage document templates (HTML + Liquid, SCSS, settings).

OpenAPI Specification

pdfmonkey-templates-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: PDFMonkey Document Cards Templates API
  description: PDFMonkey generates PDF (and image) documents from HTML + Liquid templates and a JSON data payload. The REST API lets you create, retrieve, update, and delete documents (asynchronously or synchronously), poll lightweight document cards for status and download URLs, and manage document templates.
  termsOfService: https://www.pdfmonkey.io/terms
  contact:
    name: PDFMonkey Support
    url: https://www.pdfmonkey.io
  version: '1.0'
servers:
- url: https://api.pdfmonkey.io/api/v1
  description: PDFMonkey API v1
security:
- bearerAuth: []
tags:
- name: Templates
  description: Manage document templates (HTML + Liquid, SCSS, settings).
paths:
  /document_templates:
    post:
      operationId: createDocumentTemplate
      tags:
      - Templates
      summary: Create a template
      description: Create a new document template.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentTemplateRequest'
      responses:
        '201':
          description: Template created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentTemplateResponse'
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable entity
  /document_templates/{id}:
    get:
      operationId: getDocumentTemplate
      tags:
      - Templates
      summary: Fetch a template
      description: Retrieve full template details, including body, styles, and sample data.
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentTemplateResponse'
        '401':
          description: Unauthorized
        '404':
          description: Not found
    put:
      operationId: updateDocumentTemplate
      tags:
      - Templates
      summary: Update a template
      description: Update an existing document template.
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentTemplateRequest'
      responses:
        '200':
          description: Template updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentTemplateResponse'
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
    delete:
      operationId: deleteDocumentTemplate
      tags:
      - Templates
      summary: Delete a template
      description: Permanently delete a document template.
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          description: Template deleted
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /document_template_cards:
    get:
      operationId: listDocumentTemplateCards
      tags:
      - Templates
      summary: List template cards
      description: List templates as lightweight document template cards (no body, styles, or sample data), with pagination.
      parameters:
      - name: page[number]
        in: query
        description: Number of the page to show (default 1).
        schema:
          type: integer
          default: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentTemplateCardListResponse'
        '401':
          description: Unauthorized
components:
  schemas:
    DocumentTemplateResponse:
      type: object
      properties:
        document_template:
          $ref: '#/components/schemas/DocumentTemplate'
    DocumentTemplateRequest:
      type: object
      required:
      - document_template
      properties:
        document_template:
          type: object
          properties:
            identifier:
              type: string
              description: Human-readable template name.
            body:
              type: string
              description: Published HTML + Liquid body.
            body_draft:
              type: string
            scss_style:
              type: string
            scss_style_draft:
              type: string
            sample_data:
              type: string
            sample_data_draft:
              type: string
            settings:
              type: object
              additionalProperties: true
            settings_draft:
              type: object
              additionalProperties: true
    DocumentTemplateCard:
      type: object
      properties:
        id:
          type: string
          format: uuid
        identifier:
          type: string
        edition_mode:
          type: string
        output_type:
          type: string
        is_draft:
          type: boolean
        pdf_engine_name:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    DocumentTemplate:
      type: object
      properties:
        id:
          type: string
          format: uuid
        app_id:
          type: string
          format: uuid
        identifier:
          type: string
        edition_mode:
          type: string
        output_type:
          type: string
        body:
          type: string
        body_draft:
          type: string
        scss_style:
          type: string
        scss_style_draft:
          type: string
        sample_data:
          type: string
        sample_data_draft:
          type: string
        settings:
          type: object
          additionalProperties: true
        settings_draft:
          type: object
          additionalProperties: true
        pdf_engine_id:
          type: string
          format: uuid
        template_folder_id:
          type: string
          format: uuid
          nullable: true
        ttl:
          type: integer
          nullable: true
        preview_url:
          type: string
          format: uri
        checksum:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    DocumentTemplateCardListResponse:
      type: object
      properties:
        document_template_cards:
          type: array
          items:
            $ref: '#/components/schemas/DocumentTemplateCard'
        meta:
          $ref: '#/components/schemas/PaginationMeta'
    PaginationMeta:
      type: object
      properties:
        current_page:
          type: integer
        next_page:
          type: integer
          nullable: true
        prev_page:
          type: integer
          nullable: true
        total_pages:
          type: integer
        total_count:
          type: integer
  parameters:
    TemplateId:
      name: id
      in: path
      required: true
      description: The UUID of the document template.
      schema:
        type: string
        format: uuid
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Pass your secret API key from the dashboard as a Bearer token in the Authorization header.