Blog
6 September 2026/9 min read

ChatGPT Product Feed Requirements: The 9 Fields OpenAI Requires

OpenAI's official product feed spec for ChatGPT Shopping requires 9 fields and enforces validation rules, like GTIN check digits and strict sale-price logic, that silently reject listings most guides never mention.

Adel Dahani
Author:Adel Dahani,GEO Analyst
ChatGPT Product Feed Requirements: The 9 Fields OpenAI Requires

OpenAI publishes a real specification for the product feed that powers ChatGPT Shopping and agentic checkout, and most guides covering it get the details wrong. Some report the wrong field count. Almost none mention the validation rules that quietly reject a listing even when the feed looks fine at a glance. This post works from the primary source only: developers.openai.com/commerce/product-feeds/spec and developers.openai.com/commerce/guides/key-concepts.

If you sell products and want them surfaced in ChatGPT's shopping results, this is the checklist to audit your feed against, not a generic "keep your data clean" reminder.

9
Required fields
A row is rejected without every one of them
5
Valid availability values
in_stock, out_of_stock, pre_order, backorder, unknown
2
Accepted feed formats
JSONL, or a Google Merchant Center-compatible feed

What is the ChatGPT product feed specification?

The ChatGPT product feed specification is OpenAI's format for submitting product data so it can appear in ChatGPT Shopping and agentic commerce results. It defines which fields are required, which are conditional, and which validation rules cause a row to be rejected or degraded.

The feed accepts two submission formats: JSONL (one complete JSON record per line) or a Google Merchant Center-compatible feed (UTF-8, tab-delimited .txt/.tsv or comma-delimited .csv, gzip supported). There's no SFTP requirement in the official docs. On refresh cadence, OpenAI's own docs describe an initial sample feed for validation, then daily snapshots, that's the documented cadence, not the 15-minute refresh cycle some secondary sources claim. Build your update pipeline around daily snapshots, not a made-up 15-minute window.

What are the 9 required fields?

A product row is rejected if any of these nine fields is missing, empty, or holds an unrecognized value.

FieldWhat it isWhat breaks if it's wrong
item_idStable ID, unique per item/variant in the feedDuplicate or reused IDs cause the row (or the wrong variant) to be dropped
titleProduct name, including the variant when relevantA generic title without variant detail shows the wrong item
descriptionFactual description for this specific itemMissing or copied-across-variants descriptions weaken ranking, not just display
urlProduct detail page, variant selected when possibleA URL pointing to the wrong variant sends buyers to the wrong page
brandBrand as shown on the product pageMismatched brand naming breaks entity matching
seller_nameName of the seller supplying this offerMissing seller identity blocks the offer from displaying
image_urlMain image, showing this variantBroken or generic images get the listing skipped in visual results
availabilityExactly one of the 5 valid valuesAn unrecognized value rejects the entire row
priceRegular price, major currency unitsMissing or malformed price blocks checkout eligibility entirely
Availability is the field most feeds get wrong. It must be exactly one of five strings: in_stock, out_of_stock, pre_order, backorder, or unknown. A value like "In Stock" with different casing, "limited", or a blank string doesn't get normalized, it gets the row rejected outright.

When are additional fields required?

Several fields become mandatory depending on what you're submitting, not on every row.

  • Variants: group_id and listing_has_variations are required when you submit variant products. variant_dict is required on each variant row when listing_has_variations=true.
  • Dimensions and weight: if you submit separate dimension fields, dimensions_unit is required. If you submit weight, item_weight_unit is required.
  • Third-party marketplace offers: marketplace_seller is required.
  • Checkout integration: seller_privacy_policy and seller_tos are required.

Miss a conditional field for the case that applies to you, and the behavior is the same as missing a required one: the row is rejected.

What validation rules cause silent rejections?

This is the part most feed guides skip, and it's where feeds that look clean on a spreadsheet actually fail.

Three rules catch the most real-world feeds:
  • GTINs must be exactly 8, 12, 13, or 14 digits, including a valid check digit. A GTIN copied from a supplier feed with a typo or a truncated digit fails silently rather than throwing an obvious error.
  • Sale prices must be strictly less than the regular price, in the same currency. A "sale" price equal to, higher than, non-positive, or in a different currency than price isn't used as a sale price at all.
  • Variant item IDs can never be reused across items, and a `group_id` must differ from every individual item ID in that group. Feed exports that recycle SKUs across a product line trip this constantly.

Beyond those three, the spec calls out a few other silent failure modes worth checking:

  • Invalid URLs in optional image lists aren't a hard row rejection, they just get silently omitted, so the image disappears without an error.
  • Placeholder strings like null, unknown, or n/a are rejected wherever they aren't an explicitly permitted value for that field.

None of these produce a loud failure. Your feed submits successfully, and the affected rows just don't show up, or show up with missing images and no clear reason why.

Not sure if your product feed is actually validating?
Our AI visibility audit checks structured data, feed-adjacent schema, and the technical signals that determine whether AI shopping surfaces can find and trust your product data.
Get Your Free Audit

Does passing validation guarantee ranking?

No. Passing validation only gets a product eligible to display, it doesn't compete for ranking. Per OpenAI's own documentation, "required fields ensure correct display of price and availability, while recommended attributes, like rich media, reviews, and performance signals, improve ranking, relevance, and user trust."

That's the distinction most feed advice glosses over. The 9 required fields are the bar for showing up at all. Recommended fields, GTIN/UPC/MPN identifiers, additional images, video, and reviews or ratings data, are what actually competes for placement once you've cleared that bar. A feed that passes validation with only the required fields populated is eligible but not competitive.

How does this compare to a standard Google Shopping feed?

AspectGoogle Merchant CenterChatGPT product feed
FormatXML, TSV, CSVJSONL, or Merchant Center-compatible TSV/CSV
Required fields~10 core fields (varies by category)9 required fields, always
Availability values4 standard values5 values, including unknown
Sale price ruleMust be lower than list priceMust be strictly lower, same currency, enforced at validation
Variant handlingitem_group_idgroup_id + variant_dict, ID reuse strictly rejected
Ranking signalApproval + Shopping ads performanceRequired fields for eligibility, recommended fields for ranking

You can largely reuse a Google Merchant Center feed as the base since OpenAI explicitly supports that format, but you can't assume it passes as-is. Run it through the required-field and validation checks above first.

Is there a version number for the spec?

Independent tracking sites report the current stable spec as dated 2026-01-30, though the official OpenAI developer docs pages we reviewed didn't display an explicit version string themselves. Treat the spec as something to re-check periodically against the primary source rather than a fixed document you audit once.

Key Takeaway

A feed that "looks fine" in a spreadsheet can still fail silently. Audit for the GTIN check digit, the strict sale-price inequality, and item ID reuse across variants specifically, those three rules account for most real-world rejections that do not throw an obvious error.

FAQ

What are the required fields for the OpenAI product feed?

The nine required fields are item_id, title, description, url, brand, seller_name, image_url, availability, and price. A product row is rejected if any one of them is missing, empty, or holds an unrecognized value.

What format does the ChatGPT shopping feed need to be in?

OpenAI accepts JSONL (one JSON record per line) or a Google Merchant Center-compatible feed in UTF-8, tab-delimited .txt/.tsv, or comma-delimited .csv, with gzip compression supported. There's no SFTP requirement documented officially.

What are the valid values for the availability field?

The availability field must be exactly one of five values: in_stock, out_of_stock, pre_order, backorder, or unknown. Any other value, including differently cased or formatted versions of these, causes the row to be rejected.

Why would a GTIN fail validation even if it looks correct?

A GTIN must be exactly 8, 12, 13, or 14 digits and include a valid check digit. A GTIN that's the right length but has an invalid check digit, often from a typo introduced upstream in a supplier feed, still fails.

Can I reuse an item ID across product variants?

No. Each item_id must be unique per item or variant within the feed, and the group_id for a variant set must differ from every individual item ID in that group. Reusing IDs across variant rows is a common cause of rejected listings for stores exporting from systems that recycle SKUs.

Does OpenAI require a specific refresh interval for the feed?

The docs describe daily snapshots as part of the integration flow, after an initial sample feed for validation, not the 15-minute refresh some secondary sources claim. There's no SFTP requirement either. That's a separate claim floating around outside the primary documentation.

How is this different from general e-commerce GEO advice?

General GEO advice for e-commerce covers structured data, entity clarity, and content strategy at the site level. See our guides on GEO for e-commerce and AI shopping agents for that broader picture. This post is specifically about the technical feed spec: the exact fields, formats, and validation rules that determine whether a product listing is accepted into ChatGPT Shopping at all.

Does passing feed validation guarantee my product ranks well in ChatGPT Shopping?

No. Validation only determines eligibility to display. Ranking depends on recommended attributes beyond the required fields, including GTIN/UPC/MPN identifiers, rich media, and review or performance signals, per OpenAI's own documentation.


Sources: OpenAI Commerce: Product Feed Spec, OpenAI Commerce: Key Concepts

This post is part of our AI SEO guide. Related reading: Bing Webmaster Tools AI Performance Report, Google Search Console's AI Overviews Report,, Domain Authority Doesn't Predict AI.

About the Author
Adel Dahani
Adel Dahani
GEO Analyst

Adel tracks AI citation rates across ChatGPT, Perplexity, Gemini, and AI Overviews. He turns raw visibility data into actionable insights that guide our optimization strategy.

Full Bio →
More From the Blog
The 50 Websites AI Search Actually Cites in 2026

The 50 Websites AI Search Actually Cites in 2026

5WPR's AI Platform Citation Source Index 2026 synthesizes 680 million citations across five AI engines into a ranked list of the 50 domains that get cited most. The top 15 alone capture 68% of all citation share.

Read article →
Your robots.txt GPTBot Block Probably Isn't Working

Your robots.txt GPTBot Block Probably Isn't Working

HasData tested 592 sites that disallow GPTBot in robots.txt against live requests. 234 of them (39.5%) still served GPTBot anyway. A declared block and an enforced one are not the same thing.

Read article →
Schema markup doesn't move AI citations: what Ahrefs' controlled study found

Schema markup doesn't move AI citations: what Ahrefs' controlled study found

A controlled Ahrefs experiment tracking 1,885 pages found close to zero causal effect from adding JSON-LD schema on AI citation rates, contradicting the correlational stat much of the GEO industry, including us, built advice on.

Read article →