Rightmove watermark rules: white, 30% opacity, quarter size
Rightmove allows only white, translucent watermarks, at most a quarter of the image and 30% opacity or lower. Check the rule before you brand property photos.

On Rightmove only white, translucent watermarks are allowed, they may be no larger than one quarter of the overall image, and their opacity should be 30% or lower. A watermark is only for preventing image copyright and should carry no further messaging, so no phone numbers or taglines. Anything else is the quickest way to get a listing image rejected, so build the watermark into your export step, not your generation prompt.
The rules are in Rightmove's technical guidelines (January 2026), read on 2026-10-02.
What are the image numbers?
Rightmove's help page gives sizes and ratio along with the guideline watermark rule.
| Item | Value |
|---|---|
| Watermark colour | White, translucent only |
| Watermark size | No larger than one quarter of the overall image |
| Watermark opacity | 30% or lower |
| Watermark content | Copyright protection only; no further messaging |
| Upload ratio | 3:2 |
| Summary results display | 224 x 149 px |
| Property details gallery | 656 x 437 px |
| Largest enlarged view | 1024 px wide or high (1024 x 683 for landscape) |
Should a generated image carry the watermark?
A watermark identifies the photographer, so put it on your real photos. Do not ask an image model to draw a watermark: it will not respect 30% opacity or a quarter size reliably, and Sume's Image API does not take explicit pixel sizes. Apply it afterwards with a script.
A script that applies a compliant mark
This Pillow script pastes a white logo at 25% of the image width (a narrower logo than the quarter-area cap) with 30% opacity.
from PIL import Image
img = Image.open("photo.jpg").convert("RGBA")
mark = Image.open("logo-white.png").convert("RGBA")
w = img.width // 4
mark = mark.resize((w, int(mark.height * w / mark.width)))
alpha = mark.getchannel("A").point(lambda a: int(a * 0.3))
mark.putalpha(alpha)
x = img.width - mark.width - 24
y = img.height - mark.height - 24
img.alpha_composite(mark, (x, y))
img.convert("RGB").save("photo-marked.jpg", quality=92)
print("saved", img.size)
Sources
Related posts
More in Use cases
- Royalty-free AI music for TikTok ads: what the phrase does not settle
Royalty-free does not mean licensed for ads or cleared for a platform. What to check for AI music before a TikTok ad, using reported facts and a record to keep.
- Run one video prompt across five Sume models: a Python bake-off
Submit the same prompt to five Sume video models, choose each model's resolution from the catalog, and compare cost and time. Runnable code under 30 lines.
- Runway Enhance Frame Rate on a Sume clip: get the MP4 first
Runway says Enhance Frame Rate works on any video, not only Runway-made. To run it on a Sume clip, download the finished job's MP4 from its content URL.
- SaaS onboarding videos: one avatar job per checklist step
Each avatar job runs 4 to 60 seconds. Make one short video per onboarding step with a per-step idempotency key and a webhook, instead of one long welcome video.
Written by Sume