Reddit catalog image_link: 500x500 minimum, 20 MB, JPG or PNG

Reddit Ads catalog rules for dynamic product ads: image_link 500x500 or more, 20 MB, JPG or PNG; titles over 35 characters may be cut. Fix photos with Sume.

5 min readSume
All posts

In a Reddit Ads catalog, image_link must be a URL of up to 2,000 characters that points to a JPG or PNG of at least 500 x 500 pixels and no more than 20 MB. Dynamic product ads (DPAs) build their ads from the catalog, so that file is the ad image Reddit shows, and Reddit recommends a square 1:1 image for DPAs.

The numbers come from Reddit's Catalog Requirements page, read on 2026-10-03, with setup advice from Catalog Setup. Reddit's other image specs are in Reddit ad image size; this post is about the feed.

Which catalog fields are required?

Reddit lists five required fields. A product missing one of them produces an error, and every value must be at least one character long.

Reddit catalog required fields and limits (read 2026-10-03)
FieldLimitRule that matters
id128 charactersMust match the product ID your Pixel or Conversions API sends; SKU recommended
title (or name)300 charactersPlain text only; titles over 35 characters may be truncated in the ad caption
description5,000 characters180 or fewer recommended; longer may be truncated
link (or url)2,000 charactersLanding page on your business domain, starting with HTTP or HTTPS
image_link (or fullimage)2,000 charactersJPG or PNG, 500 x 500 px minimum, 20 MB maximum
price200 charactersNumber plus ISO 4217 code, such as 123.45 USD, one currency across the feed

What does Reddit say about the image itself?

Beyond the hard limits, Catalog Setup recommends high-resolution images of at least 500 x 500 pixels and suggests showing the item in front of a white background. The Ad Format By Objective page adds that assets such as pricing, images and descriptions pull from the feed, and that square 1:1 at a 500 x 500 px minimum is recommended for DPAs.

The optional additional_image_links field takes a JSON-encoded list of URLs, each meeting the same image_link requirements. sale_price shows with the original price struck out when it is lower than price. Reddit also says non-compliant products are not an option for product ads or DPAs, so a product that fails review drops out of rotation rather than just looking worse.

What has to be true outside the feed?

The Dynamic Product Ads page lists the prerequisites: a catalog, the Reddit Pixel or Conversions API, AddToCart, ViewContent and Purchase events that carry a product ID (Purchase also needs currency and value), and the catalog mapped to the Pixel. DPAs cannot be made in Simple Create, and they only work for physical products.

  • Bulk import: UTF-8 CSV, TSV or XML RSS 2.0, up to 200 MB, with a title row; ATOM is not supported.
  • Data feed: an HTTPS, FTP or SFTP URL. Never put credentials in the URL; use the Catalog Manager fields.
  • Reddit suggests one catalog with all your products, and a product set named All Products is created by default.

How do I fix weak catalog photos with Sume?

The most common failure is a feed full of small, cluttered or inconsistent photos. Use your real product photo as the reference and change only the background, so the product in the ad is the product you ship. Sume's Image API takes input_references (public HTTPS URLs) and says that on edit calls you should send aspect_ratio: "auto" to match the reference, because omitting the field is not the same as auto. For a square feed image, send 1:1 instead, and check the model's supported_parameters first.

Ask for output_format png or jpeg to stay inside Reddit's JPG or PNG rule, and verify the delivered pixel size against 500 x 500 before the URL goes into the image_link column. Keep the prompt narrow: "same product, plain white background, soft shadow, no text, no extra props." Reddit's pages do not describe an AI-image rule for catalogs, so check Reddit's current ad policies if you generate people or claims.

curl -X POST "https://api.sume.com/v1/images" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-image-2.5",
    "prompt": "Same product, plain white background, soft shadow, no text",
    "input_references": [{"type": "image_url",
      "image_url": {"url": "https://example.com/photos/sku-1001.jpg"}}],
    "output_format": "png"
  }'

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume