Image watermark API
for developers
Add watermarks to images programmatically with the Markly API. Whether you need to watermark a single image or process thousands in bulk, the API integrates into any workflow with simple HTTP calls.
Why use an API for watermarking
Manual watermarking works for a handful of images, but it does not scale. If you are building a platform that handles user uploads, running an e-commerce store with product photos, or managing a photography portfolio with hundreds of images, you need automation. An image watermark API lets you add watermarks as part of your existing pipeline - no manual steps, no desktop software, no human bottleneck.
With the Markly API, watermarking becomes a single HTTP call. Upload an image, specify your watermark settings, and get the result back in seconds. It fits into CI/CD pipelines, CMS hooks, mobile app backends, and batch scripts alike. Combined with a solid photo protection strategy, API-driven watermarking is the most reliable way to protect visual content at scale.
When an API makes sense:
- Automation: Watermark images on upload without any manual intervention
- Scale: Process hundreds or thousands of images per day with batch endpoints
- Integration: Plug into any stack - PHP, Python, Node.js, Ruby, Go, or plain cURL
- Consistency: Every image gets the same watermark placement, font, and opacity
How the Markly API works
The Markly API is a REST API that accepts multipart form data. You send an image along with watermark parameters, and get back the watermarked image. Authentication uses API keys passed in the Authorization header.
The API provides four main endpoints:
API endpoints:
- POST /api/v1/watermark/text - Add a text watermark to a single image. Parameters include text content, font, size, color, opacity, position, rotation, and tiling
- POST /api/v1/watermark/logo - Overlay a logo image as a watermark. Control size, opacity, position, and padding
- POST /api/v1/watermark/batch - Send multiple images in one request. All images receive the same watermark settings. Returns a ZIP archive
- GET /api/v1/usage - Check your current credit balance, usage history, and rate limit status
All endpoints accept JPEG, PNG, and WebP images up to 25 MB. Responses return the processed image directly in the same format, or a ZIP for batch requests.
Code examples
Here are working examples for the most common languages. Replace YOUR_API_KEY with your actual key from the developer dashboard.
cURL
curl -X POST https://www.markly.cloud/api/v1/watermark/text \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "[email protected]" \
-F "text=© 2026 My Brand" \
-F "font_size=24" \
-F "opacity=0.5" \
-F "position=bottom-right" \
-o watermarked.jpg
Python
import requests
response = requests.post(
"https://www.markly.cloud/api/v1/watermark/text",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"image": open("photo.jpg", "rb")},
data={
"text": "© 2026 My Brand",
"font_size": 24,
"opacity": 0.5,
"position": "bottom-right",
},
)
with open("watermarked.jpg", "wb") as f:
f.write(response.content)
Node.js
import fs from "fs";
import FormData from "form-data";
import axios from "axios";
const form = new FormData();
form.append("image", fs.createReadStream("photo.jpg"));
form.append("text", "© 2026 My Brand");
form.append("font_size", "24");
form.append("opacity", "0.5");
form.append("position", "bottom-right");
const res = await axios.post(
"https://www.markly.cloud/api/v1/watermark/text",
form,
{ headers: { Authorization: "Bearer YOUR_API_KEY", ...form.getHeaders() },
responseType: "arraybuffer" }
);
fs.writeFileSync("watermarked.jpg", res.data);
Plans and pricing
The API is available on every Markly plan, including the free tier. Usage is measured in credits - one credit per image processed (text or logo). Batch requests consume one credit per image in the batch.
API plans:
- Anonymous (free): 10 images/day, no API key needed, 5 requests/minute rate limit
- Credit packs: Buy credits as needed. Packs of 100, 500, or 2,000 credits with no expiration
- Pro ($9/month): 1,000 credits/month, batch endpoint access, 30 requests/minute, priority processing
- Business ($29/month): 10,000 credits/month, batch endpoint, 120 requests/minute, dedicated support, custom watermark presets
All paid plans include the logo watermark endpoint, batch processing, and usage analytics. Unused credits on subscription plans roll over for one month. Rate limits are per API key, not per IP.
MCP Server for AI agents
Markly also provides a Model Context Protocol (MCP) server that lets AI assistants and agents watermark images on your behalf. If you use tools like Claude, Cursor, or custom LLM agents, the MCP server exposes the same watermarking capabilities through a standardized tool interface.
The MCP server supports text watermarks, logo watermarks, and batch processing - the same features available through the REST API. See the developer documentation for setup instructions and the MCP configuration JSON.
Getting started
You can start using the watermark API in three steps:
Quick start:
- Step 1 - Get your API key: Sign up on Markly and generate an API key from your dashboard. The free tier gives you 10 images/day with no credit card required
- Step 2 - Make your first call: Use the cURL example above to watermark a test image. You should get a watermarked JPEG back within a few seconds
- Step 3 - Integrate: Add the API call to your upload pipeline, build script, or application backend. Use the batch endpoint for high-volume workflows
Full endpoint reference, parameter documentation, and error codes are available in the developer documentation.
Complete protection
Combine API watermarking with copyright registration. Watermark your images with the Markly API, then register the originals with Copyright01 for timestamped proof of ownership with SHA-256 verification.
Protect at scale
Automate watermarking with the API and secure legal proof with copyright registration.
Watermark images programmatically with a simple REST API. Free tier, batch processing, and code examples included.
Start using the APIRegister your originals with a timestamped certificate for legal proof of ownership.
Register a certificateStart using the API
Free tier, instant setup. Add watermarks to images with a single HTTP call.
FR
EN
ES
DE
IT
PT
NL
PL
RO