Skip to main content
Glama

Render PDF or image

render
Idempotent

Create a PDF, PNG, JPEG, or WebP from HTML or a saved template. Image size is request.image.width and request.image.height. viewport is PDF-only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "idempotency_key": {
      -        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      -        "maxLength": 255,
      -        "minLength": 1,
      -        "pattern": "^[ -~]+$",
      -        "type": "string"
      -      },
      -      "output": {
      -        "const": "pdf"
      -      },
      -      "request": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 5242880,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "pages": {
      -                "description": "Canvas data-thirds-page ids in output order. Omitted keeps every page in document order. Duplicate or unknown ids are refused.",
      -                "items": {
      -                  "maxLength": 64,
      -                  "minLength": 1,
      -                  "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "maxItems": 100,
      -                "minItems": 1,
      -                "type": "array"
      -              },
      -              "pdf": {
      -                "additionalProperties": false,
      -                "oneOf": [
      -                  {
      -                    "not": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "width"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "height"
      -                          ]
      -                        }
      -                      ]
      -                    },
      -                    "required": [
      -                      "format"
      -                    ]
      -                  },
      -                  {
      -                    "not": {
      -                      "required": [
      -                        "format"
      -                      ]
      -                    },
      -                    "required": [
      -                      "width",
      -                      "height"
      -                    ]
      -                  },
      -                  {
      -                    "not": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "format"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "width"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "height"
      -                          ]
      -                        }
      -                      ]
      -                    }
      -                  }
      -                ],
      -                "properties": {
      -                  "author": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "display_header_footer": {
      -                    "type": "boolean"
      -                  },
      -                  "footer_template": {
      -                    "maxLength": 100000,
      -                    "type": "string"
      -                  },
      -                  "format": {
      -                    "enum": [
      -                      "A0",
      -                      "A1",
      -                      "A2",
      -                      "A3",
      -                      "A4",
      -                      "A5",
      -                      "A6",
      -                      "Letter",
      -                      "Legal",
      -                      "Ledger",
      -                      "Tabloid"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "header_template": {
      -                    "maxLength": 100000,
      -                    "type": "string"
      -                  },
      -                  "height": {
      -                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      -                    "type": "string"
      -                  },
      -                  "landscape": {
      -                    "type": "boolean"
      -                  },
      -                  "margins": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "bottom": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "left": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "right": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "top": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  "password": {
      -                    "description": "PDF open password, at most 127 UTF-8 bytes. AES-256 encryption.",
      -                    "maxLength": 127,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "print_background": {
      -                    "type": "boolean"
      -                  },
      -                  "scale": {
      -                    "maximum": 2,
      -                    "minimum": 0.1,
      -                    "type": "number"
      -                  },
      -                  "subject": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "title": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "width": {
      -                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              },
      -              "viewport": {
      -                "additionalProperties": false,
      -                "description": "PDF layout viewport. Image requests use request.image.width and request.image.height instead.",
      -                "properties": {
      -                  "device_scale_factor": {
      -                    "maximum": 3,
      -                    "minimum": 1,
      -                    "type": "number"
      -                  },
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "html"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 1048576,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "pages": {
      -                "description": "Canvas data-thirds-page ids in output order. Omitted keeps every page in document order. Duplicate or unknown ids are refused.",
      -                "items": {
      -                  "maxLength": 64,
      -                  "minLength": 1,
      -                  "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "maxItems": 100,
      -                "minItems": 1,
      -                "type": "array"
      -              },
      -              "pdf": {
      -                "additionalProperties": false,
      -                "oneOf": [
      -                  {
      -                    "not": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "width"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "height"
      -                          ]
      -                        }
      -                      ]
      -                    },
      -                    "required": [
      -                      "format"
      -                    ]
      -                  },
      -                  {
      -                    "not": {
      -                      "required": [
      -                        "format"
      -                      ]
      -                    },
      -                    "required": [
      -                      "width",
      -                      "height"
      -                    ]
      -                  },
      -                  {
      -                    "not": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "format"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "width"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "height"
      -                          ]
      -                        }
      -                      ]
      -                    }
      -                  }
      -                ],
      -                "properties": {
      -                  "author": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "display_header_footer": {
      -                    "type": "boolean"
      -                  },
      -                  "footer_template": {
      -                    "maxLength": 100000,
      -                    "type": "string"
      -                  },
      -                  "format": {
      -                    "enum": [
      -                      "A0",
      -                      "A1",
      -                      "A2",
      -                      "A3",
      -                      "A4",
      -                      "A5",
      -                      "A6",
      -                      "Letter",
      -                      "Legal",
      -                      "Ledger",
      -                      "Tabloid"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "header_template": {
      -                    "maxLength": 100000,
      -                    "type": "string"
      -                  },
      -                  "height": {
      -                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      -                    "type": "string"
      -                  },
      -                  "landscape": {
      -                    "type": "boolean"
      -                  },
      -                  "margins": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "bottom": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "left": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "right": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "top": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  "password": {
      -                    "description": "PDF open password, at most 127 UTF-8 bytes. AES-256 encryption.",
      -                    "maxLength": 127,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "print_background": {
      -                    "type": "boolean"
      -                  },
      -                  "scale": {
      -                    "maximum": 2,
      -                    "minimum": 0.1,
      -                    "type": "number"
      -                  },
      -                  "subject": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "title": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "width": {
      -                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              },
      -              "viewport": {
      -                "additionalProperties": false,
      -                "description": "PDF layout viewport. Image requests use request.image.width and request.image.height instead.",
      -                "properties": {
      -                  "device_scale_factor": {
      -                    "maximum": 3,
      -                    "minimum": 1,
      -                    "type": "number"
      -                  },
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "html",
      -              "data"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "pages": {
      -                "description": "Canvas data-thirds-page ids in output order. Omitted keeps every page in document order. Duplicate or unknown ids are refused.",
      -                "items": {
      -                  "maxLength": 64,
      -                  "minLength": 1,
      -                  "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "maxItems": 100,
      -                "minItems": 1,
      -                "type": "array"
      -              },
      -              "pdf": {
      -                "additionalProperties": false,
      -                "oneOf": [
      -                  {
      -                    "not": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "width"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "height"
      -                          ]
      -                        }
      -                      ]
      -                    },
      -                    "required": [
      -                      "format"
      -                    ]
      -                  },
      -                  {
      -                    "not": {
      -                      "required": [
      -                        "format"
      -                      ]
      -                    },
      -                    "required": [
      -                      "width",
      -                      "height"
      -                    ]
      -                  },
      -                  {
      -                    "not": {
      -                      "anyOf": [
      -                        {
      -                          "required": [
      -                            "format"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "width"
      -                          ]
      -                        },
      -                        {
      -                          "required": [
      -                            "height"
      -                          ]
      -                        }
      -                      ]
      -                    }
      -                  }
      -                ],
      -                "properties": {
      -                  "author": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "display_header_footer": {
      -                    "type": "boolean"
      -                  },
      -                  "footer_template": {
      -                    "maxLength": 100000,
      -                    "type": "string"
      -                  },
      -                  "format": {
      -                    "enum": [
      -                      "A0",
      -                      "A1",
      -                      "A2",
      -                      "A3",
      -                      "A4",
      -                      "A5",
      -                      "A6",
      -                      "Letter",
      -                      "Legal",
      -                      "Ledger",
      -                      "Tabloid"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "header_template": {
      -                    "maxLength": 100000,
      -                    "type": "string"
      -                  },
      -                  "height": {
      -                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      -                    "type": "string"
      -                  },
      -                  "landscape": {
      -                    "type": "boolean"
      -                  },
      -                  "margins": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "bottom": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "left": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "right": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      },
      -                      "top": {
      -                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      -                        "type": "string"
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  "password": {
      -                    "description": "PDF open password, at most 127 UTF-8 bytes. AES-256 encryption.",
      -                    "maxLength": 127,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "print_background": {
      -                    "type": "boolean"
      -                  },
      -                  "scale": {
      -                    "maximum": 2,
      -                    "minimum": 0.1,
      -                    "type": "number"
      -                  },
      -                  "subject": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "title": {
      -                    "maxLength": 256,
      -                    "type": "string"
      -                  },
      -                  "width": {
      -                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              },
      -              "template_id": {
      -                "pattern": "^tpl_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "version": {
      -                "minimum": 1,
      -                "type": "integer"
      -              },
      -              "viewport": {
      -                "additionalProperties": false,
      -                "description": "PDF layout viewport. Image requests use request.image.width and request.image.height instead.",
      -                "properties": {
      -                  "device_scale_factor": {
      -                    "maximum": 3,
      -                    "minimum": 1,
      -                    "type": "number"
      -                  },
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "template_id",
      -              "data"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "output",
      -      "idempotency_key",
      -      "request"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "idempotency_key": {
      -        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      -        "maxLength": 255,
      -        "minLength": 1,
      -        "pattern": "^[ -~]+$",
      -        "type": "string"
      -      },
      -      "output": {
      -        "const": "png"
      -      },
      -      "request": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 5242880,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "type": "boolean"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "html"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 1048576,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "type": "boolean"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "html",
      -              "data"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "type": "boolean"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              },
      -              "size_id": {
      -                "description": "Selects one saved size of the template instead of the original. The image width and height must match the size exactly.",
      -                "pattern": "^[a-z0-9][a-z0-9-]{0,39}$",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "template_id": {
      -                "pattern": "^tpl_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "version": {
      -                "minimum": 1,
      -                "type": "integer"
      -              }
      -            },
      -            "required": [
      -              "template_id",
      -              "data"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "output",
      -      "idempotency_key",
      -      "request"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "idempotency_key": {
      -        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      -        "maxLength": 255,
      -        "minLength": 1,
      -        "pattern": "^[ -~]+$",
      -        "type": "string"
      -      },
      -      "output": {
      -        "const": "jpeg"
      -      },
      -      "request": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 5242880,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "quality": {
      -                    "maximum": 100,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "const": false
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "html"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 1048576,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "quality": {
      -                    "maximum": 100,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "const": false
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "html",
      -              "data"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "quality": {
      -                    "maximum": 100,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "const": false
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              },
      -              "size_id": {
      -                "description": "Selects one saved size of the template instead of the original. The image width and height must match the size exactly.",
      -                "pattern": "^[a-z0-9][a-z0-9-]{0,39}$",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "template_id": {
      -                "pattern": "^tpl_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "version": {
      -                "minimum": 1,
      -                "type": "integer"
      -              }
      -            },
      -            "required": [
      -              "template_id",
      -              "data"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "output",
      -      "idempotency_key",
      -      "request"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "idempotency_key": {
      -        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      -        "maxLength": 255,
      -        "minLength": 1,
      -        "pattern": "^[ -~]+$",
      -        "type": "string"
      -      },
      -      "output": {
      -        "const": "webp"
      -      },
      -      "request": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 5242880,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "quality": {
      -                    "maximum": 100,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "type": "boolean"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "html"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "html": {
      -                "maxLength": 1048576,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "quality": {
      -                    "maximum": 100,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "type": "boolean"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "html",
      -              "data"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brand_kit_id": {
      -                "description": "Select an owned brand kit for the reserved brand template data.",
      -                "pattern": "^kit_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "data": {
      -                "type": "object"
      -              },
      -              "filename": {
      -                "description": "Safe download name. The server uses the real output extension.",
      -                "maxLength": 120,
      -                "minLength": 1,
      -                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      -                "type": "string"
      -              },
      -              "image": {
      -                "additionalProperties": false,
      -                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      -                "properties": {
      -                  "height": {
      -                    "maximum": 4320,
      -                    "minimum": 200,
      -                    "type": "integer"
      -                  },
      -                  "quality": {
      -                    "maximum": 100,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "transparent": {
      -                    "type": "boolean"
      -                  },
      -                  "width": {
      -                    "maximum": 7680,
      -                    "minimum": 320,
      -                    "type": "integer"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "javascript": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "disabled",
      -                      "enabled"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "reference": {
      -                "description": "Your reference, returned in the job, history, and webhook.",
      -                "maxLength": 200,
      -                "minLength": 1,
      -                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      -                "type": "string"
      -              },
      -              "size_id": {
      -                "description": "Selects one saved size of the template instead of the original. The image width and height must match the size exactly.",
      -                "pattern": "^[a-z0-9][a-z0-9-]{0,39}$",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "template_id": {
      -                "pattern": "^tpl_[0-9a-f]{32}$",
      -                "type": "string"
      -              },
      -              "version": {
      -                "minimum": 1,
      -                "type": "integer"
      -              }
      -            },
      -            "required": [
      -              "template_id",
      -              "data"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "output",
      -      "idempotency_key",
      -      "request"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "idempotency_key": {
      +        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      +        "maxLength": 255,
      +        "minLength": 1,
      +        "pattern": "^[ -~]+$",
      +        "type": "string"
      +      },
      +      "output": {
      +        "const": "pdf"
      +      },
      +      "request": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 5242880,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "pages": {
      +                "description": "Canvas data-thirds-page ids in output order. Omitted keeps every page in document order. Duplicate or unknown ids are refused.",
      +                "items": {
      +                  "maxLength": 64,
      +                  "minLength": 1,
      +                  "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "maxItems": 100,
      +                "minItems": 1,
      +                "type": "array"
      +              },
      +              "pdf": {
      +                "additionalProperties": false,
      +                "oneOf": [
      +                  {
      +                    "not": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "width"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "height"
      +                          ]
      +                        }
      +                      ]
      +                    },
      +                    "required": [
      +                      "format"
      +                    ]
      +                  },
      +                  {
      +                    "not": {
      +                      "required": [
      +                        "format"
      +                      ]
      +                    },
      +                    "required": [
      +                      "width",
      +                      "height"
      +                    ]
      +                  },
      +                  {
      +                    "not": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "format"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "width"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "height"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "author": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "display_header_footer": {
      +                    "type": "boolean"
      +                  },
      +                  "footer_template": {
      +                    "maxLength": 100000,
      +                    "type": "string"
      +                  },
      +                  "format": {
      +                    "enum": [
      +                      "A0",
      +                      "A1",
      +                      "A2",
      +                      "A3",
      +                      "A4",
      +                      "A5",
      +                      "A6",
      +                      "Letter",
      +                      "Legal",
      +                      "Ledger",
      +                      "Tabloid"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "header_template": {
      +                    "maxLength": 100000,
      +                    "type": "string"
      +                  },
      +                  "height": {
      +                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      +                    "type": "string"
      +                  },
      +                  "landscape": {
      +                    "type": "boolean"
      +                  },
      +                  "margins": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "bottom": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "left": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "right": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "top": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "password": {
      +                    "description": "PDF open password, at most 127 UTF-8 bytes. AES-256 encryption.",
      +                    "maxLength": 127,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "print_background": {
      +                    "type": "boolean"
      +                  },
      +                  "scale": {
      +                    "maximum": 2,
      +                    "minimum": 0.1,
      +                    "type": "number"
      +                  },
      +                  "subject": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "title": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "width": {
      +                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "viewport": {
      +                "additionalProperties": false,
      +                "description": "PDF layout viewport. Image requests use request.image.width and request.image.height instead.",
      +                "properties": {
      +                  "device_scale_factor": {
      +                    "maximum": 3,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "html"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 1048576,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "pages": {
      +                "description": "Canvas data-thirds-page ids in output order. Omitted keeps every page in document order. Duplicate or unknown ids are refused.",
      +                "items": {
      +                  "maxLength": 64,
      +                  "minLength": 1,
      +                  "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "maxItems": 100,
      +                "minItems": 1,
      +                "type": "array"
      +              },
      +              "pdf": {
      +                "additionalProperties": false,
      +                "oneOf": [
      +                  {
      +                    "not": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "width"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "height"
      +                          ]
      +                        }
      +                      ]
      +                    },
      +                    "required": [
      +                      "format"
      +                    ]
      +                  },
      +                  {
      +                    "not": {
      +                      "required": [
      +                        "format"
      +                      ]
      +                    },
      +                    "required": [
      +                      "width",
      +                      "height"
      +                    ]
      +                  },
      +                  {
      +                    "not": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "format"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "width"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "height"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "author": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "display_header_footer": {
      +                    "type": "boolean"
      +                  },
      +                  "footer_template": {
      +                    "maxLength": 100000,
      +                    "type": "string"
      +                  },
      +                  "format": {
      +                    "enum": [
      +                      "A0",
      +                      "A1",
      +                      "A2",
      +                      "A3",
      +                      "A4",
      +                      "A5",
      +                      "A6",
      +                      "Letter",
      +                      "Legal",
      +                      "Ledger",
      +                      "Tabloid"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "header_template": {
      +                    "maxLength": 100000,
      +                    "type": "string"
      +                  },
      +                  "height": {
      +                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      +                    "type": "string"
      +                  },
      +                  "landscape": {
      +                    "type": "boolean"
      +                  },
      +                  "margins": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "bottom": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "left": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "right": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "top": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "password": {
      +                    "description": "PDF open password, at most 127 UTF-8 bytes. AES-256 encryption.",
      +                    "maxLength": 127,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "print_background": {
      +                    "type": "boolean"
      +                  },
      +                  "scale": {
      +                    "maximum": 2,
      +                    "minimum": 0.1,
      +                    "type": "number"
      +                  },
      +                  "subject": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "title": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "width": {
      +                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "viewport": {
      +                "additionalProperties": false,
      +                "description": "PDF layout viewport. Image requests use request.image.width and request.image.height instead.",
      +                "properties": {
      +                  "device_scale_factor": {
      +                    "maximum": 3,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "html",
      +              "data"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "pages": {
      +                "description": "Canvas data-thirds-page ids in output order. Omitted keeps every page in document order. Duplicate or unknown ids are refused.",
      +                "items": {
      +                  "maxLength": 64,
      +                  "minLength": 1,
      +                  "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "maxItems": 100,
      +                "minItems": 1,
      +                "type": "array"
      +              },
      +              "pdf": {
      +                "additionalProperties": false,
      +                "oneOf": [
      +                  {
      +                    "not": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "width"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "height"
      +                          ]
      +                        }
      +                      ]
      +                    },
      +                    "required": [
      +                      "format"
      +                    ]
      +                  },
      +                  {
      +                    "not": {
      +                      "required": [
      +                        "format"
      +                      ]
      +                    },
      +                    "required": [
      +                      "width",
      +                      "height"
      +                    ]
      +                  },
      +                  {
      +                    "not": {
      +                      "anyOf": [
      +                        {
      +                          "required": [
      +                            "format"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "width"
      +                          ]
      +                        },
      +                        {
      +                          "required": [
      +                            "height"
      +                          ]
      +                        }
      +                      ]
      +                    }
      +                  }
      +                ],
      +                "properties": {
      +                  "author": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "display_header_footer": {
      +                    "type": "boolean"
      +                  },
      +                  "footer_template": {
      +                    "maxLength": 100000,
      +                    "type": "string"
      +                  },
      +                  "format": {
      +                    "enum": [
      +                      "A0",
      +                      "A1",
      +                      "A2",
      +                      "A3",
      +                      "A4",
      +                      "A5",
      +                      "A6",
      +                      "Letter",
      +                      "Legal",
      +                      "Ledger",
      +                      "Tabloid"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "header_template": {
      +                    "maxLength": 100000,
      +                    "type": "string"
      +                  },
      +                  "height": {
      +                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      +                    "type": "string"
      +                  },
      +                  "landscape": {
      +                    "type": "boolean"
      +                  },
      +                  "margins": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "bottom": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "left": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "right": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      },
      +                      "top": {
      +                        "pattern": "^(?:0|[1-9][0-9]*)(?:\\.[0-9]{1,4})?(?:px|in|cm|mm)$",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  "password": {
      +                    "description": "PDF open password, at most 127 UTF-8 bytes. AES-256 encryption.",
      +                    "maxLength": 127,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "print_background": {
      +                    "type": "boolean"
      +                  },
      +                  "scale": {
      +                    "maximum": 2,
      +                    "minimum": 0.1,
      +                    "type": "number"
      +                  },
      +                  "subject": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "title": {
      +                    "maxLength": 256,
      +                    "type": "string"
      +                  },
      +                  "width": {
      +                    "pattern": "^(?:0\\.(?=[0-9]{1,4}(?:px|in|cm|mm)$)(?=[0-9]*[1-9])[0-9]{1,4}|[1-9][0-9]*(?:\\.[0-9]{1,4})?)(?:px|in|cm|mm)$",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "template_id": {
      +                "pattern": "^tpl_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "version": {
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "viewport": {
      +                "additionalProperties": false,
      +                "description": "PDF layout viewport. Image requests use request.image.width and request.image.height instead.",
      +                "properties": {
      +                  "device_scale_factor": {
      +                    "maximum": 3,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "template_id",
      +              "data"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "output",
      +      "idempotency_key",
      +      "request"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "idempotency_key": {
      +        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      +        "maxLength": 255,
      +        "minLength": 1,
      +        "pattern": "^[ -~]+$",
      +        "type": "string"
      +      },
      +      "output": {
      +        "const": "png"
      +      },
      +      "request": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 5242880,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "type": "boolean"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "html"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 1048576,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "type": "boolean"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "html",
      +              "data"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "type": "boolean"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "size_id": {
      +                "description": "Selects one saved size of the template instead of the original. The image width and height must match the size exactly.",
      +                "pattern": "^[a-z0-9][a-z0-9-]{0,39}$",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "template_id": {
      +                "pattern": "^tpl_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "version": {
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "template_id",
      +              "data"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "output",
      +      "idempotency_key",
      +      "request"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "idempotency_key": {
      +        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      +        "maxLength": 255,
      +        "minLength": 1,
      +        "pattern": "^[ -~]+$",
      +        "type": "string"
      +      },
      +      "output": {
      +        "const": "jpeg"
      +      },
      +      "request": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 5242880,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "quality": {
      +                    "maximum": 100,
      +                    "minimum": 1,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "const": false
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "html"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 1048576,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "quality": {
      +                    "maximum": 100,
      +                    "minimum": 1,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "const": false
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "html",
      +              "data"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "quality": {
      +                    "maximum": 100,
      +                    "minimum": 1,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "const": false
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "size_id": {
      +                "description": "Selects one saved size of the template instead of the original. The image width and height must match the size exactly.",
      +                "pattern": "^[a-z0-9][a-z0-9-]{0,39}$",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "template_id": {
      +                "pattern": "^tpl_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "version": {
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "template_id",
      +              "data"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "output",
      +      "idempotency_key",
      +      "request"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "idempotency_key": {
      +        "description": "Reuse this key only when retrying the same command. A new key starts new work and can spend credits again.",
      +        "maxLength": 255,
      +        "minLength": 1,
      +        "pattern": "^[ -~]+$",
      +        "type": "string"
      +      },
      +      "output": {
      +        "const": "webp"
      +      },
      +      "request": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 5242880,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "quality": {
      +                    "maximum": 100,
      +                    "minimum": 1,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "type": "boolean"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "html"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "html": {
      +                "maxLength": 1048576,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "quality": {
      +                    "maximum": 100,
      +                    "minimum": 1,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "type": "boolean"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "html",
      +              "data"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brand_kit_id": {
      +                "description": "Select an owned brand kit for the reserved brand template data.",
      +                "pattern": "^kit_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "data": {
      +                "type": "object"
      +              },
      +              "filename": {
      +                "description": "Safe download name. The server uses the real output extension.",
      +                "maxLength": 120,
      +                "minLength": 1,
      +                "pattern": "^(?!.* $)(?!.*\\.\\.)[A-Za-z0-9][A-Za-z0-9 ._-]*$",
      +                "type": "string"
      +              },
      +              "image": {
      +                "additionalProperties": false,
      +                "description": "Image pixel size. Use width and height here. viewport is valid only on PDF requests.",
      +                "properties": {
      +                  "height": {
      +                    "maximum": 4320,
      +                    "minimum": 200,
      +                    "type": "integer"
      +                  },
      +                  "quality": {
      +                    "maximum": 100,
      +                    "minimum": 1,
      +                    "type": "integer"
      +                  },
      +                  "transparent": {
      +                    "type": "boolean"
      +                  },
      +                  "width": {
      +                    "maximum": 7680,
      +                    "minimum": 320,
      +                    "type": "integer"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "javascript": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "disabled",
      +                      "enabled"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "reference": {
      +                "description": "Your reference, returned in the job, history, and webhook.",
      +                "maxLength": 200,
      +                "minLength": 1,
      +                "pattern": "^[^\\u0000-\\u001f\\u007f-\\u009f]+$",
      +                "type": "string"
      +              },
      +              "retention_days": {
      +                "description": "Days to keep the finished file. Omit it to use the account default. A paid plan allows up to 365; a free, pack-only, or trial account allows up to 30.",
      +                "maximum": 365,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "size_id": {
      +                "description": "Selects one saved size of the template instead of the original. The image width and height must match the size exactly.",
      +                "pattern": "^[a-z0-9][a-z0-9-]{0,39}$",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "template_id": {
      +                "pattern": "^tpl_[0-9a-f]{32}$",
      +                "type": "string"
      +              },
      +              "version": {
      +                "minimum": 1,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "template_id",
      +              "data"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "output",
      +      "idempotency_key",
      +      "request"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observed

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=true, openWorld=true, and destructive=false, so the safety profile is covered. The description adds the 'viewport is PDF-only' constraint, but says nothing about the async job lifecycle, credit consumption, or the idempotency_key/credit implication that the schema surfaces.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero padding, with the core capability front-loaded before the two scoping constraints. Every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a highly complex multi-variant tool the description is thin, but the rich schema covers the request variants and the async/idempotency semantics are documented on idempotency_key. It stops short of explaining the job/credit model, which would be the only meaningful remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents sizes and constraints; the description's size/viewport note largely restates what the 'image' and 'viewport' schema descriptions say. Baseline 3 is appropriate — it reinforces but does not extend the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Create') with the exact output formats (PDF, PNG, JPEG, WebP) and both input sources (HTML or a saved template). An agent can cleanly distinguish this from siblings like preview_template or create_ai_image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mention of 'HTML or a saved template' implies the two request shapes, but there is no explicit when-to-use vs. when-not guidance and no reference to a sibling (e.g., preview_template for a dry run). Usage is inferable only from the schema variants.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources