How to Set Up a ChatGPT Shopping Product Feed (2026 Spec Guide)
To get your products into ChatGPT shopping, apply for a merchant account at chatgpt.com/merchants, then push a structured product feed to the secure endpoint OpenAI gives you after approval. The feed must follow OpenAI’s Product Feed Spec, use a supported file format, populate every required field (including the is_eligible_search and is_eligible_checkout flags), and be refreshed frequently. Separately, your robots.txt must allow OAI-SearchBot, or your catalog can be excluded from ChatGPT regardless of how clean the feed is.
This is the hands-on, field-level setup guide. If you want the strategy layer first — how to actually win recommendations once you’re shoppable — read our companion piece on answer engine optimization (AEO) and our generative engine optimization (GEO) service.
What is a ChatGPT shopping product feed?
A ChatGPT shopping product feed is a structured file of your catalog that you deliver directly to OpenAI, rather than waiting for a crawler to find your product pages. ChatGPT’s shopping and search surfaces pull from two places: structured data on your live site (read by OpenAI’s crawlers) and a pushed merchant feed for approved sellers. The feed is the higher-fidelity path — it lets you control titles, pricing, availability, and which products are eligible to appear in search versus eligible for in-chat checkout.
Important distinction: the feed is a push model, not a crawl. According to OpenAI’s file-upload overview, merchants push feeds to OpenAI via SFTP to an endpoint OpenAI provides. Your products are not scraped into the feed; you supply them.
How do you onboard as a ChatGPT merchant?
Step 1: Apply at chatgpt.com/merchants
Feed submission is gated behind merchant approval. Start at chatgpt.com/merchants and complete the merchant application. You cannot upload a feed until your account is active, so submit this first while you build the file in parallel.
Step 2: Receive your secure delivery endpoint
Once approved, OpenAI issues a secure SFTP endpoint and authentication credentials. This is where your feed lands — there is no public upload URL, and OpenAI does not pull the file from your site. Store the credentials the way you’d store any production secret.
Step 3: Build the feed to spec
Format your catalog according to OpenAI’s product feed specification. Get the required fields and the eligibility flags right before your first upload — a feed that validates but mislabels eligibility simply won’t surface where you expect.
Step 4: Push, then keep it fresh
Upload the file to your SFTP endpoint. OpenAI’s overview recommends keeping the same filename on every update and overwriting it with the latest snapshot, rather than creating a new file each run, and refreshing full snapshots at least daily. For fast-moving catalogs, third-party feed platforms note OpenAI’s spec is built to accept updates as often as every ~15 minutes so price and stock stay near real time.
What file formats does the ChatGPT product feed accept?
Per OpenAI’s file-upload overview, the supported formats are:
- Parquet — preferred, ideally with zstd compression
- jsonl.gz — gzip-compressed JSON Lines
- csv.gz — gzip-compressed CSV
- tsv.gz — gzip-compressed TSV
All files must be UTF-8 encoded. You’ll still see older third-party guides list “CSV, TSV, XML, or JSON” as the accepted set — that traces to the initial spec announcement. Build to the current overview above: Parquet or compressed JSONL is the cleanest choice for catalogs with variants, because nested fields avoid CSV escaping headaches.
Which fields are required in the feed?
OpenAI’s product spec defines these as the mandatory fields for each item:
item_id— unique merchant product ID per variant (max 100 chars)title— product title (max 150 chars)description— full description (max 5,000 chars)url— product detail page URL that resolves with HTTP 200brand— product brand (max 70 chars)image_url— main product image URLprice— regular price, including the ISO 4217 currency codeavailability— one ofin_stock,out_of_stock,pre_order,backorder,unknownseller_name— seller name (max 70 chars)seller_url— seller page (HTTPS preferred)target_countries— ISO 3166-1 alpha-2 country codesstore_country— ISO 3166-1 alpha-2 store country
The two eligibility flags that decide where products appear
OpenAI requires two boolean flags that most teams overlook:
is_eligible_search— whether the product can surface in ChatGPT search results.is_eligible_checkout— whether the product can be purchased directly inside ChatGPT. This requiresis_eligible_search=true.
If is_eligible_search is false, the item is effectively invisible to ChatGPT shopping no matter how complete the rest of the row is. Audit these flags before blaming the feed for missing products.
Why does robots.txt and OAI-SearchBot matter?
The feed governs structured product data, but ChatGPT also surfaces sites through its search crawler, OAI-SearchBot. Per OpenAI’s crawler documentation, OAI-SearchBot is used to surface websites in ChatGPT’s search features; sites that block it won’t appear in those results. If your robots.txt disallows OAI-SearchBot, you’re fighting your own feed.
Allow it explicitly:
User-agent: OAI-SearchBot→Disallow:(empty = full access)
OpenAI notes robots.txt changes can take roughly 24 hours to take effect, so make this change before you go live and verify it. Note these are distinct crawlers: GPTBot is for model training (block it if you don’t want training use — it does not affect shopping visibility), while OAI-SearchBot powers search. Don’t block the wrong one.
Pre-flight checklist before your first upload
- Merchant account approved at chatgpt.com/merchants and SFTP credentials in hand
- Feed file in a supported format (Parquet preferred; or jsonl.gz / csv.gz / tsv.gz), UTF-8 encoded
- All required fields populated on every row;
urlvalues return HTTP 200 priceincludes ISO 4217 currency;availabilityuses a valid enum valueis_eligible_searchset correctly;is_eligible_checkoutonly true whereis_eligible_search=truetarget_countriesandstore_countryuse ISO 3166-1 alpha-2 codes- Stable filename chosen so each refresh overwrites the prior snapshot
- Refresh schedule set (daily minimum; tighter if price/stock move fast)
robots.txtallows OAI-SearchBot — verified live, with 24h lead time
Where Frostbite fits
Getting shoppable is the mechanical part. Getting recommended — clean product schema, descriptions that answer real buyer questions, and authority signals AI engines trust — is the ongoing work. Frostbite helps businesses of every size with ecommerce SEO and AI-answer visibility across ChatGPT, Google AI Overviews, and other generative engines. Questions on feed setup or AI shopping strategy: info@frostbitemarketing.com.
Frequently asked questions
Do I need an approved merchant account to submit a ChatGPT product feed?
Yes. Feed submission is only available after your merchant account is active. Apply at chatgpt.com/merchants first; once approved, OpenAI gives you a secure SFTP endpoint and credentials to push your feed to.
What file formats does OpenAI’s product feed accept?
Per OpenAI’s file-upload overview, Parquet (preferred, ideally with zstd compression) plus gzip-compressed JSON Lines (jsonl.gz), CSV (csv.gz), and TSV (tsv.gz). All files must be UTF-8 encoded. Older third-party guides citing ‘CSV, TSV, XML, or JSON’ reflect the initial spec announcement — build to the current overview.
How often can I refresh a ChatGPT product feed?
OpenAI recommends refreshing full snapshots at least daily and overwriting the same filename each run. The spec is built to accept much more frequent updates — feed platforms note as often as roughly every 15 minutes — so price, inventory, and availability stay near real time for fast-moving catalogs.
What are the required fields in a ChatGPT product feed?
OpenAI’s product spec requires item_id, title, description, url, brand, image_url, price (with ISO 4217 currency), availability (a valid enum), seller_name, seller_url, target_countries, and store_country — plus the boolean flags is_eligible_search and is_eligible_checkout that control where each product can appear.
Does OAI-SearchBot need to be allowed in robots.txt for ChatGPT shopping?
Yes. OAI-SearchBot surfaces sites in ChatGPT’s search features; if your robots.txt blocks it, your content can be excluded from those results even with a clean feed. Allow it with ‘User-agent: OAI-SearchBot’ and an empty ‘Disallow:’. Changes can take about 24 hours to take effect.
What’s the difference between is_eligible_search and is_eligible_checkout?
is_eligible_search controls whether a product can appear in ChatGPT search results; is_eligible_checkout controls whether it can be purchased directly inside ChatGPT and requires is_eligible_search to be true. If is_eligible_search is false, the product is effectively invisible to ChatGPT shopping regardless of the other fields.