This ChatGPT shopping feed setup guide covers everything you need. ChatGPT Shopping is now live for US users.

This guide walks you through exactly how to do it — from merchant portal registration to feed format, required fields, validation phases, and checkout integration. We've based this on the official OpenAI Commerce API documentation and our hands-on experience setting up feeds for clients.

Before you start: You need to be approved on the ChatGPT merchant portal at chatgpt.com/merchants. Feed submission only becomes available after your merchant account is active. If you haven't applied yet, start there first.

Step 1: Register on the ChatGPT Merchant Portal

Everything begins at chatgpt.com/merchants. This is OpenAI's dedicated portal for businesses wanting to appear in ChatGPT Shopping results. The application process involves:

Shopify and Etsy merchants have a streamlined path — both platforms are pre-qualified with OpenAI's infrastructure, which means your merchant setup and checkout integration are significantly simplified. Non-Shopify merchants will need to complete a more involved technical integration, including the ACP checkout endpoints covered in Step 5.

UK merchants: Apply now even though the UK consumer rollout is Q1–Q2 2026. Merchant applications are open, and early applicants will be first in the queue when UK Instant Checkout goes live. Being established in the portal before launch is a meaningful competitive advantage.

Step 2: Choose Your Feed Format

ChatGPT Shopping accepts product data in several file formats. OpenAI's preference is Parquet — it's faster to process, more compression-efficient, and better suited to large catalogs. However, the compressed alternatives work equally well for most merchants.

Parquet
With ztsd compression
Preferred
jsonl.gz
Compressed JSON Lines
csv.gz
Compressed CSV
tsv.gz
Compressed TSV

All formats must use UTF-8 character encoding. Files are delivered to OpenAI via SFTP push — you push to their endpoint on a scheduled basis, overwriting the previous file rather than creating new filenames each time. Keep shard file names stable across updates.

File size limits: Maximum 500,000 items per shard file. Target individual files under ~500MB. If your catalog is larger, split it into multiple consistent shard files.

Step 3: Build Your Product Feed — Required Fields

The feed structure has two layers: a file header that identifies your account and target market, and the product records themselves. Both have required fields that must be present or your feed will be rejected.

File Header Fields

Field Type Status Example
feed_id string Required feed_8f3K2x
account_id string Required acct_7F3K2x
target_merchant string Required merch_123
target_country string Required GB (ISO 3166-1)

Product Object Fields

Each product record contains two required fields at the top level, and one of them — variants — contains its own set of required fields.

Field Type Status Notes
id string Required Must be stable and persistent across all feed updates — never change this
variants Variant[] Required Array of purchasable configurations (sizes, colours, etc.)
title string Recommended Product name — critical for AI intent matching
description object Recommended Plain text, HTML, or Markdown — include at least one
url URI Recommended Canonical product page URL
media Media[] Recommended Product images — first entry treated as primary

Variant Object Fields

Every product must have at least one variant. Even if you sell a single-SKU product with no options, it still needs a variant record.

Field Type Status Notes
id string Required Must remain stable across all updates
title string Required e.g. "Black / Size 10" or "Default"
price Price object Recommended amount (ISO 4217 minor units) + currency code
availability object Recommended available (bool) + status: in_stock / backorder / preorder / out_of_stock / discontinued
barcodes Barcode[] Optional GTIN, EAN, UPC — improves matching accuracy significantly
variant_options VariantOption[] Optional name/value pairs for dimensions (color, size, material)
categories Category[] Optional Product taxonomy — aids intent classification
condition string[] Optional ["new"] or ["secondhand"]
seller Seller object Optional Policy links: privacy_policy, refund_policy, shipping_policy, terms_of_service
media Media[] Optional Variant-specific images (e.g. showing the blue colourway)

Critical rule on IDs: Both product id and variant id must never change once submitted. ChatGPT's system tracks products by these identifiers across feed updates. Changing them causes the product to be treated as a new item — losing any ranking history and potentially causing duplicate listings.

Step 4: An Example Feed Record (JSONL)

Here's what a complete single-product JSONL record looks like with all recommended fields populated:

// Header row (first line of file)
{
  "feed_id": "feed_abc123",
  "account_id": "acct_xyz789",
  "target_merchant": "merch_456",
  "target_country": "GB"
}

// Product record
{
  "id": "prod_ergoflex-500",
  "title": "ErgoFlex Pro 500 Ergonomic Office Chair",
  "description": {
    "plain": "Fully adjustable lumbar support, breathable mesh back, 5-year warranty."
  },
  "url": "https://yourstore.co.uk/products/ergoflex-pro-500",
  "media": [
    {
      "type": "image",
      "url": "https://yourstore.co.uk/images/ergoflex-500-main.jpg",
      "alt_text": "ErgoFlex Pro 500 in black, front view",
      "width": 1200,
      "height": 1200
    }
  ],
  "variants": [
    {
      "id": "var_ergoflex-500-black",
      "title": "Black",
      "price": { "amount": 34900, "currency": "GBP" },
      "availability": { "available": true, "status": "in_stock" },
      "barcodes": [{ "type": "gtin", "value": "5055999001234" }],
      "condition": ["new"],
      "variant_options": [{ "name": "colour", "value": "Black" }]
    }
  ]
}

Price format: The amount field uses ISO 4217 minor units. For GBP, that means pence — so £349.00 is submitted as 34900, not 349 or 349.00. Getting this wrong is one of the most common feed validation failures.

Step 5: Submit and Validate Your Feed

OpenAI follows a three-phase rollout approach for new merchant feeds. Don't try to push your full catalog on day one — start small, validate, then scale.

1

Phase 1 — Validation (~100 items)

Submit a small sample including all required fields plus your most popular products. Review validation errors from the feed processor before proceeding. Fix any missing fields, malformed values, or encoding issues at this stage — they're much easier to resolve in a 100-item file than a 50,000-item one.

2

Phase 2 — QA (Full snapshot, manual review)

Once validation passes, submit a complete catalog snapshot. OpenAI's team reviews the first full submission for quality. Products may start appearing in limited Shopping results at this stage. Check that prices, images, availability statuses, and descriptions are all rendering correctly.

3

Phase 3 — Production (Automated steady-state)

Switch to automated daily (or more frequent) feed pushes via SFTP. At this point you're in production — your products are eligible to appear in ChatGPT Shopping results. Maintain a 15-minute refresh pipeline for inventory and price changes to keep your data accurate and avoid suppression due to stale availability signals.

Step 6: Configure Checkout — ACP + Stripe Integration

Getting your products listed is only half the job. To unlock the Instant Checkout buy button — where users can purchase directly inside ChatGPT without visiting your website — you need to implement the Agentic Commerce Protocol (ACP).

ACP is an open-source infrastructure built jointly by OpenAI and Stripe. It handles the secure transmission of order data between ChatGPT and your merchant backend. The endpoints you need to implement are:

Shopify merchants: Skip most of this. Shopify's native OpenAI integration handles ACP automatically. Your checkout endpoints are pre-configured — you just need to enable the ChatGPT sales channel in your Shopify admin and connect your Stripe account.

For non-Shopify merchants, implementation effort depends on your existing tech stack. If you're already using Stripe as your payment processor, the ACP integration is relatively lightweight — OpenAI has published SDKs and reference implementations. If you're using a different payment provider, more custom work is required.

Payment security is handled via encrypted, scoped payment tokens. Each token is valid only for a specific merchant and a specific transaction amount — so there's no risk of tokens being reused or misapplied.

Step 7: Ongoing Optimisation — Don't Just Set and Forget

Getting your feed live is the start, not the finish. ChatGPT Shopping's ranking algorithm rewards products with consistently clean, detailed, up-to-date data. The merchants who see the strongest ongoing visibility are those who treat their feed as a live marketing asset, not a one-time technical task.

Key ongoing optimisation practices:

Common Feed Validation Errors to Avoid

Based on official OpenAI documentation and real-world submissions, these are the most frequent reasons feeds fail or products get suppressed:

How Long Does It Take to Appear in Results?

Timeline from application to live product visibility varies, but a typical progression looks like this:

This is why applying and submitting your feed before the UK consumer launch matters so much. Businesses that complete this process now will have 2–3 months of feed history and ranking data established by the time millions of UK consumers gain access to ChatGPT Shopping.

Need Help Setting Up Your Feed?

We handle the full process — merchant portal application, feed build in your required format, ACP checkout integration, and ongoing optimisation. Get your products in front of ChatGPT's 1 billion users before your competitors do.

View Our ChatGPT Shopping Service →