GroupDocs.Assembly Cloud is an enterprise-grade REST API for generating documents from reusable templates and JSON/XML data. Merge templates with business data to produce invoices, contracts, reports, presentations, and more — across Word, Excel, PowerPoint, PDF, OpenOffice, HTML, email, and other formats — with no third-party desktop software.
SDKs are grouped by platform. Each example assembles a document from a template + JSON report data via the public AssembleDocument API (AssembleOptions / TemplateFileInfo). SDK snippets are grounded in each SDK’s unit tests (and matching README samples). The same call is shown first as plain REST (cURL), then for each SDK.
Call the Assembly Cloud REST API directly (no SDK). Obtain a JWT from the token endpoint (client_credentials), then assemble. Verified public example from the Create Invoices Online blog post:
# 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"
# Assemble document (template + JSON report data → PDF)
# ReportData must be a JSON string (escape file contents when needed)
curl -v "https://api.groupdocs.cloud/v1.0/assembly/assemble" \
-X POST \
-H "Authorization: Bearer $JWT_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"TemplateFileInfo\": {
\"FilePath\": \"/templates/invoice-template.docx\"
},
\"SaveFormat\": \"pdf\",
\"OutputPath\": \"/output/invoice-generated.pdf\",
\"ReportData\": $REPORT_DATA_ESCAPED
}"See more: Create Invoices Online with GroupDocs.Assembly Cloud API (cURL example). Also: Assembly with cURL.
.NET SDK for GroupDocs.Assembly Cloud — .NET Framework and later.
var assemblyApi = new AssemblyApi(MyClientSecret, MyClientId);
var reportData = File.ReadAllText("TableData.json");
var options = new AssembleOptions
{
SaveFormat = "pdf",
ReportData = reportData,
TemplateFileInfo = new TemplateFileInfo { FilePath = "TableFeatures.odt" }
};
var result = assemblyApi.AssembleDocument(new AssembleDocumentRequest(options));Java SDK for the GroupDocs.Assembly Cloud REST API.
AssemblyApi assemblyApi = new AssemblyApi(MyClientId, MyClientSecret, "https://api.groupdocs.cloud");
AssembleOptions options = new AssembleOptions();
options.setTemplateFileInfo(new TemplateFileInfo().filePath("TableFeatures.odt"));
options.setSaveFormat("pdf");
options.setReportData(new String(Files.readAllBytes(Paths.get("TableData.json"))));
File result = assemblyApi.assembleDocument(new AssembleDocumentRequest(options));PHP SDK for the GroupDocs.Assembly Cloud REST API.
use GroupDocs\Assembly\Model;
use GroupDocs\Assembly\Model\Requests;
$assemblyApi = new GroupDocs\Assembly\AssemblyApi($ClientId, $ClientSecret, "https://api.groupdocs.cloud");
$reportData = file_get_contents("TableData.json");
$options = new Model\AssembleOptions(array(
"template_file_info" => new Model\TemplateFileInfo(array("file_path" => "TableFeatures.odt")),
"save_format" => "pdf",
"report_data" => $reportData
));
$result = $assemblyApi->assembleDocument(new Requests\AssembleDocumentRequest($options));Node.js SDK for the GroupDocs.Assembly Cloud REST API.
const { AssemblyApi, AssembleDocumentRequest, AssembleOptions, TemplateFileInfo } = require("groupdocs-assembly-cloud");
const { readFileSync } = require("fs");
const assemblyApi = new AssemblyApi(clientId, clientSecret);
const options = new AssembleOptions({
saveFormat: "pdf",
reportData: readFileSync("TableData.json", "utf8"),
templateFileInfo: new TemplateFileInfo({ filePath: "TableFeatures.odt" })
});
const result = await assemblyApi.assembleDocument(
new AssembleDocumentRequest({ assembleOptions: options })
);Python SDK for the GroupDocs.Assembly Cloud REST API.
import groupdocsassemblycloud
from groupdocsassemblycloud.models.requests import AssembleDocumentRequest
assembly_api = groupdocsassemblycloud.AssemblyApi(client_id, client_secret)
with open("TableData.json") as f:
report_data = f.read()
template_file_info = groupdocsassemblycloud.TemplateFileInfo("TableFeatures.odt")
options = groupdocsassemblycloud.AssembleOptions(template_file_info, "pdf", report_data)
result = assembly_api.assemble_document(AssembleDocumentRequest(options))Ruby SDK for the GroupDocs.Assembly Cloud REST API.
require 'groupdocs_assembly_cloud'
GroupDocsAssemblyCloud.configure do |config|
config.api_key['api_key'] = client_secret
config.api_key['app_sid'] = client_id
config.host = 'https://api.groupdocs.cloud'
end
assembly_api = GroupDocsAssemblyCloud::AssemblyApi.new
template_file_info = GroupDocsAssemblyCloud::TemplateFileInfo.new(FilePath: "TableFeatures.odt")
options = GroupDocsAssemblyCloud::AssembleOptions.new(
TemplateFileInfo: template_file_info,
SaveFormat: "pdf",
ReportData: File.read("TableData.json")
)
result = assembly_api.assemble_document(
GroupDocsAssemblyCloud::AssembleDocumentRequest.new(options)
)Go SDK for the GroupDocs.Assembly Cloud REST API.
config, _ := api.NewConfiguration("config.json") // AppKey, AppSid, BaseUrl
client, _ := api.NewAPIClient(config)
ctx, _ := client.NewContextWithToken(nil)
data, _ := ioutil.ReadFile("TableData.json")
templateInfo := api.TemplateFileInfo{FilePath: "TableFeatures.odt"}
options := api.AssembleOptions{
TemplateFileInfo: &templateInfo,
SaveFormat: "pdf",
ReportData: string(data),
}
output, err := client.AssemblyApi.AssembleDocument(ctx, options)C++ SDK for the GroupDocs.Assembly Cloud REST API.
auto configuration = std::make_shared<ApiConfiguration>();
configuration->setAppSid(_XPLATSTR("MyClientId"));
configuration->setAppKey(_XPLATSTR("MyClientSecret"));
configuration->setBaseUrl(_XPLATSTR("https://api.groupdocs.cloud"));
auto assemblyApi = std::make_shared<AssemblyApi>(configuration);
auto fileInfo = std::make_shared<TemplateFileInfo>();
fileInfo->setFilePath(_XPLATSTR("TableFeatures.odt"));
auto options = std::make_shared<AssembleOptions>();
options->setTemplateFileInfo(fileInfo);
options->setSaveFormat(_XPLATSTR("pdf"));
options->setReportData(_XPLATSTR("{\"Name\":\"John Smith\"}")); // or load TableData.json
auto request = std::make_shared<AssembleDocumentRequest>(options);
HttpContent result = assemblyApi->assembleDocument(request).get();Swift SDK for the GroupDocs.Assembly Cloud REST API.
let assemblyApi = try AssemblyApi(appSid: clientId, appKey: clientSecret)
let templateFileInfo = TemplateFileInfo()
templateFileInfo.setFilePath(filePath: "TableFeatures.odt")
let reportData = try String(contentsOfFile: "TableData.json", encoding: .utf8)
let options = AssembleOptions()
options.setTemplateFileInfo(templateFileInfo: templateFileInfo)
options.setSaveFormat(saveFormat: "pdf")
options.setReportData(reportData: reportData)
let result = try assemblyApi.assembleDocument(
request: AssembleDocumentRequest(assembleOptions: options)
)- Invoices & quotes — Generate PDF invoices from Word templates and line-item JSON.
- Contracts — Populate legal templates with party, date, and clause data at scale.
- Operational reports — Assemble weekly/monthly packs with tables and charts from live data.
- Mail merge at cloud scale — Produce personalized letters or certificates without desktop Office.
- Multi-format delivery — Same template family output as DOCX, PDF, HTML, or presentation formats.
Use Client ID (App SID) and Client Secret (App Key) from GroupDocs Cloud Dashboard to authenticate. Pass them to your SDK’s AssemblyApi / configuration before calling AssembleDocument.
| Feature | Description |
|---|---|
| Template-driven | Design templates in familiar Office formats with LINQ-style tags and expressions. |
| JSON / XML data | Bind hierarchical data, tables, and collections into the template. |
| Many outputs | Word, Excel, PowerPoint, PDF, OpenOffice, HTML, email, and more. |
| Dynamic content | Lists, tables, charts, barcodes, hyperlinks, bookmarks, and conditional blocks. |
| Cloud storage | Upload templates and download assembled results via the same Cloud API surface. |
| Cross-platform SDKs | .NET, Java, PHP, Node.js, Python, Ruby, Go, C++, and Swift. |
| Resource | Link |
|---|---|
| Documentation | GroupDocs.Assembly Cloud Docs — guides and getting started. |
| Support forum | GroupDocs Cloud Free Support Forum — ask questions and report issues. |
| Temporary license | Get a free trial — full-feature evaluation. |
| Live demo | GroupDocs.Assembly apps — try assembly in the browser. |
| API reference | REST API Reference — Swagger/OpenAPI. |
document-assembly report-generation mail-merge template-engine invoice-generation contract-automation json-to-docx json-to-pdf document-automation assembly-api assembly-sdk groupdocs-assembly-cloud cloud-reporting office-template