OpenAI product feed spec

OpenAI’s ChatGPT product feed is one row per item or variant, with nine required fields

Direct answer. OpenAI’s product feed for ChatGPT is a structured catalog file, one row per purchasable item or variant. The products file-upload spec requires nine fields in Basic product data: item_id, title, description, url, brand, seller_name, image_url, availability, and price. Quotes below are from that page and from the product feeds overview, both read as markdown on 13 October 2026. This page does not say who is approved, what a feed costs, or how products are ranked.

Agentic Catalog by momiji (Shopify App Store · Write a review): “Audit catalog and product readiness before launch or AI shopping discovery. Review fix guidance, rerun scans, and export CSV evidence.” The listing does not say the app generates or submits an OpenAI feed.

Related: Staff Access Audit Guard — Staff access audit for permission drift after the last review.

Free check first: Product JSON-LD field checker runs in your browser and sends nothing.

Checklist

What the overview says a product feed is

Product feeds: “Product feeds provide structured catalog data that helps ChatGPT surface the right products with accurate pricing, availability, and seller context.”

Products: “Submit one row per purchasable item or variant. Include the nine required fields in Basic product data, then add the optional data that describes your products. Ads and checkout have separate requirements.”

The same page says: “Ads product feeds follow the Ads product feeds guide.” And: “Checkout requires a separately enabled integration.”

Basic product data

The table below copies the Basic product data rows as written on 13 October 2026. The example column is omitted.

Basic product data, from the OpenAI products file-upload spec
Field Type Requirement Description
item_id String Required Stable ID, unique per item or variant within your feed. Never reuse it for a different item. See identity rules.
title String Required Product name, including the selected variant when relevant.
description String Required Factual product description for this item.
url String (URL) Required Product detail page for the item, with the variant selected when possible. Keep it stable.
brand String Required Product brand as shown on the product page.
seller_name String Required Name of the seller supplying this offer. For marketplace offers, see merchant information.
image_url String (URL) Required Main product image, showing this variant. Use a direct image URL, such as a JPEG or PNG.
availability String Required in_stock, out_of_stock, pre_order, backorder, or unknown. Omitted, empty, or unrecognized values reject the row. Use unknown explicitly when stock status is unavailable.
price String (money) Required Regular item price in major currency units. See prices.

Identity and variants

“Use item_id for the specific item, group_id for its parent listing, and offer_id for a seller's offer. Keep all three stable when price, stock, title, or images change. Never include price in an offer ID.”

“For variants, send a separate row for each selection, with a distinct item_id, the same group_id, listing_has_variations=true, and a variant_dict of the selected options. The group ID must differ from each item ID. Use the same option names across a group, and unique option combinations. Group only variants of the same product as presented on your site. Each row carries its own price, availability, URL, and images.”

The optional gtin row: “One assigned GTIN: exactly 8, 12, 13, or 14 digits, including a valid check digit. Preserve leading zeros; no spaces or dashes. Omit if unassigned.”

Google-compatible feeds

Under Google-compatible product data feeds, the spec says: “Use this format only after OpenAI confirms it for your registered feed.” The rest of that section is on the products page.

A practical mapping onto a Shopify product page

The table below is a practical mapping. It is not an OpenAI statement and not a Shopify statement. This page quotes nothing new about Shopify. What Shopify writes about its own AI shopping surfaces is Shopify agentic storefronts.

Practical mapping: OpenAI feed field to a fact that usually appears on a Shopify product page
OpenAI feed field Where the same fact usually lives on a Shopify product page
title Product title
description Product description
url Product page URL
brand Vendor or brand shown on the product page
image_url Product image
availability Inventory or availability shown for that variant
price Price shown for that variant
gtin Barcode or GTIN stored on the variant

Related catalog pages

What this page is not

Related pages

Not legal advice. Confirm the live OpenAI spec before you treat a field as required. The app audits catalog and product readiness, reviews fix guidance, reruns scans, and exports CSV evidence. It does not generate or submit an OpenAI feed.