Overview

RevenueCat provides a set of tools and infrastructure designed to manage in-app purchases (IAPs) and subscriptions across various mobile and desktop platforms. The platform aims to abstract the complexity of integrating with platform-specific APIs, such as those for Apple App Store and Google Play Store, handling tasks like receipt validation, subscription status tracking, and managing customer data. Developers can integrate RevenueCat's SDKs into their applications, which then communicate with RevenueCat's backend to process transactions and manage subscription lifecycles.

The service is designed for developers and businesses that offer subscription-based or one-time purchase models within their applications. It supports a range of platforms, including native iOS and Android, as well as cross-platform frameworks such as Flutter, React Native, and Unity. By centralizing subscription logic, RevenueCat seeks to reduce the development time and maintenance burden associated with in-app monetization, allowing engineering teams to focus on core application features rather than payment infrastructure.

Key use cases for RevenueCat include simplifying the initial integration of IAPs, managing the complexities of subscription renewals and cancellations, and providing a unified view of subscriber data across different platforms. The platform includes features for analytics, enabling developers to track key metrics like churn, lifetime value (LTV), and monthly recurring revenue (MRR). Additionally, it offers tools for A/B testing different paywall designs and pricing strategies, which can inform monetization decisions without requiring direct app updates for each test iteration. For example, configuring a paywall remotely allows for dynamic adjustments to offers based on user segments or performance data, a method also employed by competing platforms like Nami ML for paywall optimization strategies.

The platform also offers server-side components, including webhooks, to integrate subscription events with other backend systems, customer relationship management (CRM) platforms, or marketing automation tools. This enables automated responses to subscription events, such as granting access to premium content upon purchase or sending re-engagement emails for expiring trials. RevenueCat's focus on compliance, including SOC 2 Type II, GDPR, and CCPA, is intended to address data security and privacy requirements for app publishers operating globally.

Key features

  • Subscription Infrastructure: Manages the lifecycle of in-app subscriptions, including purchases, renewals, cancellations, and refunds, abstracting direct interaction with Apple App Store and Google Play Store APIs.
  • In-App Purchase Analytics: Provides dashboards and reporting for key subscription metrics such as MRR, churn rate, LTV, and trial conversions, offering insights into monetization performance.
  • Paywall Configuration: Enables remote configuration and A/B testing of paywalls and product offerings without requiring app store updates, allowing for dynamic optimization of conversion funnels.
  • Webhooks: Delivers real-time notifications for subscription events (e.g., purchases, renewals, expirations) to external backend systems, facilitating integrations with CRM, analytics, or marketing platforms.
  • Cross-Platform SDKs: Offers client-side SDKs for various platforms and frameworks, including iOS, Android, Flutter, React Native, Unity, Expo, and others, to streamline multi-platform IAP implementation.
  • Receipt Validation: Handles secure server-side receipt validation to prevent fraud and ensure transaction legitimacy for both Apple and Google in-app purchases.
  • Customer Management: Provides a unified view of customer subscription data, purchase history, and entitlements across all platforms.
  • Integrations: Pre-built integrations with third-party services for analytics, marketing, and customer support.

Pricing

RevenueCat offers a tiered pricing model based on the number of monthly tracked users (MTU), defined as any user for whom RevenueCat processes a purchase, restores a purchase, or makes an API request. A free tier is available, with paid plans scaling with usage.

Plan (as of 2026-05-08) Monthly Tracked Users (MTU) Key Features Monthly Cost
Free Up to 10,000 Subscription infrastructure, analytics, A/B testing, webhooks $0
Starter Up to 20,000 All Free features, advanced analytics, custom integrations $100
Pro Up to 50,000 All Starter features, dedicated support, API access Custom
Enterprise 50,000+ All Pro features, SOC 2 compliance, custom SLAs Custom

Detailed pricing information, including per-MTU costs for higher tiers and annual billing discounts, is available on the RevenueCat pricing page.

Common integrations

  • Firebase: Integrates with Google Firebase for analytics and user authentication. RevenueCat documentation provides a guide for Firebase integration.
  • Stripe: Connects with Stripe for payment processing and subscription management, particularly for web-based subscriptions that complement in-app purchases.
  • Segment: Sends subscription event data to Segment for centralized customer data management and routing to other analytics or marketing tools. The Segment integration guide details setup.
  • Amplitude: For advanced product analytics and understanding user behavior related to subscriptions. RevenueCat offers Amplitude integration instructions.
  • Mixpanel: Another product analytics platform that can receive subscription events from RevenueCat for cohort analysis and user journey mapping. Refer to the Mixpanel integration documentation.
  • Braze: Marketing automation platform that can leverage RevenueCat subscription data for targeted messaging and user re-engagement campaigns.

Alternatives

  • Nami ML: Offers AI-powered paywall optimization and subscription management with a focus on machine learning for conversion rate improvement.
  • Apphud: Provides in-app purchase infrastructure, analytics, and A/B testing tools, emphasizing integrations and customer support.
  • Glassfy: A subscription infrastructure provider that includes features for receipt validation, analytics, and paywall management across platforms.

Getting started

To integrate RevenueCat into a cross-platform Flutter application, the primary steps involve adding the SDK, configuring the API key, and making purchase calls. Below is an example demonstrating how to initialize the Purchases SDK and fetch available products:

import 'package:flutter/material.dart';
import 'package:purchases_flutter/purchases_flutter.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State createState() => _MyAppState();
}

class _MyAppState extends State {
  @override
  void initState() {
    super.initState();
    _initRevenueCat();
  }

  Future<void> _initRevenueCat() async {
    // Enable debug logs for easier development
    await Purchases.setLogLevel(LogLevel.debug);

    // Configure Purchases with your API key
    // Replace 'YOUR_PUBLIC_REVENUECAT_API_KEY' with your actual key
    await Purchases.configure(PurchasesConfiguration('YOUR_PUBLIC_REVENUECAT_API_KEY'));

    try {
      // Fetch available products
      Offerings offerings = await Purchases.getOfferings();
      if (offerings.current != null) {
        print('Available packages:');
        for (var package in offerings.current!.availablePackages) {
          print('- ${package.storeProduct.title} (${package.storeProduct.priceString})');
        }
      } else {
        print('No current offerings found.');
      }
    } on PlatformException catch (e) {
      print('Error fetching offerings: ${e.message}');
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'RevenueCat Example',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('RevenueCat Flutter Demo'),
        ),
        body: const Center(
          child: Text('Check console for RevenueCat initialization and product data.'),
        ),
      ),
    );
  }
}

This code snippet initializes the RevenueCat SDK for Flutter. The _initRevenueCat function configures the SDK with a public API key and then attempts to fetch available product offerings. Developers can then use the fetched product data to display paywalls and initiate purchases. Further details on setting up and using the SDK are available in the RevenueCat getting started guide.