Vrbo photo rules: 6 photos, 1024x683, no overlays
Vrbo requires at least 6 published photos at 1024 x 683 or larger, with no text or watermark overlays. Plan a compliant gallery and use AI only for promos.

Vrbo wants at least 6 photos published for your property at all times; fewer than 6 for over 30 days can lead to indefinite suspension. Photos should be at least 1024 x 683 pixels, ideally 3840 x 2160 or higher, in JPEG, PNG, WebP, AVIF or SVG. No text overlays, watermarks, collages or black-and-white. The page has no AI rule, so use real photos in the gallery and put AI work into a separate tour video.
The rules are from Vrbo's photo guidelines, read on 2026-10-02.
What does Vrbo require?
The page mixes hard limits and style rules.
| Item | Rule |
|---|---|
| Minimum photos | At least 6 published at all times |
| Multi-unit properties | 1 exterior, 1 interior or lobby, 3 guest room, 1 bathroom |
| Formats | JPEG, PNG, WebP, AVIF, SVG |
| Resolution | At least 1024 x 683 px; ideally 3840 x 2160 or higher |
| Orientation | Horizontal preferred; vertical acceptable |
| Not allowed | Black and white or sepia, blurry or pixelated, text overlays, graphic overlays such as watermarks or borders, collages, duplicates, documents and posters |
| Floor plans | Acceptable |
| Publishing delay | Changes can take up to 10 minutes to appear |
Where does AI fit for a rental host?
Guests book on what they will find, so the gallery should show the real rooms. The Vrbo page does not mention AI, which means you cannot read it as permission either. Keep generated and enhanced images out of the gallery, and put them in guest guides, social posts and a walkthrough clip.
Make a tour clip from real photos
Sume's video API can turn one of your real photos into a short 16:9 clip through frame_images. Submit it, poll polling_url, then read unsigned_urls. Use it on your own site, not as a Vrbo gallery item.
import os, time, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
job = requests.post(
"https://api.sume.com/v1/videos",
headers=H,
json={
"model": "seedance-2",
"prompt": "Slow camera push-in across the living room, daylight from the windows, nothing added or removed",
"frame_images": [{
"type": "image_url",
"image_url": {"url": "https://example.com/rental/living-room.jpg"},
"frame_type": "first_frame",
}],
"aspect_ratio": "16:9",
"duration": 5,
"resolution": "720p",
},
timeout=60,
).json()
while True:
time.sleep(20)
st = requests.get(job["polling_url"], headers=H, timeout=60).json()
if st["status"] in ("completed", "failed", "cancelled"):
break
print(st["status"], st.get("unsigned_urls"))
Sources
Related posts
More in Use cases
- Walmart image file names: GTIN-14 and 100x100 swatches in a batch
Walmart recommends the 14-digit GTIN in each image file name and lists swatches at 100x100 px. How to name and size a batch of generated images to match.
- Walmart image URLs: ports 80/443/8080/8443, no Dropbox or queries
Walmart accepts image URLs on ports 8080, 80, 443 or 8443 and rejects query strings, non-public links, HTML pages and Dropbox. Check Sume media URLs first.
- Walmart's AI content rule: accurate, truthful, rights-compliant
Walmart's image guide says AI-generated content must be accurate, truthful and rights-compliant, with no logos or non-English text. Review each output.
- Walmart Media Library video: 100 MB limit and 200-character title
Walmart's Media Library takes videos of 100 MB or less with a title up to 200 characters, and restricts alcohol, tobacco and firearms. Check a Sume clip first.
Written by Sume