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

ParameterTypeDefaultDescription
positionenumbottom-rightOne of 9 positions: top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
scalenumber0.15Watermark size relative to video width (0.01–1)
opacitynumber0.8Watermark transparency (0–1)
paddinginteger20Distance from edge in pixels (0–500)
qualityenumbalancedOutput encoding: fast (quick, larger file), balanced, high (slow, best quality)
timeRangeobjectOptional. 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

FieldTypeDefaultDescription
type"image"Required discriminator
urlstringRequired. URL to watermark image
positionenumbottom-right9-position grid
scalenumber0.15Size relative to video width
opacitynumber0.8Transparency (0–1)
paddinginteger20Edge distance in pixels
timeRangeobjectOptional { start, end? }

Text watermark fields

FieldTypeDefaultDescription
type"text"Required discriminator
contentstringRequired. Text to display (1–500 chars)
positionenumbottom-left9-position grid
fontSizeinteger24Font size (8–200)
fontenumArialOne of: Arial, Roboto, Courier, Georgia
colorstring#FFFFFFHex color (#RRGGBB)
boxColorstringOptional background box hex color
boxPaddinginteger5Background box padding (0–50)
opacitynumber0.8Transparency (0–1)
paddinginteger15Edge distance in pixels
timeRangeobjectOptional { 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"
    }
  }'
ParameterTypeDefaultDescription
modeenumautoauto (AI detection) or manual (specify regions)
methodenuminpaintinpaint (AI fill) or blur (gaussian blur)
strengthinteger20Blur/inpaint strength (1–100)
qualityenumbalancedOutput quality preset
regionsarrayManual 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 TypeCost 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