Skip to content
NewRemote MCP server + Claude Code and Codex plugin

Ship subscriptions. Skip the backend.

Server-side purchase validation, entitlements, offerings, Remote Config, experiments, and analytics for iOS, Android, Flutter, and React Native — one SDK, no backend to build.

  • No backend to run
  • One SDK, four platforms
  • Server-side receipt validation

Works with everything your app already uses

  • App Store
  • Google Play
  • StoreKit 2
  • Play Billing
  • Swift
  • Kotlin
  • Flutter
  • React Native

AppActor at a glance

4

SDKs, one contract

iOS, Android, Flutter, and React Native share the same customer and entitlement model.

2

App stores, one source of truth

App Store and Google Play purchases validated, reconciled, and kept current by store notifications.

0

App updates to change pricing

Offerings, package slots, and Remote Config are defined in the dashboard and fetched at runtime.

1

Dashboard for every number

Revenue, subscribers, trials, refunds, and LTV, split by country and platform.

Subscription infrastructure

One SDK. Every store. Zero receipt plumbing.

AppActor sits between your app, the app stores, and your access rules. The SDK fetches offerings and starts the store purchase; AppActor validates the receipt and refreshes customer entitlements — the same contract on every platform.

  • Server-side receipt validation for the App Store and Google Play
  • One customer model across iOS, Android, Flutter, and React Native
  • Restores and background syncs recover purchases the same way on every platform
  • Store notifications keep access current even while the app is closed
// Configure once during app bootstrap.await AppActor.configure(apiKey: "pk_YOUR_PUBLIC_APP_KEY")// Fetch offerings and render your paywall from packages.let offerings = try await AppActor.shared.offerings()let current = offerings.current// Purchase a package chosen in your own UI.guard let package = current?.monthly else { return }let result = try await AppActor.shared.purchase(package: package)// Gate access from customer info and entitlements.let info = try await AppActor.shared.getCustomerInfo()let isPremium = info.hasActiveEntitlement("premium")
Paywalls, offerings & Remote Config

Change what you sell without shipping an update.

Offerings, package slots, and Remote Config live in the dashboard and are fetched by the SDK at runtime. Your app renders its own paywall from them, so pricing, package order, and paywall copy change without a release.

  • Which offering is current, and which packages it contains, is decided server-side
  • Remote Config values (toggle, number, text, JSON) per project, platform, or app
  • Targeting rules by store, app version, country, or entitlement state
  • Cached on device with your own defaults, so paywalls load instantly and offline

You keep your paywall UI. AppActor never renders or hosts it — your app fetches offerings, renders packages, and starts the purchase.

Experiments

Stop guessing. Start measuring.

Run controlled A/B tests on paywalls, onboarding, offers, and lifecycle moments. AppActor assigns variants deterministically and evaluates results with subscription context — trials, paid conversions, cancellations, refunds, and revenue — not just taps.

  • Variants with traffic allocation and holdout groups for incremental impact
  • Each variant carries the values your app needs, with a safe default for unassigned users
  • Subscription-aware analysis: trial-to-paid, cancellations, refunds, and LTV per user
  • Roll the winner into Remote Config when it is a server-driven payload
Analytics

Know your subscription numbers at any moment.

Every purchase, renewal, cancellation, and refund AppActor processes lands in one dashboard: revenue, subscribers, trials, refunds, and LTV, broken down by country and platform. The same numbers are available to your AI assistant through the AppActor MCP server.

RevenueSubscribersTrialsRefunds

Sales

$61,480

+9.8%

Proceeds

$52,260

+9.6%

New trials

1,284

+6.2%

Refund rate

0.7%

−0.2 pts

Subscriptions

New subscriptions vs cancellations

  • New subscriptions
  • Cancellations

Proceeds by country

  • United States · iOS$21,950
  • Germany · Android$8,884
  • United Kingdom · iOS$7,317
  • Brazil · Android$4,703
  • Japan · iOS$3,658
  • Revenue

    Sales, proceeds, and gross or net LTV per user and per paid user.

  • Conversion

    User-to-trial, user-to-paid, and trial-to-paid rates over time.

  • Quality

    Trial cancellations, subscription cancellations, and refunds.

  • Cohorts & breakdowns

    Lifetime cohorts or fixed 30-day windows, split by country and platform.

For every team

One purchase layer, built for the whole team.

Developers integrate it once. Growth changes what is sold. Founders and ops get one set of numbers everyone trusts.

Developers

Integrate once with typed SDKs. Receipt validation, restores, and background sync stay out of your codebase.

  • Typed SDKs for Swift, Kotlin, Dart, and TypeScript
  • Server notifications, signed webhooks, and a REST API
  • Trusted entitlements and offline mode built in

Growth & Product

Change offerings, package order, and paywall copy from the dashboard, then test the change and read subscription-aware results.

  • Switch the current offering without a release
  • Typed Remote Config with targeting rules
  • Experiments judged on trials, paid, refunds, and LTV

Founders & Ops

One source of truth for revenue, subscribers, and store health, with the lifecycle events your backend and support tooling need.

  • Revenue, trials, cancellations, refunds, and LTV in one place
  • Customer timelines and transaction history for support
  • Ask your AI client through the AppActor MCP server
Developers

Built for developers. Documented for humans and AI.

Native SDKs with real type signatures, a REST API behind a project secret key, signed webhooks, and documentation your AI tooling can read directly.

  • REST API & server-side access checks

    Call api.appactor.com with a project secret key to gate premium API responses, files, or AI credits from your own backend.

  • Server notifications & signed webhooks

    App Store Server Notifications and Google RTDN flow in. Normalized lifecycle events flow out with HMAC-SHA256 signatures, retries, and idempotent delivery.

  • Trusted entitlements

    Signed customer info with explicit verification states, so you choose fail-open or fail-closed per feature.

  • Offline SDK mode

    Cached offerings, cached customer info, and offline entitlement keys keep the app usable when the network is not.

  • Remote Config & Experiments APIs

    Typed config reads with memory, disk, and ETag caching, plus deterministic experiment assignment by key.

  • AI-ready

    A remote MCP server at mcp.appactor.com, a plugin for Claude Code and Codex with SDK skills, and llms.txt for any agent.

Reliability

Built for money you can't afford to guess.

Purchase infrastructure has to survive network loss, delayed store callbacks, app restarts, and users switching identities. AppActor is designed around recoverable state, not one-shot purchase assumptions.

  • Server-authoritative state

    Access is decided from AppActor customer info and entitlements, never from a local button tap.

  • Receipts retried until confirmed

    Receipts are retried until the backend confirms them, and queued work stays queued instead of turning into irreversible grants.

  • Restore & account recovery

    Explicit restore, quiet sync, and receipt-queue drain paths, with a stable app user ID so reinstalls keep their purchases.

  • Cache & fallbacks

    Cached offerings and Remote Config keep the UI responsive; offline-derived entitlement state stops the app from going blind during outages.

FAQ

Questions, answered from the docs.

Everything below is documented in more depth in the AppActor docs.

AppActor ships native SDKs for iOS (Swift, iOS 15+) and Android (Kotlin, Android 24+), plus wrapper SDKs for Flutter and React Native (React Native 0.85+) that run on top of the native plugins. Purchases go through the App Store and Google Play, and all four SDKs share the same customer model.

Still have questions?

The docs cover setup, catalog modelling, recovery flows, and go-live checks in detail.

Browse the documentation

Ready to ship subscriptions?

Create a project, add your apps, connect the stores, and make your first sandbox purchase. Your paywall, our purchase infrastructure.