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

# Update Template



## OpenAPI

````yaml put /templates/{uid}
openapi: 3.1.0
info:
  title: Pictify API
  version: 1.0.0
  description: |
    Generate images, GIFs, and PDFs from HTML templates programmatically.

    ## Authentication
    All API requests require a Bearer token in the Authorization header:
    ```
    Authorization: Bearer pk_live_your_api_key
    ```

    ## Rate Limits
    - Free: 60 requests/minute
    - Pro: 300 requests/minute
    - Business: 1,000 requests/minute

    Rate limit headers are included in all responses.
  contact:
    email: support@pictify.io
    url: https://pictify.io
  license:
    name: MIT
servers:
  - url: https://api.pictify.io
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Images
    description: Image generation endpoints
  - name: GIFs
    description: GIF generation and capture
  - name: PDFs
    description: PDF generation
  - name: Templates
    description: Template management
  - name: Batch
    description: Batch rendering operations
  - name: Webhooks
    description: Webhook subscription management
  - name: Bindings
    description: Data binding for auto-rendering
paths:
  /templates/{uid}:
    put:
      tags:
        - Templates
      summary: Update template
      operationId: updateTemplate
      parameters:
        - name: uid
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                html:
                  type: string
                fabricJSData:
                  type: object
                width:
                  type: integer
                height:
                  type: integer
                variableDefinitions:
                  type: array
                  items:
                    $ref: '#/components/schemas/VariableDefinition'
      responses:
        '200':
          description: Template updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  template:
                    $ref: '#/components/schemas/Template'
components:
  schemas:
    VariableDefinition:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: Variable identifier. Must match the name used in `{{name}}` tokens.
        type:
          type: string
          enum:
            - text
            - image
            - color
            - chart
            - table
            - array
            - object
          default: text
        defaultValue:
          description: >
            Fallback value when the variable is not supplied at render time.

            Typed according to `type` — string for text/image/color/url, number
            for number,

            boolean for boolean, ISO date string for date, JSON array/object for
            array/object.
        description:
          type: string
        allowRawHtml:
          type: boolean
          description: >
            Only meaningful for `type=text` on `engine=html` templates. When
            true the value

            is NOT HTML-escaped at render time. Use with care — treat as trusted
            input.
          default: false
        validation:
          type: object
          properties:
            required:
              type: boolean
            minLength:
              type: integer
            maxLength:
              type: integer
    Template:
      type: object
      properties:
        uid:
          type: string
        name:
          type: string
        engine:
          type: string
          enum:
            - fabric
            - html
          description: >
            Which renderer owns this template.

            - `fabric` — legacy canvas templates (fabricJSData)

            - `html` — Handlebars + HTML templates (html field, supports
            `{{var}}`, `{{#each}}`, `{{#if}}`, and the built-in helper library)
        html:
          type: string
          description: Handlebars source for `engine=html` templates.
        fabricJSData:
          type: object
          description: FabricJS canvas JSON for `engine=fabric` templates.
          additionalProperties: true
        jsEnabled:
          type: boolean
          description: >
            Only meaningful for `engine=html`. When true, scripts inside the
            template

            execute during render (Chart.js, KaTeX, animated SVG). Off by
            default

            to prevent runaway loops; a 30s hard timeout still applies.
          default: false
        strictVariables:
          type: boolean
          description: >
            Only meaningful for `engine=html`. When true, rendering fails with
            HTTP 422

            if a root-level variable referenced in the template was not
            supplied.

            Leave off if you rely on `{{#if optional}}` guards.
          default: false
        type:
          type: string
        category:
          type: string
        tags:
          type: array
          items:
            type: string
        width:
          type: integer
        height:
          type: integer
        thumbnail:
          type: string
          format: uri
        outputFormat:
          type: string
          enum:
            - image
            - pdf
          default: image
        pdfPreset:
          type: string
          description: Page preset used when `outputFormat=pdf`.
          enum:
            - A4
            - A4_LANDSCAPE
            - LETTER
            - LETTER_LANDSCAPE
            - LEGAL
            - A3
            - TABLOID
          default: A4
        variableDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/VariableDefinition'
        pages:
          type: array
          description: Multi-page canvas pages (fabric engine).
          items:
            type: object
            properties:
              pageNumber:
                type: integer
              name:
                type: string
              fabricJSData:
                type: object
                additionalProperties: true
        layouts:
          type: object
          description: |
            Named layout variants. Keys are short identifiers matching
            `^[a-z0-9-]{1,64}$` (e.g. `twitter-post`, `og-image`). Each value
            overrides `width`, `height`, and renderer-specific data for that
            variant. Limit: 20 layouts per template.
          additionalProperties:
            type: object
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key obtained from the Pictify dashboard

````

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