Mercari lets you add 12 photos: a 12-shot plan
Mercari allows up to 12 photos per listing and shows the first one first. Plan the set, and use Sume only for promo clips made from your real shots.

Mercari lets you add up to 12 photos to a listing, and the first photo is the first thing shoppers see, so make it the best one. Mercari recommends natural lighting and plain backgrounds, and you can rearrange photos after upload. The page gives no pixel or file-size rule, so this post does not either.
This is from Mercari's help centre, read on 2026-10-02.
What does Mercari say about photos?
The guidance is short.
| Item | What the page says |
|---|---|
| Photo count | Up to 12 per listing |
| First photo | The first thing shoppers see; make it your best |
| Order | Can be rearranged after upload |
| Lighting and background | Natural lighting and plain backgrounds recommended |
| Pixel and size limits | Not stated on the page |
What is a sensible 12-shot plan?
Mercari does not prescribe one, so this is a suggestion.
- 1: the whole item, front, plain background.
- 2 to 4: back, sides, and top or bottom.
- 5 to 6: labels, tags, serial numbers or size markings.
- 7 to 9: close-ups of material and any wear or flaws.
- 10: scale shot beside a common object.
- 11 to 12: accessories, box or what is included.
Where can AI help a Mercari seller?
Mercari's page does not discuss AI, so keep the listing photos real and unedited. Sume's video API can turn your first photo into a short clip for your social channels, which sends traffic to the listing without touching the listing gallery.
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 turn on this sneaker on a plain table, soft daylight, the sneaker unchanged",
"frame_images": [{
"type": "image_url",
"image_url": {"url": "https://example.com/closet/sneaker.jpg"},
"frame_type": "first_frame",
}],
"aspect_ratio": "9:16",
"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
- Does Meta's AI info label apply to video ads? What the page says
Meta's help page on AI info for ads covers images made or significantly edited with its AI tools or third-party AI tools. It does not describe video ads.
- Advantage+ video expansion for Reels: build the 9:16 cut yourself
Meta says video expansion for Facebook Reels gave a 2% conversion lift. If your clip is 16:9, Sume's Timeline can render a 1080x1920 cut you control.
- Meta AI Reels translation: who can use it, and the 1,000-follower rule
Per Meta, Reels translation is free for Facebook creators with 1,000 followers or more and for all public Instagram accounts where Meta AI is available.
- Meta AI Reels translations in 9 languages: burn captions with Sume
Meta AI translates and dubs Reels in nine languages. If you want your own translated text on screen, burn it with Sume caption cues.
Written by Sume