> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a white-label ChatGPT app

> Review your listing, upload your icons, and hand off the submission bundle for the ChatGPT app OpenAI's App Store lists for your storefront.

This is the seller-facing walkthrough for the **ChatGPT app** block on the
[Branding & distribution Page](/v2/setup/seller-pages#branding-distribution-the-seller-ui-page).
It covers everything you do on this platform to prepare a customer-branded
ChatGPT app: listing metadata, a dedicated hostname, ChatGPT app verification,
and the submission bundle. It does not cover OpenAI's own review process,
which happens entirely on OpenAI's side — see
[Understand the white-label boundary](/v2/reference/white-label-chatgpt-app#understand-the-white-label-boundary)
for what Interchange can and cannot generate on your behalf, and
[Create a white-label ChatGPT app](/v2/reference/white-label-chatgpt-app) for
the developer-mode testing and submission-review steps that happen in ChatGPT
and OpenAI's portal.

This replaced the **Storefront** and **Discovery & distribution** tabs in
Account Settings (AI-7225/AI-7434) — everything those tabs did for the ChatGPT
app lives here now. Every step below is something you do directly on the
Page; the app-only operations backing each step are never exposed to model
context, so Murph cannot run them for you — but Murph can open the Page and
guide you through each step conversationally.

## What the ChatGPT app is

A ChatGPT app is a customer-branded MCP connection OpenAI's App Store lists
separately from the shared Interchange listing. Effectively, it is another
place that shows facts your listing already holds — name, subtitle,
description, and website URL — plus a support, privacy, and terms of service
URL your listing also carries. The only things unique to this channel are the
two icon sizes OpenAI requires, its own verification token, an OpenAI
app-store category (OpenAI's own taxonomy — this platform starts you on
Business, but you choose and approve the value that actually applies to your
app), and its own dedicated hostname — see
[Point a hostname at your ChatGPT app](#point-a-hostname-at-your-chatgpt-app)
below for why that hostname is not shared with your storefront's other
channels.

## 1. Review your ChatGPT app listing

The ChatGPT app section of the Page is a compact status row (a readiness
chip, plus a hint that you can ask Murph to walk you through the rest). A
collapsed **Preview what ChatGPT shows** disclosure holds the ChatGPT app's
listing read-only: name, subtitle, description, and
website/support/privacy/terms URLs, all projected from your listing above on
the same Page — there is no separate edit link, since it is the same content
you already reviewed at the top. If OpenAI's shorter limits (a 30-character
subtitle, a 1,000-character description) are tighter than your listing's own
caps, the disclosure shows the shortened value it will submit, marked so you
can tell it was shortened. Your storefront name is different: it is never
shortened automatically, since silently cutting off a name would mangle your
brand. If it's longer than OpenAI's 50-character cap, the preflight checklist
blocks submission with an **App name length** item until you shorten your
storefront name on your listing.

Below the row, choose your OpenAI app-store **category** — the one
channel-unique input left. The category starts on Business, but every app
owner must supply or explicitly approve the value that actually describes
their app before submitting — Business is only the approved value for
Scope3's own Interchange app, not a default OpenAI expects from every
submitter. The Page saves this (backed by the app-only
`save_chatgpt_app_listing` operation).

Your 256 × 256 directory icon and 48 × 48 composer icon are generated
automatically from your brand.json logo — there is nothing to upload. If
your storefront has no logo in brand.json yet, add one there; the Page
picks it up the next time you publish, and the preflight checklist names
this as the reason the icons aren't ready yet.

After you've read the projected name, subtitle, description, and links,
click **Mark listing reviewed** (backed by the app-only
`approve_chatgpt_app_listing` operation) to record your approval for
exactly what's on screen — the Page sends along a fingerprint of that
specific snapshot, and the operation checks it against your listing's
current state before recording anything. If your listing changed
between when the Page loaded and when you click — someone else edited it,
or you had it open in two tabs — the approval is rejected instead of
silently applying to the newer, unreviewed values; refresh the Page and
review the current values again. Editing your listing after a
successful approval also clears it, so you'll see the preflight checklist
ask you to review and confirm again before your next submission. If your
ChatGPT app previously had its own subtitle, description, or policy URL
that no longer matches your listing, the checklist also flags a
reconciliation: update your listing to match, or confirm your
listing's current value is correct. If you edit that same field on your
listing again afterward, this flag returns until you reconcile it once
more.

## 2. Point a hostname at your ChatGPT app

The ChatGPT app has its own dedicated hostname, serving its MCP endpoint —
a separate record from your storefront's own public listing domain (the one
entered at the top of Distribution, next to the Interchange/Public choice).
Configuring one does not configure the other; `save_chatgpt_app_hostname`
never touches the public listing domain. It is not shown by default: it lives behind an
**Advanced — serve on your own domain** disclosure inside this ChatGPT app
section — that is its one home on the Page, so a hostname you type there is
never in danger of disagreeing with a second copy of the same field. Most
sellers never open it. Enter your chosen hostname and save it
(backed by `save_chatgpt_app_hostname`). Replacing an already-configured
hostname resets its DNS/TLS/verification state, since a new hostname starts
unverified; the Page asks you to confirm before doing this.

The Page shows the two DNS records to add at your DNS provider:

* a **CNAME** record pointing your hostname at Interchange's routing target; and
* a **TXT** record proving ownership of the hostname before activation.

Once both records are live (allow time for DNS propagation), click
**Verify & activate** to confirm DNS/TLS ownership and activate the hostname
(backed by `activate_chatgpt_app_hostname`). The Page shows the hostname's
status as it moves from pending to active.

## 3. Build the ChatGPT app section, then publish its verification token

Publish the ChatGPT app verification token after your listing and hostname
are in place — this token verifies the ChatGPT app's own public URL, not
your storefront's discovery page, and it is a separate token from your
storefront's own Discovery distribution verification. Set it in the ChatGPT
app verification block (backed by `save_chatgpt_app_verification_token`);
use **Check status** to re-check it on demand (backed by
`probe_chatgpt_app_verification_token`). This only confirms that your public
URL returns the exact saved token — OpenAI performs its own domain
verification separately, on its own timeline.

## 4. Download the submission bundle

Once your listing is saved, your hostname is active, and your token is
verified, the Page's **Download bundle** button unlocks (backed by the
submission-bundle link `get_chatgpt_app_config` returns). The bundle
packages the current listing, tool metadata, your brand.json-generated
icons, and reviewer guidance into the file OpenAI's submission portal
expects. A bundle generated before a later listing, hostname, or logo
change is marked stale; regenerate it before submitting.

## 5. Request reviewer access

After your storefront listing is Public, the **Reviewer sandbox account**
control appears when your Listing + Distribution package includes the
customer-branded AdCP, customer-branded ChatGPT app, organization advertiser
lifecycle, and public listing distribution entitlements. Choose **I want
ChatGPT** to request a bounded reviewer environment owned by this storefront.
The request does not expose a credential in the Page. After operator activation,
the storefront contains a no-spend System advertiser and OpenAI receives one
advertiser-scoped, read-only buyer credential through the approved secret
handoff.

The Page gets this state from `get_chatgpt_app_config`:

* `reviewerSandboxAvailable` is `true` only while the Public listing and full
  entitlement bundle permit a new request.
* `reviewerSandboxGrantStatus` is `loaded` when the account-owned grant lookup
  succeeded and `unavailable` when the Page cannot safely determine its current
  state. While unavailable, request and revoke actions remain disabled until a
  refresh succeeds.

Requested, provisioning, active, failed, revoked, and expired states appear on
the same control. If the storefront later becomes ineligible for a new request,
an existing grant remains visible and can still be revoked. Choose **Revoke
reviewer access** as soon as OpenAI no longer needs it.

## 6. Manual preflight steps

Three steps on the Page's preflight checklist are marked **Manual** — they
need a human to look and confirm, not a system check:

* **Locale review.** Read the saved listing copy in each locale you support
  and confirm it reads correctly before submitting.
* **Media review.** Check that your directory and composer logos, plus any
  promotional screenshots, match the current listing.
* **Portal scan.** OpenAI's live tool/skill scan runs in their submission
  portal, not here — run it there and resolve anything it flags before you
  submit.

## 7. Submit on OpenAI's portal

Everything past this point happens on OpenAI's side, not on this platform.
Interchange cannot complete OpenAI's reviewer-identity verification,
policy attestations, review-video approval, or the live portal scan for you.
Follow [Create a white-label ChatGPT app](/v2/reference/white-label-chatgpt-app)
for the developer-mode testing steps and the exact submission-portal
checklist before you hand the bundle to OpenAI.
