Walmart rich media is restricted for alcohol, tobacco and firearms
Walmart Marketplace restricts rich media for alcohol, tobacco and firearms and may unpublish it. A category gate to run before you spend on AI clips.

Walmart Marketplace restricts rich media for alcohol, tobacco and firearms, and it may unpublish rich media that breaks its rules. So filter your SKU list by category before you generate any clips, not after. Walmart's guide also says product videos must demonstrate key product information and be accurate, truthful and rights-compliant. This is from Walmart's rich media guide, read 2026-10-03.
What the guide says
The page we read states content rules and restrictions. It points to a separate PDF for technical specs, and we did not read that PDF, so this post makes no claim about file size, length or format.
| Topic | What the guide says |
|---|---|
| Content | Videos must demonstrate key product information |
| Accuracy | Accurate, truthful and rights-compliant |
| Restricted categories | Alcohol, tobacco, firearms |
| Enforcement | Walmart may unpublish violating rich media |
| Technical specs | In a separate PDF, not read here |
Why the gate comes first
Generation is paid per job, and an unpublished video is a spent render with no listing value. A SKU in a restricted category gains nothing from a clip, so the cheapest control is a filter on your own catalog data. Do it once at the top of the batch, and log which SKUs it removed so the decision is auditable.
The accuracy rule matters just as much for the SKUs that pass. A generated demo that shows a feature the real product lacks is a truthfulness problem, whatever the category.
A pre-flight filter
The function below drops SKUs whose category is in a blocked set. The categories are the three Walmart names; extend the set from Walmart's own policy pages if your catalog needs more. Match against your own category field, and review borderline items by hand.
It runs on plain dictionaries, so you can place it before any call to the Sume API.
BLOCKED = {"alcohol", "tobacco", "firearms"}
def split_skus(skus):
ok, held = [], []
for sku in skus:
category = str(sku.get("category", "")).strip().lower()
(held if category in BLOCKED else ok).append(sku)
return ok, held
ok, held = split_skus([
{"id": "A1", "category": "Kitchen"},
{"id": "B2", "category": "Tobacco"},
])
print([s["id"] for s in ok], [s["id"] for s in held])Keep the demo true to the product
For the SKUs that pass, give the model the real product image. Sume's video API accepts frame_images with a first_frame entry for image-to-video, on models that list it, and input_references for reference-to-video on models that list that. Write the prompt from the listing's real features only, and have a person watch each clip against the product before upload. Keep the source image and the job id with the listing record, so you can show what a clip was made from if Walmart asks.
Sources
Related posts
More in Use cases
- Meta AI disclosure: which Sume outputs count, video and audio
Meta asks for disclosure of photorealistic video and realistic audio that was digitally created or altered. A sorting guide for video, avatar and music.
- YouTube AI label: player or description, by how real it looks
YouTube shows the altered or synthetic label in the player for photorealistic content, in the expanded description for animated. What it means.
- YouTube end screens need a 25-second video: plan the clip length
YouTube end screens need videos 25 seconds or longer. Most Sume video models stop at 15 seconds, so here is how to reach 25 with long models or Timeline.
- AI album cover generator: square art at 3000×3000
Generate square album art, then upscale: Apple recommends at least 3000×3000. On Sume, generate 2400×2400 and upscale it 1.25× to reach 3000×3000.
Written by Sume