Skip to main content
CURL
Try it live: Merge PDF → API Tester — send a real request from your browser.

POST /v1/pdf/merge

The total combined size of all input file URLs must not exceed 2 GB. Requests that exceed this limit will not be processed.

Request body

Attributes are case-sensitive and should be inside JSON for POST request. for example: { "url": "https://example.com/file1.pdf" } No query parameters accepted.
To see the request size limits, please refer to the Request Size Limits.
string
required
URLs to the source file url attribute. If you use multiple URLs, please separate them with a ,
string
The callback URL (or Webhook) used to receive the POST data. see Webhooks & Callbacks. This is only applicable when async is set to true.
string
HTTP auth user name if required to access source URL.
string
HTTP auth password if required to access source URL.
boolean
default:"false"
Set async to true for long processes to run in the background, API will then return a jobId which you can use with the Background Job Check endpoint. Also see Webhooks & Callbacks
string
File name for the generated output, the input must be in string format.
integer
default:"60"
Set the expiration time for the output link in minutes. After this specified duration, any generated output file(s) will be automatically deleted from PDF.co Temporary Files Storage. The maximum duration for link expiration varies based on your current subscription plan. To store permanent input files (e.g. re-usable images, pdf templates, documents) consider using PDF.co Built-In Files Storage.
string
Pass profile settings as a JSON-encoded string. See Profiles for more information.

Rename Matching Fields

This feature enables the renaming of field names during the merging of PDF files which contain forms. If set to false, it will retain the original field names. This is helpful for merged PDF forms with identical field names when the customer wants to auto-fill the identical field names in other pages.

Generate Bookmarks

This adds bookmarks to the merged document with names assigned to every merged document in the same order:

Include / Exclude from ZIPS

You can control which files to include and exclude from input zip files with a profiles.
zipIncludeFilter and zipExcludeFilter support * and ? wildcards.

Change Document Title

You can change the document title during a merge with the following:

Responses

Synchronous response
An asynchronous request returns a jobId and a reserved URL that should be used only after the job succeeds. Poll it via Background Job Check. Error response bodies vary. See the response examples and Response Codes.
Inconsistent URL Encoding in cURL Output: When using cURL to make API requests, the output JSON may show URL characters encoded as Unicode escape sequences. For example, the ampersand character (&) may appear as \u0026 in the cURL output. This is normal JSON encoding behavior and does not affect the validity of the URL. The URL will function correctly when used, as JSON parsers automatically decode these escape sequences. If you’re parsing the response programmatically, your JSON parser will handle this conversion automatically.