Mobile App Paywall & In-App Pricing Extractor avatar

Mobile App Paywall & In-App Pricing Extractor

Pricing

from $80.00 / 1,000 app paywall & pricing extractions

Go to Apify Store
Mobile App Paywall & In-App Pricing Extractor

Mobile App Paywall & In-App Pricing Extractor

Launches real Android 13 mobile sessions across geo-targeted regions to capture onboarding flows, in-app subscription paywalls, trial terms, and XML UI pricing text.

Pricing

from $80.00 / 1,000 app paywall & pricing extractions

Rating

0.0

(0)

Developer

Enigma Labs

Enigma Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

41 minutes ago

Last modified

Features

Limited permissions

Share

Capture in-app subscription paywalls, free-trial terms, observed IAP prices, and step-by-step onboarding screenshots from real Android 13 sessions. Built by Enigma Labs for mobile growth teams, pricing analysts, competitive-intelligence researchers, and AI Agents (mcp.apify.com).

What does it do?

Many subscription apps only show their plan prices, weekly vs. annual discounts and trial lengths inside native onboarding screens, which store web pages do not expose. This Actor sends a Google Play package_name to a live Android 13 capture worker and returns:

CapabilityDetails
Native Android 13 sessionFresh Android 13 session per app. country is used for reporting/timezone labelling; prices shown are those Google Play Billing renders for the session (see limitations).
Onboarding navigationWalks welcome prompts (Get Started, Continue, Next, Skip) towards the paywall, without logging in.
Price & trial detectionParses the Android accessibility tree for currency amounts, billing periods (/week, /month, /year) and trial terms.
PNG screenshotsStep-by-step screenshots (screen_00.png, ...) saved in the run's Key-Value Store, with the system status bar removed.

Important limitations (read before buying)

  • Store country vs. input country: prices rendered by Google Play Billing follow the store country of the device account. The output reports the prices actually observed; country controls locale/timezone.
  • Login walls: apps that require sign-in before showing a paywall are reported as paywall_detected: false. The Actor never signs in, never starts trials and never purchases.
  • Live worker availability: live capture runs on a dedicated worker with a curated set of installed apps. When the worker is unavailable, or the requested app is not on the capture device (worker_status: APP_NOT_AVAILABLE_ON_LIVE_WORKER), you get either a Google Play listing fallback or a status record (see require_live) and you are not charged.

How much does it cost? (Pay-Per-Event)

EventPriceWhen it is charged
app_session_start$0.01Once per run, only when the live Android worker actually handled the app
onboarding_screen_captured$0.015Per screenshot actually stored
paywall_pricing_extracted$0.08Once, only when a paywall was detected

Example: 3 screens + paywall found = $0.01 + 3 × $0.015 + $0.08 = $0.135.

$0 is charged for invalid input, live-worker unavailability, and the Google Play listing fallback.

Input

  • package_name (string, required): Google Play package ID (?id=<package_name> in the Play URL).
  • country (select, default US): locale/timezone of the device session.
  • max_screens (integer 1–12, default 4): onboarding screens to capture.
  • require_live (boolean, default false): if true, skip the Google Play listing fallback when the live worker is unavailable.
{ "package_name": "com.duolingo", "country": "US", "max_screens": 5, "require_live": true }

Output

{
"package_name": "com.duolingo",
"country": "US",
"device_timezone": "America/New_York",
"capture_mode": "live_android_13",
"worker_status": "LIVE_ANDROID_13_WORKER",
"paywall_detected": true,
"all_detected_prices": ["14-day free trial", "$12.99 / month", "$83.99 / year"],
"price_granularity": "in_app_paywall_ui",
"screens": [
{ "step": 0, "screenshot_kvs_key": "screen_00.png", "is_paywall": false, "detected_prices": [], "cta_buttons": ["GET STARTED"] },
{ "step": 1, "screenshot_kvs_key": "screen_01.png", "is_paywall": true, "detected_prices": ["$12.99 / month"], "cta_buttons": ["START FREE TRIAL"] }
],
"billing": { "requests": 1, "charged_events": 3, "charge_failures": 0, "stopped_early": false }
}

capture_mode values:

  • live_android_13: real in-app capture (charged as above).
  • google_play_listing_fallback: Play store-listing price range per item only (price_granularity: store_listing_range_per_item), not per-plan prices. $0.
  • live_required_unavailable: require_live=true and live worker unavailable. $0.
  • invalid_input: malformed package name. $0.

(Example values above are illustrative.)

Python / MCP

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("enigmalabs/mobile-paywall-extractor").call(
run_input={"package_name": "com.duolingo", "country": "US", "max_screens": 5, "require_live": True}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["capture_mode"], item["paywall_detected"], item["all_detected_prices"])

Screenshots: client.key_value_store(run["defaultKeyValueStoreId"]).get_record("screen_00.png").

FAQ

  • Does it bypass logins, CAPTCHAs or paid gates? No. It only observes screens shown to a new, signed-out user.
  • Why did I get no prices? The app may require login before its paywall, use a web checkout, or show no paywall during onboarding.

Independent UI/UX and pricing research tool by Enigma Labs. App names and package identifiers belong to their respective owners.