← All guides

Get your products into ChatGPT: the OpenAI product feed, step by step

6 September 2026 · 7 min read

A product feed in OpenAI’s product feed specification reaches ChatGPT in two ways. In OpenAI Ads Manager it makes products eligible for ads; during the beta, those products do not appear in organic ChatGPT conversations. For organic shopping results, merchants apply to OpenAI, and shopping in ChatGPT is currently live in the U.S. The specification has nine required fields, and items in Ads Manager expire after two weeks.

In ChatGPT, shoppers see products with images, prices and key details, and buy on the merchant’s own site or app. Product feeds, which merchants share with OpenAI, power how products appear in ChatGPT (new to feeds? Start with what a product feed is).

How it works: OpenAI's product feed

OpenAI publishes a product feed specification (the Agentic Commerce spec). For organic shopping results, onboarding product feeds in ChatGPT is currently available to approved partners, and access is by application. For stores on Shopify or Etsy, OpenAI says the catalog is already integrated and no application is required. In OpenAI Ads Manager, a feed is created under Tools → Feeds, with three ways to send products: a CSV or TXT upload, a hosted URL, or an SFTP connection. For SFTP, OpenAI's file upload overview names parquet as the preferred format, with jsonl.gz, csv.gz and tsv.gz also supported.

A hosted URL is imported once or daily, as set under Set import schedule; the default is Once. OpenAI processes every file in the SFTP root after uploads stop changing for a short time.

What the feed must contain

Nine fields are required for every product: item_id, title, description, url, brand, seller_name, image_url, availability (one of in_stock, out_of_stock, pre_order, backorder, unknown) and price in the form "79.99 EUR"; the spec says to aim for at most 150 characters in the title and 5,000 in the description. Variants carry a group_id linking them to the parent listing. is_eligible_search sets search eligibility and is true when omitted; is_eligible_checkout opts into checkout only when search eligibility is true and checkout is enabled for the integration, and is disabled when omitted. The nine required fields, and the optional fields for sale prices, images, variants and eligibility, are in the OpenAI product feed spec, field by field.

is_ads_eligible decides whether Ads can use a product. The spec says that when it is omitted or empty, Ads is disabled for the product unless a feed-level Ads default applies; feeds created in Ads Manager make products ads-eligible by default, unless a product is marked false. The flag is independent of search eligibility.

Submitting your catalog, step by step

1. Choose the route. ads.openai.com is OpenAI Ads, for ads in ChatGPT; after sign-up it leads into Ads Manager. chatgpt.com/merchants is a separate application to share product data and participate in shopping experiences in ChatGPT. The whole route, from the application to the daily upload, is in how to submit products to ChatGPT.

2. In Ads Manager, open Tools → Feeds → Create Feed and choose Upload CSV or TXT, Hosted URL or SFTP connection. For a hosted URL, enter the file’s address under File URL; Ads Manager previews the file and lists the columns it detected.

OpenAI Ads Manager, Add new product feed: the Display name field and How will you send products?, with Upload CSV or TXT, Hosted URL (selected) and SFTP connection.
Tools → Feeds → Create Feed in OpenAI Ads Manager (3 Oct 2026), with Hosted URL selected.
Connect your feed via URL, step 1 Enter file URL: the File URL field, optional HTTP Basic authentication with Username and Password, and the Connect button.
Step 1 of the hosted URL setup: File URL.
Step 2 Preview and verify file: the file URL, partly blurred, 3 sample rows, and the detected columns item_id, title, description, url, brand, seller_name, image_url, availability, price and is_ads_eligible.
Step 2 of the hosted URL setup: the preview lists the columns Ads Manager detected, here for a FeedRobin CSV link with its token blurred.

3. For a hosted URL, set Refresh frequency to Daily under Set import schedule; the default is Once.

Step 3 Set import schedule: the Refresh frequency list open, with Once (selected) and Daily.
Step 3 of the hosted URL setup: Refresh frequency offers Once, the default, and Daily.

Products expire after two weeks

In Ads Manager, items expire after two weeks. In the file upload route, a product missing from later processed snapshots is kept for up to 14 days, then removed.

OpenAI's Help Center recommends a hosted URL or automated SFTP uploads for that reason, and its file upload overview recommends full snapshots on a predictable cadence, at least daily, and moving to steady-state automation once validation is clean.

How FeedRobin handles it

Add the ChatGPT / OpenAI channel and FeedRobin renders your catalog with the field names of OpenAI's product feed spec, as JSONL and as CSV, from the same synced data as your Google and Meta feeds: availability mapped to OpenAI's values, prices written as an amount and a currency code, such as "79.99 EUR", and variants grouped under a shared group_id. Products without an image are left out of the file, and Validate now on the feed page shows how many and why. What changes between the Google format and OpenAI's is in reusing a Google Shopping feed for ChatGPT. The free feed check scores a feed URL or a Shopify store address, with no account; for a store address it does not run the barcode and identifier checks.

Every record also carries is_ads_eligible set to true, the value OpenAI's spec gives for products Ads should process. Variant rows carry listing_has_variations and a variant_dict with their option values, such as size or colour, when the store provides them.

Delivering the ChatGPT product feed to OpenAI

Hosted URL. Every feed has a link, and adding .csv to it serves the same feed as CSV. Copy the CSV link from the feed page, paste it in Ads Manager under Hosted URL → File URL, and set Refresh frequency to Daily. No username or password is needed.

Managed push. Enter the SFTP connection details OpenAI returns in the feed's Managed push section once, with their password or the private key for the SSH public key you sent OpenAI, and FeedRobin uploads the feed for you as a gzipped JSONL file. With a hosted URL, Ads Manager imports the file once or daily; managed push uploads every day at 04:15 UTC, and on Growth, Scale and Agency in four more windows a day when products have changed since the last push.

Each upload is written under a temporary name and then renamed to the target file name, and the SFTP password or private key is stored encrypted. After three push runs in a row fail, FeedRobin emails the address on the account with the reason, at most once every seven days.

The Download button on the feed page gives the feed as a CSV file, for an upload by hand under Upload CSV or TXT.

Sources

OpenAI Developers, Agentic Commerce: Products, Agentic Commerce: Overview, Agentic Commerce: Get Started and Ads: Product Feeds; OpenAI Help Center, Create Campaigns from Product Feeds; OpenAI Ads, Advertise in ChatGPT; OpenAI, Power product discovery in ChatGPT.

Read next

How to submit products to ChatGPT: apply, build the feed, deliver it, keep it currentFrom catalogue to ChatGPT’s shopping answers: the merchant application, file upload or API, what the feed must contain, and keeping it current.
7 min
The OpenAI product feed spec, field by field: what ChatGPT reads from your catalogueThe nine required fields in OpenAI’s product feed, the optional ones that help products get found, price and availability formats, variants and flags.
8 min
ChatGPT Instant Checkout and the Agentic Commerce Protocol: what the product feed does, and what it doesn’tWhat the Agentic Commerce Protocol asks of merchants for the product feed and for Instant Checkout, who can apply, and what OpenAI says about checkout today.
6 min
Can you reuse a Google Shopping feed for ChatGPT? The field map and the four differencesOpenAI reads JSONL or CSV, not Google’s XML, and renames most fields. The full field map, and what to convert versus what to add.
6 min
Not sure what's wrong with your feed? Paste your feed URL and FeedRobin checks every product for missing barcodes, images, descriptions and more — free, no account needed.
Check my feed — it's free What it checks →