Ducted

X Shopping
feeds.

Dynamic Product Ads on X.

X's shopping spec is the smallest of the nine: 28 fields, eight required, no recommended tier, and a set of 100-character limits on identifiers, colour and size that other channels set at 50 or 200.

Beyond the required fields, X needs at least one of brand, gtin or mpn, ignores every instance of a duplicate id, and will not show an in stock product whose inventory is 0.

What the feed needs

Generated from the Ducted X (Twitter) Shopping template, the same field rules your mapping is validated against.

28 fields: 8 required, 20 optional.

FieldLevelAccepted values / example
idrequiredTWSHOES-22
titlerequiredX Blue Sneakers
descriptionrequiredThe first of its kind at X, the X Blue Sneaker is a sleek, fashionable athletic sneaker.
availabilityrequiredin stock · available for order · preorder · out of stock · discontinued
conditionrequirednew · used · refurbished
pricerequired99.99 USD
linkrequiredhttps://www.x.com/medium_tshirt
image_linkrequiredhttps://t.co/demin_jeans_452.jpg

Field rules from the official spec, verified 2026-10-02.

Also supported, always optional (20): brand, gtin, mpn, mobile_link, additional_image_link, google_product_category, product_type, inventory, sale_price, sale_price_effective_date, item_group_id, gender, color, size, age_group, custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4

Where X Shopping feeds get rejected

No brand, GTIN or MPN

X requires at least one of the three product identifiers on every record, and recommends all of them for Dynamic Product Ads.

Duplicate ids

X ignores every instance of a duplicate id, the original included. Two records sharing an id both disappear.

In stock with zero inventory

When availability is in stock, inventory must be 1 or higher, or X will not show the product. available for order and preorder may carry 0.

Hex colours and unspaced categories

color is a name (blue, forest green), never a hex code; product_type levels are separated by " > " with a space on each side. Descriptions are plain text with no HTML and no excessive capitalisation.

Validate your product feed for free →

From source to a live feed URL

  1. Connect the source. A Shopify, WooCommerce, Teemill, Spring, Printify Pop-Up, Bonfire or Fourthwall store address, a file, a feed URL or a REST API. No source at all? Website Indexing builds one from the store itself.
  2. AutoMap the fields. Every source column is scored against the channel template and the best match is pre-filled. You confirm or tweak.
  3. Transform what needs it. Casing, currency and number formats, conditional values, fallbacks for fields the source sometimes leaves empty.
  4. Validate before you send. The health check names the field, counts the affected records and shows example rows from your own data.
  5. Serve a permanent URL. The platform fetches your feed on a schedule; feed pull tracking shows when it last did.

The rest of the shopping stack

One mapped catalog serves every channel; each page covers what that platform's feed needs.

E-commerce feedsGoogle ShoppingMeta CatalogTikTok CatalogPinterestMicrosoft ShoppingSnapchatRedditCriteoChatGPT Ads

X Shopping from the catalog you already mapped.

Add an X Shopping output to an existing project, or start free and map your first.

Create free accountCheck an existing feed