How to Publish an App in ChatGPT (Now a Plugin) in 2026
ChatGPT apps now ship as plugins in one directory shared by ChatGPT and Codex. To get listed you need a verified OpenAI organization, a public HTTPS MCP server, four public policy URLs, eight test cases, a test account without MFA and a demo video. Review has no published timeline, and you cannot sell digital goods or subscriptions inside the plugin, so treat a listing as a distribution channel for a product you already sell elsewhere.

Key takeaways
- OpenAI's ChatGPT release notes for 9 July 2026 say it replaced the App Directory with the Plugin Directory, which ChatGPT and Codex now share. You submit a plugin package backed by an MCP server.
- Submission needs a verified individual or business identity, a stable public HTTPS MCP server with domain verification, website, support, privacy and terms URLs, five positive and three negative test cases, a test account with no MFA, and a video walkthrough.
- The most common rejections OpenAI lists are reviewers being unable to connect, failing test cases, undisclosed user data in responses, and tool annotations that do not match behaviour.
- OpenAI's guidelines ban selling digital products, subscriptions, tokens or credits in the plugin, and ban ads. Physical goods can use external checkout on your own domain.
- Our read: a listing is worth it if your product already solves a job people bring to ChatGPT and you monetise outside it. It is a weak bet as a standalone business.
On this page 20
- TL;DR
- What the ChatGPT directory is now
- Who can submit
- What you need before you submit
- Step by step: from server to published plugin
- What gets rejected
- Money: what you can and cannot sell
- Discovery: how people find your listing
- Apps SDK UI: do you need a widget?
- Is it worth it for an indie developer?
- Launch checklist
- How to promote your listing
- Frequently asked questions
- Are ChatGPT apps now called plugins?
- Does it cost anything to publish a plugin in ChatGPT?
- How long does ChatGPT plugin review take?
- Can I charge users inside a ChatGPT plugin?
- Do I need to build a custom UI for my ChatGPT plugin?
- Launch it on ZeroRaised too
- Sources
Short answer: To publish an app in ChatGPT today, you package it as a plugin backed by a public HTTPS MCP server, upload it in the OpenAI Platform dashboard under a verified identity, pass automated scans and a manual review, then press publish yourself. There is no fee listed, but you cannot sell digital goods or subscriptions inside it, so it works best as a free front door to a product you already charge for.
Every requirement below comes from OpenAI's own developer docs, release notes and help centre, checked on 14 Nov 2026. The advice in between is ours and is marked as such.
TL;DR#
- Apps became plugins. OpenAI's release notes for 9 July 2026 say: "We're also replacing the App Directory with the Plugin Directory. Existing app connections are unaffected" (ChatGPT release notes). ChatGPT and Codex "share one universal plugin directory" (OpenAI plugin architecture).
- Who can submit: organization owners, or members with the Apps Management Write permission, after individual or business verification (OpenAI submission docs).
- What you need: a stable public HTTPS MCP server, domain verification, website, support, privacy and terms URLs, five positive and three negative test cases, an MFA-free test account and a demo video.
- Review: no published timeline, one active review per plugin, and you choose when to publish after approval.
- Money: no digital goods, subscriptions, tokens, credits or ads inside the plugin (plugin guidelines). Physical goods go through external checkout on your domain.
- Our read: worth a week of work if ChatGPT users already ask for the job your product does. Not a business model on its own.
Disclosure: ZeroRaised publishes this guide and is a launch site for bootstrapped products. ZeroRaised has no commercial relationship with OpenAI and earns nothing if you publish a plugin. Facts come from the linked sources as checked on 14 Nov 2026.
What the ChatGPT directory is now#
The naming has changed within a year, which is why so many guides are out of date. OpenAI opened app submissions in December 2025, saying submissions would include "MCP connectivity details, testing guidelines, directory metadata, and country availability settings" (OpenAI announcement). Then, on 9 July 2026, OpenAI replaced the App Directory with the Plugin Directory and said existing app connections were unaffected (ChatGPT release notes). Apps still exist as the integrations that connect ChatGPT to outside services, and a plugin can include one or more apps, skills, or both (OpenAI Help).
OpenAI's developer docs now define plugins as "the packages people discover, install, share, and publish in ChatGPT and Codex." A plugin can hold skills (a folder with a SKILL.md file), an MCP server that exposes tools, and optional UI, which ChatGPT renders using the open MCP Apps UI standard (plugin architecture).
For an indie developer, one submission now reaches both ChatGPT and Codex users. New to the protocol? Read what Model Context Protocol is first. This post assumes you have a working server.
Who can submit#
From OpenAI's submission docs and review requirements:
- Role. Organization owners can submit. Other members need the Apps Management Write permission, which an owner grants through organization roles.
- Verification. You must complete individual or business verification for the name you publish under. OpenAI is blunt: "Publishing under an unverified individual or business name will result in rejection."
- Public intent. Only submit if the plugin should be public in the countries you pick. For private or workspace-only use, OpenAI points you to a custom MCP connection instead.
- Data residency. Projects with EU data residency cannot submit MCP plugins; you need a global-residency project.
What you need before you submit#
| Requirement | What OpenAI asks for |
|---|---|
| MCP server | Stable, public HTTPS endpoint, not a local or testing one. Only one server can be connected per plugin |
| Domain verification | Exact challenge token served as plain text at /.well-known/openai-apps-challenge on the MCP host or an eligible parent domain |
| Authentication | None, OAuth, or mixed. API-key and bearer-token flows are not supported in the portal |
| Listing metadata | displayName (up to 30 characters), shortDescription (up to 30), longDescription (up to 4,000), developerName (up to 80), category |
| Four public URLs | Website, support, privacy policy, terms of service, all HTTPS and identifying the same publisher |
| Icon | Square, at least 48x48 px, PNG, JPEG, WebP or SVG, up to 5 MiB |
| Test cases | Five positive cases (scenario, prompt, expected tools, expected result) and three negative cases (prompt where the plugin should not act, reason, expected fallback) |
| Test account | Dedicated account with sample data that works immediately: no MFA, email or SMS codes, magic links or private-network access |
| Video | Reviewer-accessible walkthrough showing the test cases, required for MCP review |
| Countries | publication.countries as uppercase codes such as US and GB |
| UI security | If the server returns UI, a content security policy listing the exact domains it fetches from |
Sources: submission docs, review requirements.
Two details catch people out. Reviewer credentials go in the dashboard's Review details, never the ZIP. And tool annotations come from your server: a written justification cannot override them, so fix, redeploy and rescan instead.
Step by step: from server to published plugin#
- Test it privately first. In ChatGPT Plugins, press the plus button, choose "Add custom MCP server", configure auth and select "Create as a plugin" (connect and test). A tunnel is fine for local testing, but it does not replace the public endpoint you need for submission.
- Set annotations honestly. Every tool needs explicit boolean
readOnlyHint,destructiveHintandopenWorldHintvalues. A tool that writes logs or triggers anything is not read-only (plugin guidelines). - Build the package. Include the MCP server in the first ZIP, because OpenAI says adding one to an existing skills-only plugin is not currently supported. Remove lifecycle hooks and app references before directory submission.
- Upload. In the Platform dashboard, go to Plugins, choose "Upload new or existing plugin", pick your verified identity and upload. Fix validation errors and re-upload.
- Connect and scan. Submit the server through "With MCP", serve the domain challenge token, complete auth and wait for the automated tool scan. Resolve every finding.
- Fill in review details. Test cases, test account, login steps, video URL and release notes. Save details.
- Submit for review and complete the policy attestations. Feedback arrives by email, and progress shows under Review status.
- Publish when you are ready. After approval you open the approved version and select "Publish plugin". OpenAI notes plugins appear in the directory only after approval and publication.
After that, OpenAI scans your hosted server every day, and eligible tool updates go live once automated checks pass. Metadata, assets or skills changes need a new ZIP and review (submission docs).
On timing, OpenAI says review times vary and asks you not to contact support for expedited review (review requirements). Only one review can be active per plugin, so batch your fixes.
What gets rejected#
OpenAI lists four common rejection reasons (review requirements):
- Reviewers cannot connect. Expired credentials, MFA, or a login that only works on your network.
- Test cases fail. Outputs that miss the expected result, broken UI states, or padded answers.
- Undisclosed user data. Personal data, internal IDs, logs or debug fields your privacy policy does not mention.
- Annotations that do not match behaviour.
The plugin guidelines add policy rejections: copycat or misleading designs, implying OpenAI endorsement, unofficial pass-through connectors, plugins that exist mainly to advertise, and trial or demo builds. Plugins must suit users aged 13 to 17, and restricted data such as card numbers, health information and government IDs is off limits.
Our read: before submitting, sign in from a fresh browser on a phone hotspot using only the test account and steps you will hand over.
Money: what you can and cannot sell#
This decides whether the effort pays off. The plugin guidelines say:
- No digital goods. "Selling digital products or services" is not allowed, including subscriptions, tokens and credits, directly or through freemium upsells.
- No upsell screens. Users may use features of an existing paid plan, but the plugin must not show plans, start subscriptions or promote upgrades. You may explain plan requirements and link to informational pages, not checkout.
- No ads. Plugins "must not serve advertisements".
- Parity. No worse version of a feature than your own service offers, and no ChatGPT-specific surcharges.
- Physical goods only for commerce. Purchases happen on your own domain. OpenAI's checkout docs call external checkout "recommended" and say "current approval is limited to plugins for physical goods purchases"; the in-ChatGPT payment sheet is in private beta for select marketplaces (OpenAI checkout docs).
So for a SaaS, the user signs in through OAuth and the plugin unlocks what their plan includes, while pricing and billing live on your site. Our guide to monetizing an MCP server covers billing patterns.
Discovery: how people find your listing#
OpenAI says "ChatGPT and Codex decide when to call your tool based on the metadata you provide," and recommends treating metadata "like product copy" (Optimize Metadata). Its concrete advice:
- Name tools domain-plus-action, such as
calendar.create_event. - Start descriptions with "Use this when..." and state when not to use the tool.
- Keep a golden prompt set of direct, indirect and negative prompts, and track precision and recall each time you change metadata.
The guidelines also say plugins with strong utility and high user satisfaction may qualify for "enhanced distribution opportunities", such as directory placement or proactive suggestions. There is no published process for being featured, so plan as if you will not be.
Apps SDK UI: do you need a widget?#
UI is optional. If your tool returns something people need to look at or click (a list of options, a map, a chart), an MCP server can return a UI resource. OpenAI's UI guidelines define inline cards (up to two actions), inline carousels (3 to 8 items, each with an image), fullscreen and picture-in-picture modes, and offer an optional @openai/apps-sdk-ui library with Tailwind foundations and accessible components.
The rules lean minimal: system fonts only, no logo in the response (ChatGPT adds it), no nested scrolling or tabs in cards. Our read: ship text-only tools first, then add one inline card for the result users ask about most.
Is it worth it for an indie developer?#
Our read, not OpenAI's: it depends on what job your product does and how you get paid.
| Your situation | Our take |
|---|---|
| SaaS with paid plans and a job people already ask ChatGPT about (data lookup, booking, reports) | Worth it. The plugin is a free acquisition channel and plan features unlock after sign-in |
| E-commerce or physical goods | Worth testing, using external checkout on your domain |
| Product whose value is credits, tokens or a digital subscription sold inside the plugin | Not allowed by the guidelines |
| Thin wrapper over something ChatGPT already does | Likely rejected: guidelines want functionality built-in capabilities do not provide |
| Pre-product idea with no server yet | Too early. Validate the product first |
The cost is mostly time: a server you keep online, OAuth that works for strangers, demo data, a video and the review loop. The upside is a directory listing plus the chance the model calls your tool from an ordinary prompt. The risk is platform dependence: OpenAI renamed the whole surface in July 2026, so keep accounts, email and billing on your own domain.
Build order we would follow: core product and pricing on your own site, then two or three read-only tools, then OAuth so plan features unlock, then private testing with golden prompts, then one write tool, then submission. Add UI last.
Launch checklist#
- Verified individual or business identity matching your public URLs
- Production MCP server on public HTTPS, challenge token served
- Explicit annotations on every tool, checked against real behaviour
- Privacy policy that discloses every personal field your tools return
- Website, support and terms pages live (no placeholders)
- Five positive and three negative test cases, each run with the test account
- MFA-free test account with sample data, tested from outside your network
- Video walkthrough of the test cases
- Names and descriptions within the character limits, plus up to three default prompts
- Countries chosen
- No plan, upgrade or checkout screens inside the plugin
How to promote your listing#
Approval is not distribution. Treat the listing as one more launch:
- Link it from your product. Add a "Use in ChatGPT" link to your pricing page, docs and onboarding emails. Listings live under chatgpt.com/plugins.
- Show the prompt. A short clip of a real prompt and result beats a feature list. Reuse your review video.
- Announce it where users are. Changelog, newsletter, communities. See building distribution for a bootstrapped SaaS for the long game.
- Relaunch it as news. Pair it with our guide to launching a bootstrapped app.
- Watch the metadata. OpenAI suggests reviewing tool-call analytics weekly; more wrong-tool calls means your descriptions have drifted.
Frequently asked questions#
Are ChatGPT apps now called plugins?#
Yes. OpenAI's ChatGPT release notes for July 9, 2026 say it replaced the App Directory with the Plugin Directory, and OpenAI's developer docs now describe submissions as plugins. Apps remain the integrations that connect ChatGPT or Codex to external data and actions, and existing app connections were not affected.
Does it cost anything to publish a plugin in ChatGPT?#
OpenAI's submission and review docs do not list a submission fee. Your real costs are hosting a public HTTPS MCP server, keeping a test account and demo data live, and the time spent on test cases, a video and review rounds.
How long does ChatGPT plugin review take?#
OpenAI does not publish a timeline. Its review page says review times vary and asks developers not to contact support to request expedited review. After publication, tool changes on your MCP server go through automated checks rather than a full manual review.
Can I charge users inside a ChatGPT plugin?#
Not for digital goods. OpenAI's plugin guidelines say selling digital products or services, including subscriptions, tokens and credits, is not allowed, and plugins must not show plans or promote upgrades. Users can use features of a paid plan they already have, and physical goods can be sold through external checkout on your own domain.
Do I need to build a custom UI for my ChatGPT plugin?#
No. OpenAI describes UI as optional: an MCP server can return a UI resource when visual interaction helps. If you add one, OpenAI's UI guidelines cover inline cards, carousels, fullscreen and picture-in-picture, and offer an optional @openai/apps-sdk-ui component library.
Launch it on ZeroRaised too#
A ChatGPT listing is one channel. If your product is built without institutional VC, submit it to ZeroRaised for free and get it in front of makers and early adopters. For more distribution guides like this one, join the ZeroRaised newsletter.
Sources#
- OpenAI: Upload and submit your plugin, last checked 14 Nov 2026
- OpenAI: Plugin guidelines, last checked 14 Nov 2026
- OpenAI: Remote MCP server review requirements, last checked 14 Nov 2026
- OpenAI: Checkout API reference (monetization), last checked 14 Nov 2026
- OpenAI: Plugin architecture, last checked 14 Nov 2026
- OpenAI: Connect and test your plugin, last checked 14 Nov 2026
- OpenAI: Optimize Metadata, last checked 14 Nov 2026
- OpenAI: UI guidelines, last checked 14 Nov 2026
- OpenAI Help: ChatGPT release notes (9 July 2026 entry), last checked 14 Nov 2026
- OpenAI Help: Connected apps in ChatGPT, last checked 14 Nov 2026
- OpenAI: Developers can now submit apps to ChatGPT, last checked 14 Nov 2026
Frequently asked questions
Are ChatGPT apps now called plugins?
Yes. OpenAI's ChatGPT release notes for July 9, 2026 say it replaced the App Directory with the Plugin Directory, and OpenAI's developer docs now describe submissions as plugins. Apps remain the integrations that connect ChatGPT or Codex to external data and actions, and existing app connections were not affected.
Does it cost anything to publish a plugin in ChatGPT?
OpenAI's submission and review docs do not list a submission fee. Your real costs are hosting a public HTTPS MCP server, keeping a test account and demo data live, and the time spent on test cases, a video and review rounds.
How long does ChatGPT plugin review take?
OpenAI does not publish a timeline. Its review page says review times vary and asks developers not to contact support to request expedited review. After publication, tool changes on your MCP server go through automated checks rather than a full manual review.
Can I charge users inside a ChatGPT plugin?
Not for digital goods. OpenAI's plugin guidelines say selling digital products or services, including subscriptions, tokens and credits, is not allowed, and plugins must not show plans or promote upgrades. Users can use features of a paid plan they already have, and physical goods can be sold through external checkout on your own domain.
Do I need to build a custom UI for my ChatGPT plugin?
No. OpenAI describes UI as optional: an MCP server can return a UI resource when visual interaction helps. If you add one, OpenAI's UI guidelines cover inline cards, carousels, fullscreen and picture-in-picture, and offer an optional @openai/apps-sdk-ui component library.