Watermark

Apply a logo watermark to any image. Position, opacity, scale, and padding are all configurable so the watermark can match your brand without manual compositing work.

Overview

The watermark endpoint takes two public image URLs — the base image and the logo — and produces a watermarked version with your logo composited over the base. The base image composition is preserved; only the logo is added.

Watermark is commonly chained after another tool (image enhance, drone stills, virtual staging) to brand the final asset before it is handed to a partner or end user.

Quick Example

Submit the base image URL and your logo URL:

curl -X POST \
  -H "X-API-Key: dome_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/photos/exterior.jpg",
    "logo_url": "https://example.com/brand/logo.png"
  }' \
  https://api.dometech.com.au/v1/watermark/apply

Response (202):

{
  "data":  {
    "job_id":  "550e8400-e29b-41d4-a716-446655440000",
    "status":  "queued"
  },
  "meta":  {
    "request_id":  "req_abc123",
    "timestamp":  "2026-04-12T10:00:00.000Z",
    "mode":  "live"
  }
}

Step-by-Step

1. Prepare Your Image and Logo

Both the base image and the logo must be hosted at publicly accessible HTTPS URLs. A PNG logo with a transparent background usually gives the cleanest result.

2. Submit the Watermark Request

Send a POST request to /v1/watermark/apply with the image and logo URLs and any optional positioning tweaks.

curl -X POST \
  -H "X-API-Key: dome_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/photos/exterior.jpg",
    "logo_url": "https://example.com/brand/logo.png",
    "position": "bottom-right",
    "options": {
      "opacity": 0.8,
      "scale": 0.2,
      "padding": 40
    }
  }' \
  https://api.dometech.com.au/v1/watermark/apply

The API returns a 202 Accepted response with a job_id.

3. Poll for Completion

Poll the job status endpoint until the status changes to completed. Watermark application is fast — usually a few seconds.

curl -H "X-API-Key: dome_live_your_key_here" \
  https://api.dometech.com.au/v1/jobs/550e8400-e29b-41d4-a716-446655440000

4. Retrieve the Watermarked Image

When the job completes, the output field contains the URL of the watermarked image.

{
  "data":  {
    "id":  "550e8400-e29b-41d4-a716-446655440000",
    "job_type":  "watermark_apply",
    "status":  "completed",
    "mode":  "live",
    "input":  {
      "image_url":  "https://example.com/photos/exterior.jpg",
      "logo_url":  "https://example.com/brand/logo.png",
      "position":  "bottom-right",
      "opacity":  0.8,
      "scale":  0.2,
      "padding":  40
    },
    "output":  {
      "image_url":  "https://storage.example.com/watermarked.jpg",
      "generation_time_seconds":  2.1
    },
    "completed_at":  "2026-04-12T10:00:02.000Z"
  },
  "meta":  {
    "request_id":  "req_abc123",
    "timestamp":  "2026-04-12T10:00:02.000Z",
    "mode":  "live"
  }
}

Options

ParameterTypeRequiredDescription
image_urlstring (URI)YesPublic URL of the base image to watermark
logo_urlstring (URI)YesPublic URL of the logo image (PNG with transparent background recommended)
positionstringNoOne of top-left, top-right, bottom-left, bottom-right, center. Default: bottom-right
options.opacitynumber (0–1)NoWatermark opacity. Default: 0.8
options.scalenumber (0–1)NoLogo size as a fraction of the base image width. Default: 0.2
options.paddingnumber (px)NoDistance from the edge of the image in pixels. Default: 40
webhook_urlstring (URI)NoURL to receive the completion webhook
callback_metadataobjectNoOpaque data returned in webhook payloads

See the API Reference for full parameter details and response schemas.

Next Steps