Sign PDF
Open Sign PDF on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.
Tool capabilities
{
"id": "sign-pdf",
"category": "pdf-tools",
"built": true,
"requirements": "Place drawn/uploaded signatures; explicitly distinguish visual signatures from certificate-based signing.",
"implementation": {
"fields": [
{
"key": "page",
"label": "Page",
"value": 1,
"type": "number"
},
{
"key": "x",
"label": "X from left (points)",
"value": 40,
"type": "number"
},
{
"key": "y",
"label": "Y from bottom (points)",
"value": 40,
"type": "number"
},
{
"key": "width",
"label": "Signature width (points)",
"value": 150,
"type": "number"
}
],
"files": true,
"multiple": true,
"input": false,
"accept": ".pdf,.png,.jpg,.jpeg",
"note": "Places an uploaded visual signature. This is not certificate-based digital signing. Select the PDF and signature image together.",
"experience": {
"automatic": false,
"single": false,
"inputMaxLength": 1000000,
"inputMode": "text",
"label": "Your text",
"placeholder": "Type or paste your input…",
"help": "Up to 1,000,000 characters. Review the settings before running.",
"helpParts": [
"Up to 1,000,000 characters.",
"Review the settings before running."
],
"action": null
},
"mode": "explicit",
"interactive": false
},
"execution": "POST /api/v1/tools/sign-pdf/run",
"api": {
"id": "sign-pdf",
"name": "Sign PDF",
"category": "pdf-tools",
"description": "Place a signature image on a PDF page.",
"notes": "Places an uploaded visual signature. This is not certificate-based digital signing. Select the PDF and signature image together.",
"human_path": "/en/pdf-tools/sign-pdf/",
"method": "POST",
"endpoint": "/api/v1/tools/sign-pdf/run",
"schema_url": "/api/v1/tools/sign-pdf",
"input_schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"input": {
"type": "string",
"maxLength": 1000000,
"default": "",
"description": "Plain text input. File tools use files instead unless otherwise documented."
},
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"page": {
"type": "number",
"description": "Page",
"default": 1.0
},
"x": {
"type": "number",
"description": "X from left (points)",
"default": 40.0
},
"y": {
"type": "number",
"description": "Y from bottom (points)",
"default": 40.0
},
"width": {
"type": "number",
"description": "Signature width (points)",
"default": 150.0
}
}
},
"files": {
"type": "array",
"maxItems": 20,
"items": {
"type": "object",
"required": [
"name",
"base64"
],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"description": "Filename only, no path."
},
"mime": {
"type": "string",
"maxLength": 150
},
"bytes": {
"type": "integer",
"minimum": 0,
"description": "Optional decoded byte count; must match content if supplied."
},
"base64": {
"type": "string",
"contentEncoding": "base64",
"description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
}
}
}
}
}
},
"output_schema": {
"type": "object",
"required": [
"tool",
"result"
],
"properties": {
"tool": {
"type": "string"
},
"result": {
"type": "object",
"required": [
"text",
"files"
],
"properties": {
"text": {
"type": [
"string",
"null"
]
},
"data": {
"description": "Parsed JSON when the textual result is JSON."
},
"name": {
"type": "string"
},
"mime": {
"type": "string"
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"mime",
"bytes",
"base64"
],
"properties": {
"name": {
"type": "string"
},
"mime": {
"type": "string"
},
"bytes": {
"type": "integer"
},
"base64": {
"type": "string",
"contentEncoding": "base64"
}
}
}
}
}
}
}
},
"processing": "Server; same transformation code as browser tools",
"limits": {
"request_bytes": 8388608,
"input_characters": 1000000,
"files_bytes": 5242880,
"max_files": 20,
"timeout_seconds": 12
}
},
"agent_processing": "Server; same transformation code as browser tools",
"browser_agent": {
"supported": true,
"name": "run_current_tool",
"discovery": "WebMCP on the human page in a supporting browser",
"verification": "See audit/API-AUDIT.md; availability is not verification"
}
}Page guide
Place a signature image on your PDF.
How to use Sign PDF
- Choose one or more files in PDF, PNG or JPEG.
- Review the settings, then choose Run Sign PDF.
- Review the result, then use Copy result or a download link when available.
Useful next steps
What to expect
Place a signature image on a PDF page. Choose one PDF and one PNG or JPEG signature image. Set the page, position, and image width in PDF points. This adds a visual signature, not certificate-based digital signing.