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.

5 min readSume
All posts

Walmart's image guide says image URLs must be on port 8080, 80, 443 or 8443, and it lists URLs with query strings, non-public URLs, HTML pages and Dropbox links as unsupported (read 2026-10-02). A Sume image result comes back as a Sume-hosted HTTPS media URL, so the port is not the risk; the risk is what you do to the URL afterwards. Run a URL check on every generated image before it goes into a Walmart item feed.

What Walmart's page lists

The rules sit under the URL requirements of Walmart's image guidelines (read 2026-10-02). They apply to the link you give Walmart, not to the file itself.

Walmart image URL rules (read 2026-10-02)
RuleWhat the page says
Ports8080, 80, 443 or 8443
Query stringsNot supported
Public accessNon-public URLs are not supported
Page typeHTML pages are not supported; the URL must point at the image
File sharingDropbox links are not supported

What a Sume result URL looks like

Sume's Image API returns generated images as Sume-hosted URLs. The docs example is https://media.sume.com/img/01J.../0.png with a media_type, which is HTTPS on the default port and has no query string. Sume also mirrors outputs into Sume-owned media URLs and tells integrations to store that URL, not a provider URL (Media inputs).

That is the docs example, not a promise for every URL shape. Signed or private links are a different thing, so test the URLs you actually receive.

Check the URL before you put it in a feed

This small check mirrors the rules in the table. It prints an empty list for a clean URL.

from urllib.parse import urlparse

OK_PORTS = {80, 443, 8080, 8443}

def walmart_url_problems(url: str) -> list[str]:
    u = urlparse(url)
    port = u.port or (443 if u.scheme == "https" else 80)
    problems = []
    if u.scheme not in ("http", "https"):
        problems.append("scheme")
    if port not in OK_PORTS:
        problems.append(f"port {port}")
    if u.query:
        problems.append("query string")
    if "dropbox" in (u.hostname or ""):
        problems.append("dropbox link")
    return problems

print(walmart_url_problems("https://media.sume.com/img/abc/0.png"))

Common ways a good URL goes bad

Most failures come from the pipeline around the image, not from the generator. Typical causes are a CDN that appends a tracking or resize query string, a link copied from a shared folder instead of the file itself, and a sheet cell that holds a preview page rather than the image address.

Fix those at the source: store the bare URL as returned, never rewrite it, and test it by fetching it once and confirming the response is an image, not HTML. That one fetch also proves the link is publicly reachable, which Walmart requires.

Where this fits in a batch

For a catalogue, submit one image job per SKU with an Idempotency-Key, put your own SKU in the job metadata, and read each URL from the finished job result (Jobs and results). Run the check as the last step, then write the passing URLs into your feed.

Sume does not upload to Walmart for you. The docs describe no Walmart integration, so the feed or Seller Center step stays yours. Size and background rules are covered in the 2200 x 2200 main image post.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume