Apply Watermark on Images

30 atoms
Base tier


This Utility API lets you watermark an image.
This can provide a variety of benefits, especially for businesses or individuals who want to protect their images from unauthorized use, and want to promote a brand or business. This can improve the overall appearance and security of an image by including a logo or other identifying information in the watermark.
Endpoint Selector

API Playground


input file: output file

Request example

curl --location --request POST 'https://api.apyhub.com/processor/image/watermark/file?output=test-sample.png' \
--header 'apy-token: {{token}}' \
--form 'image=@"stock-photo.jpg"' \
--form 'watermark_image=@"watermark-photo.jpg"'
Method: POST
Content Type: multipart/form-data
Query Parameter(s)
outputStringNoThe output file name for the watermarked image.
Request Body
imageFileYesthe source image file
watermark_textStringYes (if watermark_image not given)the text or content which you want to use as watermark text to give text in multiple line add new-line("\n") For example sample \n text. If watermark_text and watermark_image both are present in the request then watermark_text will be applied as watermark.
watermark_imageFileYes (if watermark_text not given)the path of watermark image file which should be accessible by ApyHub. If watermark_text and watermark_image both are present in the request then watermark_text will be applied as watermark.
watermark_positionStringNothe watermark position. For example: If you want to add the watermark to the center of the image then it has to be position: center. It defaults to bottom_right and user can enter any of top_right,top_left,top_center,bottom_right,bottom_left,bottom_center,center,center_left,center_right
watermark_opacityStringNothe opacity of the watermark , should be in decimal format. Range is from 0.0 to 1.0 and it defaults to 0.5
watermark_text_background_colorStringNothe background color of the watermark text, should be in hexadecimal color#rrggbb format. For example #000000 for white and it defaults to "" i.e. transparent
watermark_font_sizeStringNothe font-size of the watermark text, should be in numeric format. For example 50 and it defaults to 24
watermark_text_alignmentStringNothe watermark text alignment. For example: you want to add the watermark text in center alignment then it will be as watermark_text_alignment: left and it defaults to center and user can enter any of right,left,center
watermark_font_colorArray of stringNothe font color of the watermark text should be provided as an array of strings containing a maximum of two Color-Hex format values for example :["#ffffff"] for white color text or["#000000","#ffffff"] for gradient watermark text, defaults to ["#ffffff"]
watermark_text_paddingNumberNothe text-padding of the watermark text and background box, should be in numeric format. For example 15 and it defaults to 10
watermark_text_line_spacingNumberNothe line-spacing between the watermark text multiple lines , should be in decimal format. For example 1.75 and it defaults to 1
watermark_angleNumberNothe angle at which the watermark image or text should rotate, should be in numeric format value must be from 0 to 360 and it defaults to 0
watermark_image_sizeStringNothe dimensions of the watermark image, should be in WidthxHeight format and it defaults to 200x150
sizeStringNothe dimensions of the generated image file, should be in WidthxHeight format and it defaults to original_size
Sample Response
The method returns the watermarked image in the output file mentioned in the URI.

HTTP Response Codes

The method may return one of the following HTTP status codes:
Status CodeDescription
200The request was successful.
401Required authentication information is either missing or not valid for the resource.
400Invalid input - the image files are corrupt.
500If any unexpected error occurs while processing the request.


All requests to ApyHub services need to be authenticated, currently we support tokens or basic authentication mechanisms. You can generate and view your existing credentials from workspace settings (on the left side of the navbar) and go to applications.
Points to note:
  • Credential secrets are generated on the fly and are not stored in plain text, so on generating a credential please save the secrets somewhere safe.
  • Use the apy-token as the header parameter to pass the token.
  • Use the Authorization header to send the basic authentication credentials.

Error codes

"error": {
"code": 105,
"message": "Invalid URL"
To search for a specific error code, enter the code in the search box below. Alternatively, you can click on the button to view a complete list of all error codes.