happytails.ai

Merge PDF

Open Merge 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": "merge-pdf",
  "category": "pdf-tools",
  "built": true,
  "requirements": "Reorder input documents and pages; preserve page dimensions; report encrypted/unsupported files.",
  "implementation": {
    "fields": [],
    "files": true,
    "multiple": true,
    "input": false,
    "accept": ".pdf",
    "note": "Files merge from top to bottom. Pages keep their order within each PDF. Password-encrypted PDFs must be unlocked first.",
    "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/merge-pdf/run",
  "api": {
    "id": "merge-pdf",
    "name": "Merge PDF",
    "category": "pdf-tools",
    "description": "Combine PDF files into one document.",
    "notes": "Files merge from top to bottom. Pages keep their order within each PDF. Password-encrypted PDFs must be unlocked first.",
    "human_path": "/en/pdf-tools/merge-pdf/",
    "method": "POST",
    "endpoint": "/api/v1/tools/merge-pdf/run",
    "schema_url": "/api/v1/tools/merge-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": {}
        },
        "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

Bring separate PDFs together in the order you want.

How to use Merge PDF
  1. Add your PDF files. Each file shows its page count.
  2. Use the arrows to arrange the files from top to bottom, then select Merge PDFs.
  3. Check the total page count and download your combined PDF.

Useful next steps

How Merge PDF works

Add your PDF files, arrange them from top to bottom, and Happytails.ai combines them in your browser into one file named merged.pdf. Files are joined in the order shown, every page is included, and pages keep their original order and page size within each document. Fillable form fields are carried over. The total upload is limited to 100 MB, and password-encrypted PDFs must be unlocked before you can merge them.

Before you start

Unlock any password-protected PDFs and decide the order of your files, because the order in the list becomes the page order of the merged document.

A worked example

Merging a 3-page Letter PDF followed by a 2-page A4 PDF produces a 5-page merged.pdf whose first three pages are Letter size and last two are A4.

What to expect

Combine PDF files into one document. Add the PDFs, arrange their file order, then merge them. Pages keep their order within each source document.

Common questions

Can I change the page order after merging?

The merge keeps files in the order of your list and pages in their original order within each file. To move individual pages, merge first, then open the result in a reorder pages tool. Arrange the files with the arrows before merging to get the file order right.

Why can't my PDF be merged?

Password-encrypted or damaged PDFs cannot be opened, so unlock or repair them first. PDFs with a digital signature, XFA forms, or form calculations and scripted actions are also refused, because those features cannot be preserved safely when pages are copied.

Do the pages keep their size?

Yes. Each page keeps its original dimensions, so a merged file can mix sizes such as Letter and A4. The tool does not scale pages to a common size. Use a page resize tool afterwards if you need every page to match.

Will fillable forms still work after merging?

Standard form fields are carried over to the merged PDF. Signed forms, XFA forms and forms with calculations are rejected instead of being merged incorrectly.

Is there a limit on file size?

Yes. The selected PDFs can total up to 100 MB. Very large files take longer to process because merging happens in your browser, so close other heavy tabs if your device is short on memory.