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.

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.
| Field | Limit | Rule that matters |
|---|---|---|
| id | 128 characters | Must match the product ID your Pixel or Conversions API sends; SKU recommended |
| title (or name) | 300 characters | Plain text only; titles over 35 characters may be truncated in the ad caption |
| description | 5,000 characters | 180 or fewer recommended; longer may be truncated |
| link (or url) | 2,000 characters | Landing page on your business domain, starting with HTTP or HTTPS |
| image_link (or fullimage) | 2,000 characters | JPG or PNG, 500 x 500 px minimum, 20 MB maximum |
| price | 200 characters | Number 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
- Shopify Analytics notes: log each AI video launch with its job id
Shopify Analytics now takes your own notes. Record when an AI product clip went live and its Sume job id, so a later conversion shift has a cause.
- Shopify Events dropped shopify-event-id: build your own Sume job key
Shopify Events deliveries no longer carry shopify-event-id or shopify-resource-id. If you used one as a Sume Idempotency-Key, build a new key from the resource.
- Shopify's Generate image: unsaved images vanish, so click Keep
Shopify's file picker can generate images, but unsaved ones are discarded unless you click Keep. How that differs from a Sume job result URL you retrieve later.
- Shopify Events GA: start a Sume product video from the payload query
Shopify's Next Gen Events are GA in API version 2026-10 with 18 topics and a query in the payload. One delivery can start a Sume job without a follow-up fetch.
Written by Sume