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
- Send one row per purchasable item or variant, with the nine required fields.
- Use one of the listed availability values. An omitted, empty, or unrecognized value rejects the row.
- Keep
item_id,group_id, andoffer_idstable when price, stock, title, or images change. - Treat checkout and Ads as separate from the discovery row. This page does not describe how to apply.
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.
| 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.
| 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
- Agentic Commerce Protocol (ACP)
- Shopify Universal Commerce Protocol (UCP)
- Shopify GTIN and barcode for AI shopping
- Shopify Product JSON-LD
- Crawler rules and product JSON-LD
- Merchant return policy and shipping structured data
What this page is not
- Not an application, approval, fee, ranking, or traffic claim.
- Not a statement that Shopify stores are included in, or excluded from, an OpenAI feed.
- Not a feed generator. The listing does not say the app submits an OpenAI file.
Related pages
- Product JSON-LD field checker
- OpenAI product feeds
- OpenAI products file-upload spec
- OpenAI Ads product feeds
- Agentic Catalog by momiji — live App Store listing
- Shopify apps hub
- Tools
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.