Skip to content
CatalogBadge

Documentation

Output feeds

Every store gets a set of feed files, rebuilt on every update. You add one of them to your catalog; the others are there when you need them.

The files

FileWhat it holdsUse it for
meta-full.xmlEvery product in your feed with every field you sent, in Meta's RSS format. The image link points at our 1:1 image; the 4:5 and 9:16 images, when switched on, come first in the additional images, followed by your own.A Meta catalog that runs on a scheduled feed: replace its URL with this one.
meta-supp.csvOnly id, image_link and additional_image_link, for products that have one of our images.A Meta catalog created by Shopify, Salla or a Zid app: add it as a supplementary feed. It changes images only, never prices or stock.
snap-full.xmlThe same products and fields as the full Meta feed, with the 1:1 image.Your Snapchat catalog's scheduled feed.
meta-lang-en.csv, meta-lang-ar.csvMeta language feeds: the title, link and image in your second language for products that have a title in it.Add as a language feed in Commerce Manager, so people using Facebook or Instagram in that language see that language's image.
tiktok-full.csv, tiktok-full.xmlEvery active, valid product TikTok accepts, with sku_id as the id, the 1:1 image and the 4:5 and 9:16 images as additional images.TikTok Ads Manager, Assets, Catalogs: add products by data feed, schedule hourly, update method Replace. TikTok has no supplementary feed, so this is always the full feed.
pinterest-full.xml, pinterest-full.csvEvery active, valid product Pinterest accepts, with the 2:3 image when you turn that size on (Rules, Sizes and language), otherwise your own photo.Pinterest Ads, Catalogs: add a data source with this URL. Pinterest reads it once a day.
snap-supp.csv, snap-supp.xmlThe supplementary shape for Snapchat: ids and our 1:1 image.A Snapchat catalog that a platform integration fills: add it as a supplementary feed.
meta-full.csv, snap-full.csv, meta-supp.xmlThe same files in the other format, CSV or XML.A catalog that takes the other format, or if you prefer it.

Products we could not draw, invalid rows and skipped products stay in the full feeds with their original image. See the Meta and Snapchat guides for where each file goes.

Design variants

On Growth and up, a store can set a design for variant B and for variant C. Each variant has every file above at the same URL with ?v=b or ?v=c added, for example meta-full.xml?v=b. A variant's files hold the same products, prices and fields as your main files; only the images differ. Put each variant into a catalog of its own (the same ids in one catalog would overwrite each other's images) and run it as its own ad set.

Country feeds

On Growth and up, a store that sells in other countries can add up to 10 markets, each with the feed columns that hold its price (for example price:US). Each market gets its own full feeds with the country code in the name: meta-full-us.xml, meta-full-us.csv, snap-full-us.xml, tiktok-full-us.csv, pinterest-full-us.xml and their twins. We never convert currencies: a product with no price for a market is left out of that market's files.

Product video

On Pro and Enterprise, with video switched on, the Meta files carry a link to each product's video in video[0].url (and the 9:16 video in video[1].url when you make that size), and the TikTok file carries it in video_link. A product gets the link only once its video exists; Snapchat, Pinterest and the language feeds carry no video.

Feed URLs

https://feeds.catalogbadge.com/{public_id}/{token}/{name}

public_id is your store's random ID, token is a secret, and name is one of the files above. Your dashboard shows the full URLs on the store's overview.

Treat a feed URL like a password: anyone who has it can read your product feed. Share it only with your catalog, never in a public place.

Replacing the token

If a feed URL leaks, rotate the token from the store's overview in your dashboard. The new URLs work at once, and the old token keeps working for 7 days so you can update your catalogs without a gap.

How the feeds are served

  • XML files are served as application/rss+xml and CSV files as text/csv, both UTF-8.
  • Cache-Control: no-store, with an ETag: a request that sends If-None-Match for an unchanged file gets 304 Not Modified.
  • A wrong ID, token or file name gets the same 404, so nothing reveals which part was wrong.
  • A paused store answers 503, so the ad platforms keep the last copy they fetched instead of emptying your catalog.
  • A store's feeds answer at most 60 requests a minute. The ad platforms fetch at most hourly, so this never limits them.
  • A new file replaces the old one only after it passes our checks: written completely, at least 80% of the previous product count, and every image one we made for your store.