Built for Shopify: the real requirements
Most write-ups on this topic quote numbers that don't appear anywhere in Shopify's documentation. Here are the actual criteria, with the actual thresholds, taken from Shopify's own achievement-criteria pages — plus what happens when you fail one.
Read this first
Several widely-circulated guides state that Built for Shopify requires "admin UI under 1 second on simulated 3G", "WCAG 2.1 AA compliance", or a "24-hour first-response SLA".
None of those are the documented criteria. The real performance bar is expressed as Core Web Vitals at the 75th percentile, and there is no documented WCAG or SLA threshold in the achievement criteria. If you build against those numbers you'll optimise for the wrong thing.
The prerequisites — you cannot even apply until these are met
These are evaluated automatically. The Apply button on your app's Distribution page stays inert until all three are satisfied:
| Criterion | The actual threshold |
|---|---|
| Minimum installs | 50 net installs from active shops on paid plans. Development stores don't count. |
| Minimum reviews | 5 reviews |
| Minimum rating | A recent-rating threshold Shopify doesn't publish numerically. Keep it high. |
| App Store compliance | Meets all distribution requirements — audited automatically when you apply |
| Partner standing | No active infractions against the Partner Program Agreement |
Performance — the numbers that actually matter
This is where most guides go wrong. The admin bar is Core Web Vitals at the 75th percentile, measured over a minimum of 100 calls in 28 days:
| Metric | Threshold (p75) | What it measures |
|---|---|---|
| LCP | ≤ 2.5 seconds | Largest Contentful Paint — when the main content appears |
| CLS | ≤ 0.1 | Cumulative Layout Shift — visual stability |
| INP | ≤ 200 milliseconds | Interaction to Next Paint — responsiveness |
Two more, if they apply to your app:
- Storefront: your app must not reduce the storefront Lighthouse performance score by more than 10 points.
- Checkout: a p95 of 500 ms or less with a 0.1% failure rate, assessed over at least 1,000 requests in 28 days. Apps with no checkout surface are exempt.
The architectural shortcut
The cheapest way to pass the storefront bar is to not load anything on the storefront. An app that renders from theme app extensions in Liquid, reading data already in the merchant's store, adds effectively zero to Lighthouse — there is no third-party script to measure. We build this way deliberately.
Integration requirements
- Embedded in the admin using the latest App Bridge, with the script loaded from Shopify's CDN in
<head>, and session-token authentication. - Primary workflows must be completable inside the Shopify admin.
- Sign-up uses Shopify credentials — no separate account wall.
- The app homepage shows setup status and performance metrics, not just a settings form.
- Online-store surfaces use theme app extensions, and the app must uninstall cleanly.
- No use of the Asset API to create, modify or delete theme files (narrow exceptions exist for page builders, backup and SEO tools).
The design gates reviewers actually check
These are manually reviewed, and they are specific. A polished-looking app still fails if it misses them:
s-app-navfor the app's navigation menu.- App Bridge Contextual Save Bar on forms — the native save bar, not your own button.
s-modalfor modals. A native browserconfirm()does not qualify.- Polaris patterns, consistent spacing and typography; responsive with no horizontal page scroll.
- An app name short enough not to truncate in the admin nav.
- Errors in red, placed in context, telling the merchant what to do next.
- Live previews for visual customisations.
The one that catches people out
Built for Shopify prohibits pressure tactics and review-begging — no countdown timers, no guilt language, no prompting for a review in exchange for anything. Several high-review apps in the store grew precisely by soliciting reviews at moments of support contact. That route is closed to anyone targeting this badge, so plan for slower, organic review velocity.
What happens when you fail
- Fail the same criterion three times in a row and your application is suspended — you cannot reapply for three months.
- Once granted, the status is monitored continuously and reviewed annually. A failure triggers an email and a 60-day window to fix it before the badge is removed.
- Regaining it is automatic — meet the criteria again and it returns. No reapplication.
Why it's worth the work
In our own competitive research across the size-chart category, the badge visibly outranked review volume: apps with around 30 reviews carrying the badge sat above a category incumbent with more than 1,000 reviews that lacked it. Merchants can also filter search results to Built for Shopify apps only.
Two smaller highlights — "Works with the latest themes" and "Use directly in the Shopify admin" — are granted automatically to any clean embedded app using theme app extensions, from day one. You don't apply for those.
Related: the metafield and metaobject traps behind a zero-JavaScript storefront surface, and how Managed Pricing plan detection works.
We build Shopify apps to this bar by default
We architect against these criteria from the first commit — theme app extension, zero external storefront scripts, contextual save bar, native modals — because retrofitting them later is the expensive path.
Book a call →