Shopify Custom App vs Public App vs Private App
Three names, only two of them still in use. Here’s what each type is, when to pick which, and what to do if you’re still running a legacy Private app in 2026.
By Datora Team · Updated
TL;DR
| App type | 2026 status | Best for |
|---|---|---|
| Custom App | Recommended | Single-store work, agency clients, internal tools. |
| Public App | Active | SaaS distributed to many merchants via the App Store. |
| Private App | Deprecated | Nothing — replaced by Custom apps in 2022. |
What changed in 2022
For years Shopify had three app types: Public, Custom, and Private. Private apps were created from the store admin, generated a static API key + password pair, and didn’t need OAuth. They were the easiest path to a token for a non-developer.
In early 2022, Shopify deprecated Private apps. The “Apps” → “Develop apps” section in the store admin was removed for new merchants. The replacement is the Custom app — created through the Shopify Dev Dashboard, installed on a single store via Custom Distribution, and using the same OAuth flow as Public apps.
Existing Private app credentials issued before the deprecation still work, but you can’t mint new ones. If you’re reading old tutorials that tell you to “go to Apps, Develop apps, Create app” in the admin, those instructions are obsolete — you need the Dev Dashboard now.
Forum noise warning: Stack Overflow and the Shopify Community still have thousands of answers referring to “private apps”. Most of them are pre-2022. Treat any post that tells you to generate a token directly in the store admin as outdated.
Each type, in detail
Custom App
RecommendedSingle-store install, no app-store review. The default for in-house and agency work in 2026.
- Internal tools for one merchant
- Agency engagements with a single client
- Headless storefronts and middleware
- ERP / accounting / warehouse integrations
- One-off scripts that need an Admin API token
- SaaS distributed to many unrelated merchants
- Anything that needs to be in the Shopify App Store
Public App
ActiveListed in the Shopify App Store. Reviewed by Shopify. Multi-tenant.
- SaaS products you sell to many merchants
- Apps that need Shopify App Store listing for discovery
- Free apps that benefit from Shopify-driven distribution
- Quick internal tools
- Single-merchant work
- Anything you can't justify the multi-week review process for
Private App
DeprecatedLegacy app type, deprecated in early 2022. Created from inside the store admin.
- (Nothing — you cannot create new Private apps in 2026)
- New work — pick Custom or Public instead
Which type should you build?
A short decision tree:
Are you building for one specific merchant you have a relationship with? → Custom App.
Do you need a token for a one-off script or third-party integration on a single store? → Custom App.
Do you want to sell the same app to many unrelated merchants? → Public App.
Are you trying to maintain or extend a legacy Private app? → Migrate to a Custom App — you can’t create new Private apps and the existing ones are unmaintained.
The OAuth flow and Admin API calls are identical between Custom and Public apps — same headers, same endpoints, same scopes. Pick based on distribution and review needs, not technical capability.
Migrating from a legacy Private app
If you’re still running a Private app issued before early 2022, the credentials work but they’re a liability: there’s no way to rotate them through the admin UI, no way to add scopes without contacting Shopify support, and any new functionality on the Admin API targets OAuth-issued tokens. Migrate.
The migration is a one-time job:
- Create a new Custom App on the Shopify Dev Dashboard and request the same scopes the legacy Private app had.
- Run the OAuth flow once on the affected store to get a fresh Admin API access token. (You can use accesstokengen.com or do it manually — see the step-by-step guide.)
- Update your code to send the new token on the
X-Shopify-Access-Tokenheader. The endpoint URL doesn’t change. - Verify, then delete the old Private app from the store admin to revoke the legacy credentials.
The migration is mechanical — no behavior change in your app. Plan for an hour for a small integration; longer if you have many environments using the same legacy credentials.
Ready to create a Custom App?
The OAuth flow takes a few minutes end-to-end. Bring your Client ID and Secret from the Dev Dashboard, pick scopes, approve on Shopify, copy your token.
Frequently asked questions
What's the difference between a Shopify Custom App and a Public App?+
Custom apps are installed on one store at a time through Custom Distribution and don't require Shopify approval. Public apps are listed in the Shopify App Store, can be installed by any merchant, and require Shopify's review process before going live. Both use the same OAuth flow and the same Admin API; the difference is distribution and review.
Are Shopify Private Apps still available in 2026?+
No. Shopify deprecated Private apps in early 2022. The terminology and the in-admin creation flow are gone. Apps that were previously called Private apps are now called Custom apps and are created through the Shopify Dev Dashboard (dev.shopify.com). Existing legacy Private app credentials still work for tokens issued before the deprecation, but you can't create new ones.
Do I need a Shopify Partner account to build a Custom App?+
Yes — but the account is free and signing up takes a couple of minutes. You create Custom apps either through the Dev Dashboard at dev.shopify.com or through your Partner Dashboard. The store you install the app on must be one you own or have collaborator access to.
Should I build a Custom App or a Public App for one client?+
Custom App. Public apps add overhead — Shopify review, listing maintenance, billing integration, multi-tenant data handling — that you don't need for a single-store integration. Use Custom apps for in-house tools and one-off agency engagements. Switch to Public when you want multiple unrelated merchants to install the same code.
Can I convert a Custom App into a Public App later?+
Not directly — Shopify treats them as separate app records. In practice you create a new Public app, port your code over (the OAuth flow and Admin API calls are identical), submit for review, and have merchants install the new one. Plan for this from day one if you might go public later by keeping your code multi-tenant from the start.