GroupDocs.Merger Cloud is an enterprise-grade REST API for joining, splitting, and rearranging documents. Merge several files into one, split a document into multiple files, or reorder, rotate, extract, and protect pages across Word, PDF, Excel, PowerPoint, images, and more — with no third-party desktop software.
SDKs are grouped by platform. Each example joins multiple Word documents into one using the Join Multiple Documents API. The same call is shown first as plain REST (cURL), then for each SDK.
Call the Merger Cloud REST API directly (no SDK). Obtain a JWT from the token endpoint (client_credentials), then join:
# Get JWT (Client Id / Client Secret from https://dashboard.groupdocs.cloud)
curl -v "https://api.groupdocs.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
# Join several documents into one
curl -v "https://api.groupdocs.cloud/v1.0/merger/join" \
-X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer $JWT_TOKEN" \
-d '{
"JoinItems": [
{
"FileInfo": {
"FilePath": "/WordProcessing/four-pages.docx",
"Password": "password"
}
},
{
"FileInfo": {
"FilePath": "/WordProcessing/one-page.docx"
}
}
],
"OutputPath": "output/joined.docx"
}'See more: Join Multiple Documents (cURL example).
.NET SDK for GroupDocs.Merger Cloud — .NET Core and .NET Framework.
- groupdocs-merger-cloud-dotnet — SDK
- groupdocs-merger-cloud-dotnet-samples — Examples
var configuration = new Configuration(MyClientId, MyClientSecret);
var apiInstance = new DocumentApi(configuration);
var item1 = new JoinItem
{
FileInfo = new FileInfo { FilePath = "WordProcessing/four-pages.docx" }
};
var item2 = new JoinItem
{
FileInfo = new FileInfo { FilePath = "WordProcessing/one-page.docx" }
};
var options = new JoinOptions
{
JoinItems = new List<JoinItem> { item1, item2 },
OutputPath = "Output/joined.docx"
};
var response = apiInstance.Join(new JoinRequest(options));Java SDK for the GroupDocs.Merger Cloud REST API.
- groupdocs-merger-cloud-java — SDK
- groupdocs-merger-cloud-java-samples — Examples
Configuration configuration = new Configuration(MyClientId, MyClientSecret);
DocumentApi apiInstance = new DocumentApi(configuration);
FileInfo fileInfo1 = new FileInfo();
fileInfo1.setFilePath("WordProcessing/four-pages.docx");
JoinItem item1 = new JoinItem();
item1.setFileInfo(fileInfo1);
FileInfo fileInfo2 = new FileInfo();
fileInfo2.setFilePath("WordProcessing/one-page.docx");
JoinItem item2 = new JoinItem();
item2.setFileInfo(fileInfo2);
JoinOptions options = new JoinOptions();
options.setJoinItems(Arrays.asList(item1, item2));
options.setOutputPath("output/joined.docx");
DocumentResult response = apiInstance.join(new JoinRequest(options));PHP SDK for the GroupDocs.Merger Cloud REST API.
- groupdocs-merger-cloud-php — SDK
- groupdocs-merger-cloud-php-samples — Examples
use GroupDocs\Merger\Model;
use GroupDocs\Merger\Model\Requests;
$configuration = new GroupDocs\Merger\Configuration();
$configuration->setAppSid($ClientId);
$configuration->setAppKey($ClientSecret);
$documentApi = new GroupDocs\Merger\DocumentApi($configuration);
$fileInfo1 = new Model\FileInfo();
$fileInfo1->setFilePath("WordProcessing/four-pages.docx");
$item1 = new Model\JoinItem();
$item1->setFileInfo($fileInfo1);
$fileInfo2 = new Model\FileInfo();
$fileInfo2->setFilePath("WordProcessing/one-page.docx");
$item2 = new Model\JoinItem();
$item2->setFileInfo($fileInfo2);
$options = new Model\JoinOptions();
$options->setJoinItems([$item1, $item2]);
$options->setOutputPath("Output/joined.docx");
$response = $documentApi->join(new Requests\joinRequest($options));Node.js SDK for the GroupDocs.Merger Cloud REST API.
- groupdocs-merger-cloud-node — SDK
- groupdocs-merger-cloud-node-samples — Examples
const merger_cloud = require("groupdocs-merger-cloud");
const documentApi = merger_cloud.DocumentApi.fromKeys(clientId, clientSecret);
let item1 = new merger_cloud.JoinItem();
item1.fileInfo = new merger_cloud.FileInfo();
item1.fileInfo.filePath = "WordProcessing/four-pages.docx";
let item2 = new merger_cloud.JoinItem();
item2.fileInfo = new merger_cloud.FileInfo();
item2.fileInfo.filePath = "WordProcessing/one-page.docx";
let options = new merger_cloud.JoinOptions();
options.joinItems = [item1, item2];
options.outputPath = "Output/joined.docx";
let result = await documentApi.join(new merger_cloud.JoinRequest(options));Python SDK for the GroupDocs.Merger Cloud REST API.
- groupdocs-merger-cloud-python — SDK
- groupdocs-merger-cloud-python-samples — Examples
import groupdocs_merger_cloud
document_api = groupdocs_merger_cloud.DocumentApi.from_keys(client_id, client_secret)
item1 = groupdocs_merger_cloud.JoinItem()
item1.file_info = groupdocs_merger_cloud.FileInfo("WordProcessing/four-pages.docx")
item2 = groupdocs_merger_cloud.JoinItem()
item2.file_info = groupdocs_merger_cloud.FileInfo("WordProcessing/one-page.docx")
options = groupdocs_merger_cloud.JoinOptions()
options.join_items = [item1, item2]
options.output_path = "Output/joined.docx"
result = document_api.join(groupdocs_merger_cloud.JoinRequest(options))Ruby SDK for the GroupDocs.Merger Cloud REST API.
- groupdocs-merger-cloud-ruby — SDK
- groupdocs-merger-cloud-ruby-samples — Examples
require 'groupdocs_merger_cloud'
document_api = GroupDocsMergerCloud::DocumentApi.from_keys($client_id, $client_secret)
item1 = GroupDocsMergerCloud::JoinItem.new
item1.file_info = GroupDocsMergerCloud::FileInfo.new
item1.file_info.file_path = 'WordProcessing/four-pages.docx'
item2 = GroupDocsMergerCloud::JoinItem.new
item2.file_info = GroupDocsMergerCloud::FileInfo.new
item2.file_info.file_path = 'WordProcessing/one-page.docx'
options = GroupDocsMergerCloud::JoinOptions.new
options.join_items = [item1, item2]
options.output_path = "Output/joined.docx"
result = document_api.join(GroupDocsMergerCloud::JoinRequest.new(options))- Contract assembly — Join cover letters, agreements, and exhibits into a single Word or PDF package.
- Report packaging — Merge weekly or monthly reports from multiple contributors into one deliverable.
- Page surgery — Split large PDFs, extract selected pages, or reorder sections before distribution.
- Image collages — Join scanned pages or photos into a multi-page PDF or stacked image.
- Secure sharing — Add or update passwords on merged outputs before sending to clients.
Use Client ID and Client Secret from GroupDocs Cloud Dashboard to authenticate. Set them in your SDK configuration (e.g. Configuration, from_keys, or environment variables) before calling the API.
| Feature | Description |
|---|---|
| 40+ formats | Word, PDF, Excel, PowerPoint, Visio, images, and more for join/split workflows. |
| Join documents | Merge whole files or selected pages from multiple sources into one result. |
| Split documents | Split by page numbers, ranges, or into multi-page chunks. |
| Page operations | Move, remove, rotate, swap, extract, and change orientation. |
| Cross-format join | Combine compatible formats (and dedicated image join modes). |
| Security | Check, add, update, or remove password protection on documents. |
| Document info | Get page count, format, and other metadata before processing. |
| Resource | Link |
|---|---|
| Documentation | GroupDocs.Merger Cloud Docs — guides, API reference, and SDK usage. |
| Support forum | GroupDocs Cloud Free Support Forum — ask questions and report issues. |
| Temporary license | Get a free trial — full-feature evaluation. |
| Live demo | GroupDocs.Merger apps — try merge/split in the browser. |
| API reference | REST API Reference — Swagger/OpenAPI. |
document-merger merge-pdf merge-word join-documents split-pdf split-document reorder-pages extract-pages rotate-pages document-automation merger-api merge-docx pdf-join page-manipulation password-protect-document groupdocs-merger-cloud merger-sdk