Zoho Writer Merge API
Mail-merge operations: merge to bytes, link, store, invoke, or sign
Mail-merge operations: merge to bytes, link, store, invoke, or sign
openapi: 3.0.3
info:
title: Zoho Writer Combine Merge API
description: REST API for programmatic document creation, editing, mail merge, electronic signing, webhook automation, and multi-format document export. Supports Document, Combine, Merge, and Sign API categories with OAuth 2.0 authentication.
version: 1.0.0
contact:
name: Zoho Writer Support
email: support@zohowriter.com
url: https://www.zoho.com/writer/help/api/v1/
termsOfService: https://www.zoho.com/writer/developers.html
license:
name: Zoho API Terms
url: https://www.zoho.com/writer/developers.html
servers:
- url: https://www.zohoapis.com/writer/api/v1
description: United States (default)
- url: https://www.zohoapis.eu/writer/api/v1
description: Europe
- url: https://www.zohoapis.in/writer/api/v1
description: India
- url: https://www.zohoapis.jp/writer/api/v1
description: Japan
- url: https://www.zohoapis.com.au/writer/api/v1
description: Australia
- url: https://www.zohoapis.ca/writer/api/v1
description: Canada
- url: https://www.zohoapis.sa/writer/api/v1
description: Saudi Arabia
- url: https://www.zohoapis.com.cn/writer/api/v1
description: China
- url: https://www.zohoapis.sg/writer/api/v1
description: Singapore
security:
- OAuth2:
- ZohoWriter.documentEditor.ALL
- ZohoPC.files.ALL
- WorkDrive.files.ALL
tags:
- name: Merge
description: 'Mail-merge operations: merge to bytes, link, store, invoke, or sign'
paths:
/documents/{document_id}/merge:
post:
operationId: mergeDocument
summary: Merge document
description: Merge a document with data and return the merged file directly as bytes or as a download URL.
tags:
- Merge
security:
- OAuth2:
- ZohoWriter.documentEditor.ALL
- ZohoWriter.merge.ALL
- ZohoPC.files.ALL
- WorkDrive.files.ALL
parameters:
- name: document_id
in: path
required: true
schema:
type: string
description: Unique identifier for the Writer document
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- output_settings
properties:
output_settings:
$ref: '#/components/schemas/OutputSettings'
merge_data:
type: object
description: Direct JSON merge data
merge_data_csv_content:
type: string
format: binary
description: CSV file upload
merge_data_json_content:
type: string
format: binary
description: JSON file upload
merge_data_csv_url:
type: string
format: uri
description: URL to CSV file
merge_data_json_url:
type: string
format: uri
description: URL to JSON file
record_id:
type: string
maxLength: 25
description: For Zoho CRM/Creator/Bigin templates
response_type:
type: string
enum:
- link
description: Set to 'link' to receive a download URL instead of bytes
filename:
type: string
description: Document name without extension
sign_service_name:
type: string
enum:
- adobesign
- docusign
description: Third-party signing service (PDF only)
test_mode:
type: boolean
description: Testing mode; does not consume credits (50 merges/day limit)
responses:
'200':
description: Merged document as binary or link
content:
application/octet-stream:
schema:
type: string
format: binary
application/json:
schema:
type: object
properties:
URL:
type: string
format: uri
externalDocs:
description: Merge Document
url: https://www.zoho.com/writer/help/api/v1/merge-document.html
/documents/{document_id}/merge/sign:
post:
operationId: mergeAndSign
summary: Merge and sign
description: Merge a document with data and send the result for electronic signature collection via Zoho Sign.
tags:
- Merge
security:
- OAuth2:
- ZohoWriter.documentEditor.ALL
- ZohoWriter.merge.ALL
- ZohoPC.files.ALL
- WorkDrive.files.ALL
parameters:
- name: document_id
in: path
required: true
schema:
type: string
description: Unique identifier for the Writer document
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- service_name
- filename
properties:
service_name:
type: string
enum:
- zohosign
description: Signing service provider
filename:
type: string
description: Name for the signed document
merge_data:
type: object
merge_data_csv_content:
type: string
format: binary
merge_data_json_content:
type: string
format: binary
merge_data_csv_url:
type: string
format: uri
merge_data_json_url:
type: string
format: uri
record_id:
type: string
maxLength: 25
signer_data:
type: array
description: Array of signer details including action types and verification
items:
type: object
sign_in_order:
type: boolean
description: Enforce signing sequence
message:
type: string
description: Message for signers
set_expire:
type: integer
maximum: 99
description: Expiration in days (max 99)
reminder_period:
type: integer
description: Reminder interval in days
common_attachments:
type: string
format: binary
description: Shared attachments (max 20 files, 40 MB total)
test_mode:
type: boolean
responses:
'200':
description: Merge and sign job details
content:
application/json:
schema:
type: object
properties:
merge_report_url:
type: string
format: uri
records:
type: array
items:
type: object
properties:
sign_request_id:
type: string
status:
type: string
externalDocs:
description: Merge and Sign
url: https://www.zoho.com/writer/help/api/v1/merge-and-sign.html
/documents/{document_id}/merge/execute:
post:
operationId: mergeAndInvoke
summary: Merge and invoke
description: Trigger a merge operation programmatically and track status asynchronously.
tags:
- Merge
security:
- OAuth2:
- ZohoWriter.documentEditor.ALL
- ZohoWriter.merge.ALL
parameters:
- name: document_id
in: path
required: true
schema:
type: string
description: Unique identifier for the Writer document
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
merge_data:
type: object
merge_data_csv_content:
type: string
format: binary
merge_data_json_content:
type: string
format: binary
merge_data_csv_url:
type: string
format: uri
merge_data_json_url:
type: string
format: uri
record_id:
type: string
maxLength: 25
output_settings:
type: object
properties:
format:
type: string
enum:
- pdf
- docx
- pdfform
password:
type: string
merge_to:
type: string
enum:
- separatedoc
- singledoc
filename:
type: string
maxLength: 150
restricted_access:
type: object
test_mode:
type: boolean
responses:
'200':
description: Merge job initiated
content:
application/json:
schema:
$ref: '#/components/schemas/MergeResponse'
externalDocs:
description: Merge and Invoke
url: https://www.zoho.com/writer/help/api/v1/merge-and-invoke.html
/documents/v2/{document_id}/merge/store:
post:
operationId: mergeAndStoreV2
summary: Merge and store (v2)
description: Merge a document with data and store the resulting files in a specified Zoho WorkDrive folder. Supports webhooks for async status notifications.
tags:
- Merge
security:
- OAuth2:
- ZohoWriter.documentEditor.ALL
- ZohoWriter.merge.ALL
- WorkDrive.files.ALL
- WorkDrive.organization.ALL
parameters:
- name: document_id
in: path
required: true
schema:
type: string
description: Unique identifier for the Writer document
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- output_settings
properties:
output_settings:
type: object
required:
- doc_name
- folder_id
properties:
doc_name:
type: string
folder_id:
type: string
format:
type: string
enum:
- pdf
- docx
- pdfform
- zdoc
default: zdoc
password:
type: string
maxLength: 100
overwrite_existing_file:
type: boolean
merge_to:
type: string
enum:
- separatedoc
- singledoc
default: separatedoc
sign_service_name:
type: string
enum:
- adobesign
- docusign
restricted_access:
type: object
merge_data:
type: object
merge_data_csv_content:
type: string
format: binary
merge_data_json_content:
type: string
format: binary
merge_data_csv_url:
type: string
format: uri
merge_data_json_url:
type: string
format: uri
record_id:
type: string
maxLength: 25
test_mode:
type: boolean
webhook_info:
type: object
properties:
url:
type: string
format: uri
retry:
type: integer
timeout:
type: integer
expiry_date:
type: string
context:
type: object
responses:
'200':
description: Merge and store job initiated
content:
application/json:
schema:
$ref: '#/components/schemas/MergeResponse'
externalDocs:
description: Merge and Store V2
url: https://www.zoho.com/writer/help/api/v1/merge-and-store-v2.html
/templates/{template_id}/bulkmerge/sign:
post:
operationId: bulkMergeAndSign
summary: Bulk merge and sign
description: Perform bulk merge and sign operations using a template.
tags:
- Merge
security:
- OAuth2:
- ZohoWriter.documentEditor.ALL
- ZohoWriter.merge.ALL
parameters:
- name: template_id
in: path
required: true
schema:
type: string
description: Unique identifier for the template
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
merge_data:
type: object
merge_data_csv_content:
type: string
format: binary
merge_data_json_content:
type: string
format: binary
merge_data_csv_url:
type: string
format: uri
merge_data_json_url:
type: string
format: uri
signer_data:
type: array
items:
type: object
service_name:
type: string
enum:
- zohosign
test_mode:
type: boolean
responses:
'200':
description: Bulk merge and sign job initiated
content:
application/json:
schema:
$ref: '#/components/schemas/MergeResponse'
externalDocs:
description: Bulk Sign
url: https://www.zoho.com/writer/help/api/v1/bulkmerge-sign.html
components:
schemas:
OutputSettings:
type: object
required:
- format
properties:
format:
type: string
enum:
- pdf
- pdfform
- docx
- html
- zfdoc
- zip
description: Output file format
password:
type: string
maxLength: 100
description: Optional password protection for the output document
restricted_access:
type: object
properties:
password:
type: string
permissions:
type: array
items:
type: string
MergeRecord:
type: object
properties:
data:
type: object
description: Input merge data for this record
download_link:
type: string
format: uri
document_id:
type: string
document_url:
type: string
format: uri
status:
type: string
enum:
- inprogress
- completed
- failed
MergeResponse:
type: object
properties:
merge_report_data_url:
type: string
format: uri
merge_report_url:
type: string
format: uri
status:
type: string
enum:
- inprogress
- completed
- failed
records:
type: array
items:
$ref: '#/components/schemas/MergeRecord'
securitySchemes:
OAuth2:
type: oauth2
description: OAuth 2.0 authentication. Refer to https://www.zoho.com/writer/help/api/v1/oauth-2.html for setup.
flows:
authorizationCode:
authorizationUrl: https://accounts.zoho.com/oauth/v2/auth
tokenUrl: https://accounts.zoho.com/oauth/v2/token
scopes:
ZohoWriter.documentEditor.ALL: Full access to document editor operations
ZohoWriter.merge.ALL: Full access to merge operations
ZohoPC.files.ALL: Access to Zoho personal cloud files
WorkDrive.files.ALL: Access to WorkDrive files
WorkDrive.organization.ALL: Organization-level WorkDrive access
WorkDrive.workspace.ALL: Workspace-level WorkDrive access
externalDocs:
description: Zoho Writer API Documentation
url: https://www.zoho.com/writer/help/api/v1/