Watermarking Guide
Rendobar provides four watermarking job types: simple single-image overlay, multi-watermark compositing with mixed image and text, AI-powered removal, and watermark detection.
Add a single image watermark
Use watermark.add for the simplest case — one image watermark on a video.
curl -X POST https://api.rendobar.com/jobs \
-H "Authorization: Bearer rb_your_key" \
-H "Content-Type: application/json" \
-d '{
"type": "watermark.add",
"inputs": {
"source": "https://example.com/video.mp4",
"watermark": "https://cdn.rendobar.com/assets/brand/logo-full.png"
},
"params": {
"position": "bottom-right",
"scale": 0.15,
"opacity": 0.8,
"padding": 20,
"quality": "balanced"
}
}'
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
position | enum | bottom-right | One of 9 positions: top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right |
scale | number | 0.15 | Watermark size relative to video width (0.01–1) |
opacity | number | 0.8 | Watermark transparency (0–1) |
padding | integer | 20 | Distance from edge in pixels (0–500) |
quality | enum | balanced | Output encoding: fast (quick, larger file), balanced, high (slow, best quality) |
timeRange | object | — | Optional. Show watermark only during { start, end? } seconds |
Time-ranged watermark
Show the watermark only between 5 and 30 seconds:
{
"params": {
"position": "top-right",
"timeRange": { "start": 5, "end": 30 }
}
}
Omit end to show the watermark from a timestamp through the end of the video.
Composite multiple watermarks
Use watermark.composite to apply multiple watermarks (images and text) in a single pass.
curl -X POST https://api.rendobar.com/jobs \
-H "Authorization: Bearer rb_your_key" \
-H "Content-Type: application/json" \
-d '{
"type": "watermark.composite",
"inputs": {
"source": "https://example.com/video.mp4"
},
"params": {
"watermarks": [
{
"type": "image",
"url": "https://cdn.rendobar.com/assets/brand/logo-full.png",
"position": "bottom-right",
"scale": 0.12,
"opacity": 0.9
},
{
"type": "text",
"content": "© 2026 Acme Corp",
"position": "bottom-left",
"fontSize": 18,
"color": "#FFFFFF"
},
{
"type": "image",
"url": "https://example.com/badge.png",
"position": "top-right",
"scale": 0.08
}
],
"quality": "balanced"
}
}'
Image watermark fields
| Field | Type | Default | Description |
|---|---|---|---|
type | "image" | — | Required discriminator |
url | string | — | Required. URL to watermark image |
position | enum | bottom-right | 9-position grid |
scale | number | 0.15 | Size relative to video width |
opacity | number | 0.8 | Transparency (0–1) |
padding | integer | 20 | Edge distance in pixels |
timeRange | object | — | Optional { start, end? } |
Text watermark fields
| Field | Type | Default | Description |
|---|---|---|---|
type | "text" | — | Required discriminator |
content | string | — | Required. Text to display (1–500 chars) |
position | enum | bottom-left | 9-position grid |
fontSize | integer | 24 | Font size (8–200) |
font | enum | Arial | One of: Arial, Roboto, Courier, Georgia |
color | string | #FFFFFF | Hex color (#RRGGBB) |
boxColor | string | — | Optional background box hex color |
boxPadding | integer | 5 | Background box padding (0–50) |
opacity | number | 0.8 | Transparency (0–1) |
padding | integer | 15 | Edge distance in pixels |
timeRange | object | — | Optional { start, end? } |
Up to 10 watermarks per job. Source video URL goes in inputs, watermark URLs go inside each watermark object in params.watermarks.
Remove a watermark
Use watermark.remove to remove watermarks using AI detection or manual region coordinates.
curl -X POST https://api.rendobar.com/jobs \
-H "Authorization: Bearer rb_your_key" \
-H "Content-Type: application/json" \
-d '{
"type": "watermark.remove",
"inputs": {
"source": "https://example.com/video.mp4"
},
"params": {
"mode": "auto",
"method": "inpaint",
"strength": 20,
"quality": "balanced"
}
}'
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | enum | auto | auto (AI detection) or manual (specify regions) |
method | enum | inpaint | inpaint (AI fill) or blur (gaussian blur) |
strength | integer | 20 | Blur/inpaint strength (1–100) |
quality | enum | balanced | Output quality preset |
regions | array | — | Manual mode only: [{ x, y, width, height }] |
Detect watermarks
Use watermark.check to analyze frames for watermark presence. This is a P1 (sync) job — results return immediately.
curl -X POST https://api.rendobar.com/jobs \
-H "Authorization: Bearer rb_your_key" \
-H "Content-Type: application/json" \
-d '{
"type": "watermark.check",
"inputs": {
"frames": ["https://example.com/frame1.jpg", "https://example.com/frame2.jpg"]
},
"params": {
"threshold": 0.5
}
}'
Returns detection results with per-frame confidence, bounding boxes, watermark type classification (logo, text, pattern), and a summary with the dominant watermark region.
Cost
| Job Type | Cost Model |
|---|---|
watermark.apply | ~$0.50/min of output |
watermark.composite | ~$0.50/min of output |
watermark.remove | ~$0.50/min of output |
watermark.check | $0.10 flat |
Related
- Job Types — All supported job types
- Job Lifecycle — Status transitions and webhooks
- Credits — How credit billing works
- API Reference — Full REST API documentation