Media
Batch Image Watermark
Add watermarks to multiple images with text or image watermarks, position control, and batch processing
file· File resultOpen tool
Quick start
Call this tool from your code in three languages.
cURL
# 1) Request a presigned URL → returns { uploadUrl, storageKey }
curl -X POST 'https://api.elysiatools.com/api/upload/presign/batch-watermark' \
-H 'Content-Type: application/json' \
-d '{"filename":"imageFiles.ext","contentType":"application/octet-stream","size":12345}'
curl -X POST 'https://api.elysiatools.com/api/upload/presign/batch-watermark' \
-H 'Content-Type: application/json' \
-d '{"filename":"watermarkImage.ext","contentType":"application/octet-stream","size":12345}'
# 2) PUT the file bytes directly to the presigned uploadUrl
curl -X PUT '<presigned uploadUrl>' \
--data-binary @/path/to/file.ext
# 3) Call the tool, passing the returned storageKey for each file field
curl -X POST 'https://api.elysiatools.com/en/api/tools/batch-watermark' \
-F 'imageFiles=uploads/2026/01/01/your-tool-1700000000000-abc123.ext' \
-F 'watermarkType=text' \
-F 'watermarkText=Enter watermark text' \
-F 'watermarkImage=uploads/2026/01/01/your-tool-1700000000000-abc123.ext' \
-F 'position=bottom-right' \
-F 'opacity=70' \
-F 'fontSize=24' \
-F 'fontFamily=Arial, sans-serif' \
-F 'fontColor=#ffffff' \
-F 'backgroundColor=Background color (optional)' \
-F 'margin=20' \
-F 'scale=20' \
-F 'outputFormat=original' \
-F 'quality=85' \
-F 'preserveMetadata=false' \
-F 'keepOriginalNames=true'