Find and track Google Play beta programs for the apps on your device.
BetaScout scans your installed apps, shows which ones are known to have a Google Play open-testing (beta) program, opens the opt-in page for you, and reminds you to re-check the ones you are watching — so you catch a free slot when one opens up.
The app is available in seven languages: English, Finnish (suomi), Spanish (español), German (Deutsch), French (français), Italian (italiano) and Brazilian Portuguese (português do Brasil). It follows your device language automatically; on Android 13+ you can also pick the language per app in system settings. Native speakers: corrections are very welcome — please open an issue.
- 📰 Saudi Android's look at BetaScout (in Arabic)
▶️ Video walkthrough by @odorizzioficial (in Brazilian Portuguese)
- 📋 Scans installed apps — name, icon, version and install source, entirely on-device
- 🔍 Knows about beta programs — a shared catalog of apps with known open-testing programs, updated daily and grown by opt-in community discoveries that a server-side job verifies against Google Play before they are published
- 🔗 One-tap deep links — open an app's
play.google.com/apps/testing/…opt-in page or its Play Store page directly - ✍️ Track your own status — mark each app as joined / not joined / full / no program, and keep private notes
- ⏰ Watchlist with reminders — watch apps you care about and get a notification at your chosen interval (7/14/30 days) reminding you to re-check; tapping it opens the beta page
Honesty first:
- It never joins a beta program on your behalf. Joining requires pressing the Join button on Google Play yourself.
- Without signing in it cannot detect whether a program is open or full. That information is only visible to a signed-in Google account on the testing page. If you sign in inside the app, BetaScout reads your own testing pages to detect your memberships and each program's open/full status; otherwise it just takes you there.
- The shared catalog only says a testing program exists — your live open/full status still comes from the signed-in scan of your own testing pages.
- No accessibility-service automation, no APK sideloading, no Play Store bypassing.
| Front page | Joined betas | No beta | App details |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| App details — no beta | Watchlist | Settings |
|---|---|---|
![]() |
![]() |
![]() |
BetaScout is distributed as an APK via GitHub Releases and is also available on Aptoide and SourceForge — it is not on the Play Store.
- Download the latest APK from the Releases page.
- Allow installs from unknown sources when Android asks.
- Done. Listing and tracking work offline; the beta-catalog refresh and the signed-in status scan need a network connection.
Registered with Google. The package name and signing key are registered in Google's Android Developer Console, so the app keeps installing as usual under Google's new sideloading rules.
Why not the Play Store? BetaScout uses the
QUERY_ALL_PACKAGESpermission to list everything installed on your device. That permission is heavily restricted on the Play Store, but it is exactly what makes the app useful — so it lives here instead.
| Permission | Why |
|---|---|
QUERY_ALL_PACKAGES |
List your installed apps — the whole point of the app |
POST_NOTIFICATIONS |
Watchlist reminders and beta-opening alerts (asked on first launch, Android 13+) |
INTERNET, ACCESS_NETWORK_STATE |
Fetch the beta catalog, and read your own Play testing pages once you sign in |
FOREGROUND_SERVICE, FOREGROUND_SERVICE_DATA_SYNC |
Let a manual "Scan now" finish even if you leave the app |
The network is used for exactly two things: downloading the beta-program catalog, and —
only after you sign in — fetching play.google.com/apps/testing/… pages with your own
session to read your memberships. There is no telemetry and no analytics; your app list
and markings never leave the device.
Optional discovery sharing (off by default): if you enable "Share discoveries" in settings, BetaScout uploads the package names of apps whose scans found a testing program, so the shared catalog can grow with real-world finds. Only bare package names are ever sent — never your account, memberships, device identifiers or anything else — and the server stores no submitter information. Uploaded hints are only candidates: they enter the catalog after the daily harvester independently verifies them against Google Play.
The full privacy policy lives in PRIVACY.md.
Requirements: JDK 17+ and the Android SDK (or just Android Studio).
git clone https://github.com/jrs8205/BetaScout.git
cd BetaScout
./gradlew assembleDebug # APK at app/build/outputs/apk/debug/
./gradlew test # unit testsKotlin · Jetpack Compose (Material 3) · MVVM + Repository · Room · DataStore · WorkManager · Hilt · Navigation-Compose · kotlinx-serialization
- minSdk 26 (Android 8.0) · targetSdk 36
- Core logic is unit-tested (TDD): link building, package scanning, seed parsing, repository behavior, list filtering and reminder scheduling policy
- Opt-in, signed-in check of your own testing pages (membership + open/full status)
- Community-sourced beta-program catalog (opt-in discovery sharing + daily server-side verification against Google Play)
Suggestions and bug reports are welcome in Issues.
The app is under the Apache License 2.0. Beta membership and open/full/closed
status are read by signing into your own Google account and parsing your own testing pages
with Jsoup (MIT); no Google Play private API is used. The backend
harvester (harvester/) is GPL-3.0 and runs server-side only.






