Ducted

Pinterest Catalog
feeds.

Product Pins and shopping ads on Pinterest.

Pinterest turns a catalog into Product Pins, and its spec is unusually forgiving on format and unusually specific about what it does with a bad value: most problems do not reject the item, they truncate it or publish it without the offending attribute, each with its own error code.

Seven fields are required. Prices are accepted ten different ways (24.99 USD, 24.99USD, GBP 24,99, a bare 24.99 ...), and item_group_id is only required once a product lists variant options.

What the feed needs

Generated from the Ducted Pinterest Catalog template, the same field rules your mapping is validated against.

62 fields: 7 required, 3 recommended, 52 optional. 1 field changes level with the market, the product or how the record is sent.

FieldLevelAccepted values / example
idrequiredDS0294-L
titlerequiredWomen's denim shirt, large
descriptionrequiredCasual fit denim shirt made with the finest quality Japanese denim
linkrequiredhttps://www.example.com/cat/womens-clothing/denim-shirt-0294
image_linkrequiredhttps://scene.example.com/image/image.jpg
pricerequired24.99 USD
availabilityrequiredin stock · out of stock · preorder
item_group_idrecommended
required for products that list variant options (variant_names / variant_values)
DS0294
conditionrecommendednew · used · refurbished
google_product_categoryrecommendedApparel & Accessories > Clothing > Shirts & Tops

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

Also supported, always optional (52): product_type, additional_image_link, mobile_link, sale_price, average_review_rating, number_of_ratings, number_of_reviews, description_html, video_link, excluded_destination, brand, gtin, mpn, color, gender, age_group, material, pattern, size, size_type, size_system, alt_text, variant_names, variant_values, adult, tax, shipping, shipping_weight, shipping_width, shipping_height, free_shipping_label, free_shipping_limit, custom_label_0, custom_label_1, custom_label_2, custom_label_3, custom_label_4, custom_number_0, custom_number_1, custom_number_2, custom_number_3, custom_number_4, ad_link, ai_disclosures, installment, unit_pricing_measure, unit_pricing_base_measure, sale_price_effective_date_attribute, min_ad_price, ios_deep_link, android_deep_link, promotion_id

Where Pinterest catalog feeds get rejected

Variants without an item_group_id

A product that lists variant_names and variant_values needs item_group_id, and the two variant columns must be filled together, in the same order. An item_group_id over 127 characters is a row-level failure (error 178).

Zero and upside-down prices

Pinterest asks you not to send a price of 0. A sale_price that is not lower than price publishes the item without the sale price (error 125), which is the discount you paid to show.

Availability outside three values

in stock, out of stock and preorder are the accepted values. backorder, available for order or an underscored in_stock rejects the record.

product_type that is not a path

One path of up to five levels separated by " > " (more than five is error 154). Commas and pipes are not recognised as delimiters, so a multi-category export becomes one unreadable value.

Links outside the claimed domain

Every link must lead to the product on the domain claimed for the catalog. A feed with links elsewhere fails as a file (error 139), not record by record.

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 CatalogMicrosoft ShoppingSnapchatRedditX ShoppingCriteoChatGPT Ads

Pinterest from the catalog you already mapped.

Add a Pinterest output to an existing project, or start free and map your first.

Create free accountCheck an existing feed