Primary navigation

Product Feed Spec

Provide a structured product feed so ChatGPT accurately indexes and displays your products with up-to-date price and availability.

Overview

The Product Feed Specification defines how merchants share structured product data with OpenAI so ChatGPT can accurately surface their products in search and shopping experiences.

How it works

  1. Prepare your feed. Format your catalog using the Product Feed Spec (see Field reference for required and optional attributes with sample values).
  2. Deliver the feed. Share the feed using the preferred delivery method and file format described in the integration section.
  3. Ingestion and indexing. OpenAI ingests the feed, validates records, and indexes product metadata for retrieval and ranking in ChatGPT.
  4. Keep it fresh. Update the feed whenever products, pricing, or availability change to ensure users see accurate information.

Key points

  • Structured source of truth. OpenAI relies on merchant-provided feeds—this ensures accurate pricing, availability, and other key details.
  • Built for discovery. The feed powers product matching, indexing, and ranking in ChatGPT.
  • Integration guidance. The spec defines the preferred delivery method and file format for reliable ingestion.
  • Field reference. A complete list of required and optional attributes (with examples) is provided to help you validate your feed.
  • Freshness matters. Frequent updates improve match quality and reduce out-of-stock or price-mismatch scenarios.

Integration Overview

This section outlines the key logistics: how the feed is delivered, acceptable file formats, and the initial steps required to validate your data, so engineering teams can plan with confidence.

TopicDetails
Delivery model

Merchants push feeds to OpenAI via SFTP, file upload, or hosted URL.

File formatSupported formats are jsonl.gz and csv.gz (gzip-compressed).
Refresh FrequencyOur system accepts updates daily.

Field Reference

To make your products discoverable inside ChatGPT, merchants provide a structured product feed that OpenAI ingests and indexes. This specification defines the complete schema: field names, data types, constraints, and example values needed for accurate search, pricing, and checkout experiences.

Each table below groups attributes by category (Basic Data, Media, Pricing, etc.) and indicates whether a field is Required, Recommended, or Optional, along with validation rules to help your engineering team build and maintain a compliant feed.

Supplying all required fields ensures your products can be displayed correctly, while recommended fields enrich relevance and user trust.

Field scope
View

OpenAI Flags

Use these flags to control whether a product is discoverable and/or purchasable inside ChatGPT. These fields do not affect how the product is displayed on your own site, they simply enable or disable the ChatGPT integrations.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
is_eligible_searchBooleantrue, falseControls whether the product can be surfaced in ChatGPT search results.trueRequiredLower-case string
is_eligible_checkoutBooleantrue, falseAllows direct purchase inside ChatGPT.
is_eligible_search must be true in order for is_eligible_checkout to be enabled for the product.
trueRequiredRequires is_eligible_search=trueLower-case string

Basic Product Data

Provide the core identifiers and descriptive text needed to uniquely reference each product. These fields establish the canonical record that ChatGPT Search uses to display and link to your product.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
item_idString (alphanumeric)Merchant product ID (unique per variant)SKU12345RequiredMax 100 chars; must remain stable over time
gtinString (numeric)GTIN, UPC, ISBNUniversal product identifier123456789543Optional8–14 digits; no dashes or spaces
mpnString (alphanumeric)Manufacturer part numberGPT5OptionalMax 70 chars
titleString (UTF-8 text)Product titleMen's Trail Running Shoes BlackRequiredMax 150 chars; avoid all-caps
descriptionString (UTF-8 text)Full product descriptionWaterproof trail shoe with cushioned sole…RequiredMax 5,000 chars; plain text only
urlURLRFC 1738Product detail page URLhttps://example.com/product/SKU12345RequiredMust resolve with HTTP 200; HTTPS preferred

Item Information

Capture the physical characteristics and classification details of the product. This data helps ensure accurate categorization, filtering, and search relevance.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
conditionStringCondition of productnewOptionalLower-case string
product_categoryStringCategory taxonomyCategory pathApparel & Accessories > ShoesOptionalUse “>” separator
brandStringProduct brandOpenAIRequiredMax 70 chars
materialStringPrimary material(s)LeatherOptionalMax 100 chars
dimensionsStringLxWxH unitOverall dimensions12x8x5 inOptionalUnits required if provided
lengthStringIndividual dimension10OptionalProvide all three if using individual fieldsUse dimensions_unit
widthStringIndividual dimension10OptionalProvide all three if using individual fieldsUse dimensions_unit
heightStringIndividual dimension10OptionalProvide all three if using individual fieldsUse dimensions_unit
dimensions_unitStringDimensions unitinOptionalRequired if any of length, width, height are providedUnit abbreviation (e.g. in, cm)
weightStringProduct weight1.5OptionalUse item_weight_unit
item_weight_unitStringProduct weight unitlbOptionalRequired if weight is providedUnit abbreviation (e.g. lb, kg)
age_groupEnumnewborn, infant, toddler, kids, adultTarget demographicadultOptionalLower-case string

Media

Supply visual and rich media assets that represent the product. High-quality images and optional videos or 3D models improve user trust and engagement.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
image_urlURLRFC 1738Main product image URLhttps://example.com/image1.jpgRequiredJPEG/PNG; HTTPS preferred
additional_image_urlsStringExtra imageshttps://example.com/image2.jpg,…OptionalComma-separated list
video_urlURLRFC 1738Product videohttps://youtu.be/12345OptionalMust be publicly accessible
model_3d_urlURLRFC 17383D modelhttps://example.com/model.glbOptionalGLB/GLTF preferred

Price & Promotions

Define standard and promotional pricing information. These attributes power price display, discount messaging, and offer comparisons.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
priceNumber + currencyISO 4217Regular price79.99 USDRequiredMust include currency code
sale_priceNumber + currencyISO 4217Discounted price59.99 USDOptionalMust be ≤ price
sale_price_start_dateDateISO 8601Sale start date2025-07-01OptionalMust be valid ISO 8601 date
sale_price_end_dateDateISO 8601Sale end date2025-07-15OptionalMust be valid ISO 8601 date
unit_pricing_measure / base_measureNumber + unitUnit price & base measure16 oz / 1 ozOptionalBoth fields required together
pricing_trendStringLowest price in N monthsLowest price in 6 monthsOptionalMax 80 chars

Availability & Inventory

Describe current stock levels and key timing signals for product availability. Accurate inventory data ensures users only see items they can actually purchase.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
availabilityEnumin_stock, out_of_stock, pre_order, backorder, unknownProduct availabilityin_stockRequiredLower-case string
availability_dateDateISO 8601Availability date if pre-order2025-12-01Required if availability=pre_orderMust be future date
expiration_dateDateISO 8601Remove product after date2025-12-01OptionalMust be future date
pickup_methodEnumin_store, reserve, not_supportedPickup optionsin_storeOptionalLower-case string
pickup_slaNumber + durationPickup SLA1 dayOptionalRequires pickup_methodPositive integer + unit

Variants

Specify variant relationships and distinguishing attributes such as color or size. These fields allow ChatGPT to group related SKUs and surface variant-specific details.

The group_id value should represent how the product is presented on the merchant’s website (the canonical product page or parent listing shown to customers). If you are submitting variant rows (e.g., by color or size), you must include the same group_id for every variant. Do not submit individual variant SKUs without a group id.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
group_idStringVariant group IDSHOE123GROUPRequiredMax 70 chars
listing_has_variationsBooleantrue, falseIndicates if the listing has variationstrueRequiredLower-case string
variant_dictObjectVariant attributes map{ "color": "Blue", "size": "10" }OptionalJSON object with string values
item_group_titleString (UTF-8 text)Group product titleMen's Trail Running ShoesOptionalMax 150 chars; avoid all-caps
colorStringVariant colorBlueOptionalMax 40 chars
sizeStringVariant size10Recommended (apparel)Max 20 chars
size_systemCountry codeISO 3166Size systemUSRecommended (apparel)2-letter country code
genderStringGender targetmaleOptionalLower-case string
offer_idStringOffer ID (SKU+seller+price)SKU12345-Blue-79.99RecommendedUnique within feed
Custom_variant1_categoryStringCustom variant dimension 1Size_TypeOptional
Custom_variant1_optionStringCustom variant 1 optionPetite / Tall / MaternityOptional
Custom_variant2_categoryStringCustom variant dimension 2Wood_TypeOptional
Custom_variant2_optionStringCustom variant 2 optionOak / Mahogany / WalnutOptional
Custom_variant3_categoryStringCustom variant dimension 3Cap_TypeOptional
Custom_variant3_optionStringCustom variant 3 optionSnapback / FittedOptional

Fulfillment

Outline shipping methods, costs, and estimated delivery times. Providing detailed shipping information helps users understand fulfillment options upfront.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
shippingStringcountry:region:service_class:price:min_handling_days:max_handling_days:min_transit_days:max_transit_daysShipping informationUS:CA:Overnight:16.00 USD:1:2:1:3OptionalOmitting fields is allowed (“US::Overnight:16.00 USD”); use colon separators
is_digitalBooleantrue, falseIndicates if the product is digitalfalseOptionalLower-case string

Merchant Info

Identify the seller and link to any relevant merchant policies or storefront pages. This ensures proper attribution and enables users to review seller credentials.

Note about 3P sellers and marketplaces: If your feed contains products that are shipped with 3rd party sellers, please also include a marketplace_seller in your feed. The marketplace_seller would be the point of checkout in this scenario, and the seller_name would be the shipment fulfiller.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
seller_nameStringSeller nameExample StoreRequired / DisplayMax 70 chars
marketplace_sellerStringMarketplace seller of recordMarketplace NameOptionalMax 70 chars
seller_urlURLRFC 1738Seller pagehttps://example.com/storeRequiredHTTPS preferred
seller_privacy_policyURLRFC 1738Seller-specific policieshttps://example.com/privacyRequired if is_eligible_checkout is trueHTTPS preferred
seller_tosURLRFC 1738Seller-specific terms of servicehttps://example.com/termsRequired if is_eligible_checkout is trueHTTPS preferred

Returns

Provide return policies and time windows to set clear expectations for buyers. Transparent return data builds trust and reduces post-purchase confusion.

Use return_deadline_in_days as the canonical field for return windows in the feed schema.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
accepts_returnsBooleantrue, falseAccepts returnstrueOptionalLower-case string
return_deadline_in_daysIntegerDaysDays allowed for return30OptionalPositive integer
accepts_exchangesBooleantrue, falseAccepts exchangesfalseOptionalLower-case string
return_policyURLRFC 1738Return policy URLhttps://example.com/returnsRequiredHTTPS preferred

Performance Signals

Share popularity and return-rate metrics where available. These signals can be used to enhance ranking and highlight high-performing products.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
popularity_scoreNumberPopularity indicator4.7Recommended0–5 scale or merchant-defined
return_rateNumberPercentageReturn rate2%Recommended0–100%

Compliance

Include regulatory warnings, disclaimers, or age restrictions. Compliance fields help meet legal obligations and protect consumers.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
warning / warning_urlString / URLProduct disclaimersContains lithium battery, or CA Prop 65 warningRecommended for CheckoutIf URL, must resolve HTTP 200
age_restrictionNumberMinimum purchase age21RecommendedPositive integer

Reviews and Q&A

Supply aggregated review statistics and frequently asked questions. User-generated insights strengthen credibility and help shoppers make informed decisions.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
review_countIntegerNumber of product reviews254OptionalNon-negative
star_ratingStringAverage review score4.50Optional0–5 scale
store_review_countIntegerNumber of brand/store reviews2000OptionalNon-negative
store_star_ratingStringAverage store rating4.50Optional0–5 scale
q_and_aListFAQ content[{ "q": "Is this waterproof?", "a": "Yes" }]RecommendedList of { "q": string, "a": string } objects
reviewsListReview entries[{ "title": "Love these", "content": "Great grip.", "minRating": 1, "maxRating": 5, "rating": 5 }]RecommendedList of { "title": string, "content": string, "minRating": number, "maxRating": number, "rating": number } objects

List products that are commonly bought together or act as substitutes. This enables basket-building recommendations and cross-sell opportunities.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
related_product_idStringAssociated product IDsSKU67890RecommendedComma-separated list allowed
relationship_typeEnumpart_of_set, required_part, often_bought_with, substitute, different_brand, accessoryRelationship typepart_of_setRecommendedLower-case string

Geo Tagging

Indicate any region-specific pricing or availability overrides. Geo data allows ChatGPT to present accurate offers and stock status by location.

AttributeData TypeSupported ValuesDescriptionExampleRequirementDependenciesValidation Rules
target_countriesListUSTarget countries of the item (first entry used)USRequiredUse ISO 3166-1 alpha-2 codes
store_countryStringUSStore country of the itemUSRequiredUse ISO 3166-1 alpha-2 codes
geo_priceNumber + currencyRegion-specific pricePrice by region79.99 USD (California)RecommendedMust include ISO 4217 currency
geo_availabilityStringRegion-specific availabilityAvailability per regionin_stock (Texas), out_of_stock (New York)RecommendedRegions must be valid ISO 3166 codes

Prohibited Products Policy

To keep ChatGPT a safe place for everyone, we only allow products and services that are legal, safe, and appropriate for a general audience. Prohibited products include, but are not limited to, those that involve adult content, age-restricted products (e.g., alcohol, nicotine, gambling), harmful or dangerous materials, weapons, prescription only medications, unlicensed financial products, legally restricted goods, illegal activities, or deceptive practices.

Merchants are responsible for ensuring their products and content do not violate the above restrictions or any applicable law. OpenAI may take corrective actions such as removing a product or banning a seller from being surfaced in ChatGPT if these policies are violated.