# 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

# Paywalls & Flows

Create, preview, duplicate, and archive paywalls and flows for the selected app.

The **Paywalls & Flows** section shows the paywalls and flows created for the selected app. Use this page to create new paywalls or flows, open existing ones, preview them, duplicate them, or archive them.

![](https://claude-centralize-agent-preamble-superwall-docs.staffbar.workers.dev/docs/images/docs-paywalls-overview.png)

> **Note:** Campaign results are no longer viewed from this page. To review experiment performance, recent transactions, or paywall results, open the relevant [Campaign](/docs/dashboard/dashboard-campaigns/campaigns) instead.

## Browse paywalls and flows

Each card represents a paywall or flow in the selected app. The card shows its name, current status, last edited time, and a preview of the experience.

Use the status filters at the top of the page to narrow the grid:

| Filter   | Description                                                                         |
| -------- | ----------------------------------------------------------------------------------- |
| All      | Shows every paywall and flow for the selected app.                                  |
| Active   | Shows paywalls and flows currently attached to active campaign traffic.             |
| Inactive | Shows paywalls and flows that are not currently serving through an active campaign. |
| Archived | Shows paywalls and flows that have been archived.                                   |
| Search   | Finds paywalls and flows by name.                                                   |

> **Note:** Archived paywalls and flows can be restored at any point.

## Manage an existing paywall or flow

Below each card, you can:

* **Preview** the paywall or flow.
* **Duplicate** it to create a copy.
* **Archive** it when you no longer want it shown in the main grid.

Click the card itself to open it in the editor.

Once a paywall is open, you can also use [AI Chat Builder](/docs/dashboard/dashboard-creating-paywalls/paywall-editor-ai-chat) to build or refine the draft, or [Editor MCP](/docs/dashboard/dashboard-creating-paywalls/paywall-editor-mcp) to connect an external AI agent to the live editor session.

## Create a paywall or flow

Click **+ New** at the top-right of the page to open the creation menu:

![](https://claude-centralize-agent-preamble-superwall-docs.staffbar.workers.dev/docs/images/paywalls-new-menu.png)

The menu includes:

| Option             | What it does                                                        |
| ------------------ | ------------------------------------------------------------------- |
| Use Template       | Opens the template gallery so you can start from a prebuilt design. |
| New Paywall        | Creates a blank paywall.                                            |
| New Flow           | Creates a new flow for multi-step experiences.                      |
| Editor Docs        | Opens the editor documentation.                                     |
| Request a Template | Lets you ask the Superwall team for a template.                     |

For a walkthrough of the paywall editor, start with [Creating Paywalls](/docs/dashboard/dashboard-creating-paywalls/paywall-editor-overview#using-the-editor). For flows, start with [Getting Started with Flows](/docs/dashboard/dashboard-creating-flows/getting-started).

## View results in campaigns

Paywalls and flows are created here, but performance is reviewed in campaigns. Open the campaign that presents the paywall or flow, then use the campaign views to inspect audiences, experiments, transactions, and results.

For more, see [Campaigns](/docs/dashboard/dashboard-campaigns/campaigns), [Audiences](/docs/dashboard/dashboard-campaigns/campaigns-audience), and [Understanding Experiment Results](/docs/dashboard/dashboard-campaigns/campaigns-understanding-experiment-results).