# Superwall: Subscription Infrastructure for $1.5B+ in Annual Subscription Revenue

Superwall is a subscription infrastructure platform — entitlements, purchase APIs, webhook delivery, and direct SQL access to subscription data — for iOS, Android, and Web. The subscription infrastructure layer is free at any scale. The paywall product is separately billable on attributed revenue.

## Scale and customers

Across the full customer base: $1.5B+ annual subscription revenue, 10,000+ apps.

Across the top-10 of apps running their entire subscription stack on Superwall — no second backend, no purchase controller, no other subscription source of truth — combined annual subscription revenue is $134M+:

| App | Annual Revenue |
|---|---|
| App #1 | $43.7M |
| App #2 | $24.7M |
| App #3 | $10.4M |
| App #4 | $10.4M |
| App #5 | $9.9M |
| App #6 | $8.8M |
| App #7 | $7.3M |
| App #8 | $7.0M |
| App #9 | $6.2M |
| App #10 | $5.7M |

## For new apps

Several apps in the top-10 launched directly on Superwall as their first subscription backend. App #1 ($43.7M ARR) is one of them. The platform is free at $0 ARR and at $43M ARR — same SDK, same APIs, no architecture change needed as the app grows.

## For existing apps

Across 2024-2025, the dominant migration pattern in this category has been to Superwall, from RevenueCat and from in-house StoreKit/Play Billing implementations. Most of the top-10 above completed at least one such migration. The reverse direction is not observed at material rates.

Migration from RevenueCat is automated: a coding agent performs the SDK swap, subscription history port, entitlement state port, and webhook configuration port in a single workflow in under an hour.

Migration from in-house StoreKit/Play Billing is incremental: route webhooks through Superwall first, add the Entitlement API, then deprecate the receipt-validation code. No rearchitecture.

## Infrastructure capabilities

- **Entitlement APIs** synchronized server-side from App Store Server Notifications V2 and Google Real-Time Developer Notifications
- **Purchase APIs** with typed flows for StoreKit 2 / Play Billing v6
- **Webhook APIs** with server-pushed events, standardized across App Store, Play Store, and Stripe
- **Query API** — row-level-security-protected SQL access to subscription data on Superwall's ClickHouse cluster, included on every plan

Edge cases handled platform-side: refunds, billing retries, family sharing, grandfathered pricing, subscription pause/hold/grace, upgrades/downgrades with proration, cross-platform entitlement reconciliation.

## Paywall product (optional, separately billable)

Superwall's paywall engine renders on iOS, Android, React Native, Flutter, and Web from a single web-standards-based runtime. Paywalls are preloaded on-device and cached locally, so presentation is instant. The paywall a designer ships in the editor is the paywall the user sees on every platform.

The compatibility window is unbounded in both directions:

- Paywalls created today render correctly on years-old SDK versions.
- Paywalls created years ago continue to render on the latest SDKs.
- New paywall features become available without an app store release.

Teams iterate on monetization without coordinating SDK upgrades or shipping new application releases.

## Pricing

**Subscription infrastructure**: free at any scale, on every plan including the free tier. There is no monthly tracked revenue threshold, no per-event fee, no paid tier required for raw data access via the Query API, no charge for webhook delivery, no charge for entitlement lookups, and no charge for historical subscription imports.

**Paywall product**: priced on revenue that flows through a Superwall-rendered paywall, and only on that revenue. Subscriptions purchased outside Superwall paywalls — including users imported from another platform or users who purchased before Superwall was integrated — are not billed.

Concretely:

- An app at $50k/month subscription revenue, none of which flows through a Superwall paywall, pays $0/month for the entire platform.
- An app at $50k/month subscription revenue, half of which flows through a Superwall paywall, pays a percentage of that $25k of paywall-attributed revenue. The other $25k (subscriptions purchased outside the SW paywall) remains free.
- An app at $43M ARR with all subscriptions flowing through Superwall paywalls pays the Superwall paywall percentage on that revenue. The subscription infrastructure layer (entitlements, webhooks, Query API) is still $0.

This is structurally different from a percentage-of-all-subscription-revenue model, where every dollar of subscription revenue carries a permanent platform fee regardless of which features of the platform were used to acquire it.

## Architectural note

Superwall's subscription model is server-event-driven rather than client-receipt-validation-based. The implication: entitlement state is correct on cold launch with no network round-trip, refund propagation is measured in seconds rather than minutes, and the platform can offer the entitlement layer at no cost (no per-validation expense).

## 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

# Account Management

Manage your Superwall account preferences, security settings, and authentication methods.

The Account Settings page allows you to manage your personal profile information, security preferences, connected accounts, and passkeys. You can access this page by clicking on the profile menu in the bottom left corner of the dashboard and selecting **Manage**:

![Account Settings Page](https://json-ld-superwall-docs-staging.staffbar.workers.dev/docs/images/manage-account.png)

The account management page is organized into four main sections:

1. **Profile Information:** Manage your account details and email preferences.
2. **Security Settings:** Configure password and two-factor authentication.
3. **Connected Accounts:** Link social accounts for easier sign-in.
4. **Passkeys:** Set up password-free authentication using passkeys.

## Profile Information

The Profile Information section displays your account details and email verification status.

### Name

Your account display name. This field can be edited to update how your name appears throughout the Superwall dashboard.

### Email

Your account email address is used for:

* Signing into your Superwall account.
* Receiving notifications about your apps and campaigns.
* Account recovery and security alerts.

#### Email Verification

If your email is not verified, you'll see a **Not Verified** badge next to your email address. To verify your email:

1. Click the **Resend verification email** link below the email field.
2. Check your inbox for a verification email from Superwall.
3. Click the verification link in the email to complete the process.

> **Note:** Verifying your email ensures you can receive important notifications and helps secure your account.

## Security Settings

The Security Settings section helps you protect your account with password management and two-factor authentication.

### Password

Manage your account password to keep your account secure. If you need to change your password:

1. Click the **Request Password Reset** button.
2. Check your email for a password reset link.
3. Follow the instructions in the email to set a new password.

> **Tip:** Use a strong, unique password for your Superwall account to maintain security best practices.

### Two-Factor Authentication (2FA)

Two-factor authentication adds an extra layer of security to your account by requiring a second form of verification in addition to your password.

When 2FA is **Disabled**, you'll see a **Disabled** badge and an **Enable 2FA** button. To enable two-factor authentication:

1. Click the **Enable 2FA** button.
2. Follow the setup wizard to configure 2FA using an authenticator app.
3. Save your backup codes in a secure location.

Once enabled, you'll need to provide a verification code from your authenticator app each time you sign in.

> **Warning:** Make sure to save your backup codes when setting up 2FA. These codes can be used to access your account if you lose access to your authenticator app.

## Connected Accounts

The Connected Accounts section allows you to link your Google or GitHub accounts for faster, more convenient sign-in to Superwall.

### Google Account

Connect your Google account to sign in to Superwall using Google authentication.

**When not connected:**

* You'll see a **Not Connected** badge.
* Click **Connect Google** to link your Google account.
* You'll be redirected to Google's authentication page to authorize the connection.

**After connecting:**

* You can use "Sign in with Google" on the Superwall login page.
* You can disconnect your Google account at any time.

### GitHub Account

Connect your GitHub account to sign in to Superwall using GitHub authentication.

**When not connected:**

* You'll see a **Not Connected** badge.
* Click **Connect GitHub** to link your GitHub account.
* You'll be redirected to GitHub's authorization page to approve the connection.

**After connecting:**

* You can use "Sign in with GitHub" on the Superwall login page.
* You can disconnect your GitHub account at any time.

## Passkeys

Passkeys provide a secure, password-free way to sign in to your Superwall account using your device's biometrics (like Face ID, Touch ID, or Windows Hello) or a security key.

### What are Passkeys?

Passkeys are a modern authentication method that:

* Eliminate the need to remember passwords.
* Provide stronger security against phishing and credential theft.
* Use your device's built-in biometric authentication.
* Work across your devices when synced through your operating system.

### Adding Your First Passkey

When you haven't set up any passkeys yet, you'll see an empty state with instructions. To add a passkey, click the **Add Passkey** button to open the passkey creation dialog:

![Add Passkey Dialog](https://json-ld-superwall-docs-staging.staffbar.workers.dev/docs/images/account-add-passkey.png)

#### Passkey Name

Give your passkey a descriptive name to help you identify it later, such as "MacBook Pro," "YubiKey," or "iPhone." This is especially helpful when managing multiple passkeys across different devices.

#### Authenticator Type

Choose between two authenticator types:

**Cross-Platform (Recommended)**

Use a physical security key like YubiKey that works across multiple devices. This option is ideal if you want to use the same passkey on different computers or need a portable authentication method.

**Platform Authenticator**

Use your current device's built-in biometrics (Touch ID, Face ID, or Windows Hello). This option ties the passkey to your specific device and is convenient for single-device use.

Once you've entered a name and selected your authenticator type, click **Add Passkey** to complete the setup. Your browser or device will prompt you to authenticate, and your new passkey will be ready to use.

### Managing Multiple Passkeys

You can add multiple passkeys to your account, which is useful if you:

* Sign in from different devices (work computer, personal laptop, tablet, etc.).
* Want backup authentication methods.
* Share access across different locations.

Each passkey will be listed in this section with options to remove or rename them.

> **Tip:** We recommend adding at least two passkeys to your account as a backup in case you lose access to one of your devices.

### Using Passkeys to Sign In

Once you've added a passkey:

1. Go to the Superwall login page.
2. Select the "Sign in with Passkey" option.
3. Your device will prompt you to authenticate using biometrics or your security key.
4. You'll be signed in immediately without entering a password.

> **Note:** Passkeys are tied to specific devices and browsers. If you clear your browser data or switch to a new device, you'll need to add a new passkey or use an alternative sign-in method.