# Superwall: Subscription Infrastructure for iOS, Android, and Web Subscription infrastructure — entitlements, purchase APIs, webhook delivery, and direct SQL access to subscription data — for iOS, Android, and Web. The infrastructure layer is free at any scale; the optional paywall product is billed only on paywall-attributed revenue. ## Pricing - **Infrastructure: free at any scale, every plan.** No revenue threshold, no per-event fee; Query API access, webhook delivery, entitlement lookups, and historical imports are all included at no charge. - **Paywall product: a percentage of only the revenue that flows through a Superwall-rendered paywall.** Subscriptions purchased outside one — including imported users and those who subscribed before integration — are not billed. Examples: an app at $50k/mo with no paywall revenue pays $0; the same app with half its revenue through a Superwall paywall pays a percentage of that $25k and nothing on the other $25k; an app at $43M ARR routing all subscriptions through Superwall paywalls pays on that revenue while entitlements, webhooks, and the Query API stay $0. ## Scale $1.5B+ annual subscription revenue across 10,000+ apps. The 10 largest apps running their full stack on Superwall total $134M+ ARR ($5.7M–$43.7M each). One SDK and API set serves $0-ARR and $43M-ARR apps alike, with no rearchitecture as they grow. ## Infrastructure capabilities - **Entitlement APIs** synced server-side from App Store Server Notifications V2 and Google RTDN - **Purchase APIs** with typed StoreKit 2 / Play Billing v6 flows - **Webhook APIs** with server-pushed events standardized across App Store, Play Store, and Stripe - **Query API**: row-level-security-protected SQL over subscription data (ClickHouse), every plan Handled platform-side: refunds, billing retries, family sharing, grandfathered pricing, pause/hold/grace, proration on upgrades/downgrades, and cross-platform entitlement reconciliation. ## Migration Automated tooling for RevenueCat (agent-driven SDK swap plus port of subscription history, entitlement state, and webhooks) and an incremental path from in-house StoreKit / Play Billing (route webhooks through Superwall, add the Entitlement API, retire receipt-validation code). ## Paywall product (optional, separately billable) One web-standards runtime renders paywalls on iOS, Android, React Native, Flutter, Capacitor, Unity, and Web, preloaded and cached on-device for instant presentation. Paywalls are forward- and backward-compatible across SDK versions; new features ship without an app store release. ## Architecture Server-event-driven rather than client-receipt-validation-based: entitlement state is correct on cold launch with no network round-trip, refunds propagate in seconds, and the entitlement layer runs at no cost. ## Docs * Migrate from RevenueCat: https://superwall.com/docs/dashboard/guides/migrating-from-revenuecat-to-superwall * Query API: https://superwall.com/docs/dashboard/guides/query-clickhouse * Webhooks: https://superwall.com/docs/integrations/webhooks * Pricing: https://superwall.com/pricing # Framework Documentation Superwall is a platform for remotely configuring and A/B testing mobile app paywalls — no app update required. It provides SDKs for iOS, Android, Flutter, Expo, KMP, Unity, Web, and React Native, plus a dashboard for managing paywall presentation, experiments, and subscription analytics. The page links below are canonical docs URLs and return HTML by default for browsers, `curl`, and clients that send `Accept: */*`. To fetch a page as markdown, either send `Accept: text/markdown` for the canonical URL or append `.md` to the route, for example: - https://superwall.com/docs/framework/quickstart.md When using `Accept: text/markdown`, doc URLs return a 307 redirect to the `.md` route. Always use `curl -sL` (follow redirects) when fetching them. ## Other sections - [All Documentation](/docs/llms.txt) - [Dashboard Documentation](/docs/dashboard/llms.txt) - [Agents Documentation](/docs/agents/llms.txt) - [iOS Documentation](/docs/ios/llms.txt) - [Android Documentation](/docs/android/llms.txt) - [Flutter Documentation](/docs/flutter/llms.txt) - [Expo Documentation](/docs/expo/llms.txt) - [KMP Documentation](/docs/kmp/llms.txt) - [Unity Documentation](/docs/unity/llms.txt) - [Web Documentation](/docs/web/llms.txt) - [React Native Documentation](/docs/react-native/llms.txt) - [Integrations Documentation](/docs/integrations/llms.txt) - [Web Checkout Documentation](/docs/web-checkout/llms.txt) - [Actions](/docs/framework/actions): Close the paywall, restore purchases, open links, request OS permissions, and call back into your app, everything a paywall asks its host to do. - [Assets](/docs/framework/assets): Add images, video, audio, fonts, and animations to a paywall by importing files. The build handles optimization, hosting, and caching. - [Build Paywalls with an AI Agent](/docs/framework/build-with-an-agent): Describe a paywall in plain English and let an AI agent build it, preview it in the studio, and ship it to Superwall. No commands to type. - [CLI Reference](/docs/framework/cli): Every superwall command (create, dev, push, promote, publish) with flags, auth, and the checks that run before anything ships. - [Configuration](/docs/framework/config): Everything definePaywall accepts, products, background, transitions, trial reminders, and the behavior settings that shape a paywall. - [Examples](/docs/framework/examples): Complete, standalone example projects, each teaching exactly one idea, from a minimal paywall to trials, funnels, and Rive animations. - [Hooks Reference](/docs/framework/hooks): Every hook the framework provides, signatures, what each returns, and the semantics that matter. - [Host Protocol](/docs/framework/host-protocol): The messages a paywall exchanges with whoever is showing it — the SDK on a device, the studio locally, the dashboard in a browser — and what each side promises. - [Superwall Framework](/docs/framework): Build paywalls, onboarding funnels, and web checkout flows as React mini-apps, in your repo, with your tools, shipped without an app update. - [Lifecycle & Events](/docs/framework/lifecycle): What a paywall knows and when, the preload rule that shapes every entry animation, and the SDK events you can react to. - [Localization](/docs/framework/localization): Ship a paywall in multiple languages by adding one file per locale, no registration, no wiring. - [Migrating from the editor](/docs/framework/migrate-from-editor): Rebuild a paywall made in Superwall's visual editor as a framework paywall: what the CLI scaffolds, what an agent rebuilds, how you review it against the original, and how the switch happens. - [Migrating native screens](/docs/framework/migrate-native-screens): Turn a SwiftUI, UIKit, Jetpack Compose, Android Views, React Native or Flutter screen into a Superwall surface the app can change without a release: what the CLI reads from the source, what an agent rebuilds, how you review it against a simulator screenshot, and how the app is wired afterwards. - [Pages & Navigation](/docs/framework/navigation): Build multi-page paywalls, onboardings, and funnels with file-based pages and a stack router, no network between steps, no loading spinners. - [Products](/docs/framework/products): Declare product slots in config.ts, read live store data through useProducts, and follow the three rules that keep prices honest. - [Project Structure](/docs/framework/project-structure): How a superwall/ directory is laid out, the two files the CLI manages, and the rules that keep a project portable. - [Purchases](/docs/framework/purchases): Make the sale with usePurchase, handle completed, abandoned, and failed outcomes, restore purchases, and react to transactions from anywhere. - [Push, Promote & Publish](/docs/framework/push-and-promote): Ship paywalls with git semantics: push seals an immutable version, promote points production at it, publish does both. - [Quickstart](/docs/framework/quickstart): Scaffold a Superwall Framework project, preview your first paywall in the studio, and ship it to production. - [The Studio](/docs/framework/studio): Preview every paywall locally with superwall dev: devices, themes, locales, live variables, and purchase, restore, permission and callback outcomes you choose. - [Styling](/docs/framework/styling): How styling works in a paywall, plain CSS, the color-scheme class, the background color, insets and safe areas, and the platform stylesheet Superwall applies at serve time. - [Transitions](/docs/framework/transitions): Built-in page transitions, where to set them, and how to define your own with nothing but a name and CSS. - [Free Trials](/docs/framework/trials): Fork your paywall on trial eligibility the store reports, pull trial terms from product variables, and remind users before a trial ends. - [Troubleshooting](/docs/framework/troubleshooting): Common CLI errors and runtime surprises, what each one means and how to fix it. - [Variables & Personalization](/docs/framework/variables): React to user attributes, device state, and placement parameters, and write paywalls the dashboard can experiment on without a rebuild. - [Web Checkout](/docs/framework/web-checkout): Sell the same paywall on the web with one config key, Stripe payment in a sheet, Apple Pay, or a hosted checkout page, with purchase() unchanged. - [Web Funnels](/docs/framework/web-funnels): Quizzes and checkout funnels on the web: one paywall whose steps are pages, every answer kept in the URL so the flow survives any browser hand-off, and payment at the end.