Sada Files

Developer docs

  1. Developers
  2. Tool endpoints

Remove Watermark API

Remove visible watermarks, logos, text and the Gemini sparkle from photos — auto-detects corner marks or brush over them, then AI fills the gap. Use on images you have the rights to.

Environment

EnvironmentBase URL
Productionhttps://api.sadafiles.com/v1

There is one environment and no sandbox, so every request here is real and counts toward your limits.

Request

POSThttps://api.sadafiles.com/v1/tools/remove-watermark
Content type
multipart/form-data
Auth
X-API-Key with tools:run
Accepts
jpg, png, webp, avif, gif, bmp, tiff, heic and 1 more
Files per request
1
Largest file
2 GB
Job timeout
600 s
Rate weight
20 units

Parameters

Send these as a JSON string in the options form field. Anything else is rejected.

NameTypeDefaultAllowed
modeAuto finds a logo, text or sparkle in the corners and edges; Manual uses your brush or box. Use on images you have the rights to.stringautoauto, manual
presetstringautoauto, gemini, corner-logo, text
maskstring——
regionLeft, top, width, height in percent of the image.string——
featherCovers soft glow and anti-aliased edges around the mark.integer4min 0, max 24, px
qualitystandard runs on your device; hd uses the LaMa AI model on the serverstringstandardstandard, hd

Response

StatusBodyWhen
201sameThe run finished within 60 seconds
202Job summary JSONStill running; poll the job
4xx, 5xxError JSONSee error codes

A file response carries X-Sada-Job and X-Sada-Expires-At. For long work, post to /v1/tools/remove-watermark/jobs instead. See jobs and webhooks.

Also runs on the device

In the web tool and apps, Remove Watermark can run locally with no upload. The API always processes on the server.

Try it yourself!

Pick a file, set the options and run a real request with your key. The code follows your changes.

Headers

You need a free key to run this request. Sign in and create a key.

Body

curl -X POST "https://api.sadafiles.com/v1/tools/remove-watermark" \  -H "X-API-Key: $SADAFILES_API_KEY" \  -F "files[]=@input.jpg" \  -o output.same

What's next?