Reference detail
Apps with embedded credential findings
Android apps found shipping a hard-coded secret — an API key, access token, private key or credential — in their public release.
Mapped findings are review signals. Interpret each app’s build, scan date and coverage before drawing a conclusion. Historical verification describes only its recorded scan time.
What this category covers
This is the hub for every finding where a credential-shaped value was found compiled into an app: API keys, access tokens, private key material, service-account JSON, database credentials, signing secrets.
We have recorded at least one in 5,628 apps. That figure is large because the category is broad and because a great many of the values involved are meant to ship.
Not every key in an APK is a leak
Anything an app sends to a service has to be inside the app, so the useful question is never whether a key is present but whether its exposure matters. Three cases behave completely differently. A client key designed to be public, such as a Maps key or a Firebase web config, is safe when it is correctly restricted and useless to restrict by hiding. A scoped server token is a real leak, revocable, and the remediation is to rotate it. Private key material or a service-account credential is the serious case, because it often grants more than the app itself needed.
The largest source of noise is library code. A test key compiled into every app that links a particular TLS library is not that app's secret, and documentation examples travel the same way. We handle this corpus-wide: a value appearing under three or more unrelated developers is reported as a library artifact rather than counted against any one app. That rule alone moved a substantial number of apps off failing grades, and it exists because the alternative was publishing findings that were true about a string and false about the app.
How to act on one
- Classify before reacting. Decide which of the three cases a value falls into, since the correct response differs completely.
- Rotate anything in the second or third case and treat it as public from the moment it shipped. No amount of obfuscation changes that.
- Restrict what is meant to be public: bind client keys to your package name and signing certificate and to the specific APIs they call.
- Remove server credentials from the client entirely and put a service you control in front of them.
- Check your history as well as your current build. A key removed in this release is still in the previous APK, which people can still download.
What we store, and what we never store
The value is never kept. What is recorded is a scheme prefix, a coarse length bucket and a non-reversible fingerprint — enough to deduplicate a finding and to recognise the same artifact across different apps, and not enough to reconstruct the secret from anything we publish or export.
We also do not test whether a credential works. Using a key found in someone else's app to authenticate to a service would be the most direct way to prove a finding, and it is not something we will do. Where a check is possible without any credential at all — asking whether a storage bucket answers an anonymous caller — we do that instead, and record it.
Mapped checks & review guidance (38)
AWS access key ID
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryPrivate key material
Never ship private-key material in a client. Revoke/rotate the compromised key and hold it server-side or in a hardware-backed store.
Browse this categoryGoogle API key (client-shipped; restriction unverified)
Restrict the API key (application + API restrictions in Google Cloud Console); a client-shipped key is public, so restriction is the control.
Browse this categoryStripe live secret key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categorySlack token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryOpenAI API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryAnthropic API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryGitHub personal access token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryGitLab personal access token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryGoogle OAuth client secret
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categorySendGrid API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categorySlack incoming webhook URL
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categorynpm access token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryGCP service account credentials
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryAzure Storage account key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryFirebase Cloud Messaging legacy server key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryTwilio Account SID
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryMapbox secret token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categorySquare access/secret token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryShopify access token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryDiscord bot token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryTelegram bot API token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryCloudinary credentials URL
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryBraintree/PayPal production access token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryStripe restricted API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryMailgun API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryHugging Face access token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryGroq API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryReplicate API token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryPerplexity API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryDatabase connection string with credentials
Remove the embedded username:password, rotate the credential, and authenticate to the endpoint with short-lived per-user tokens instead.
Browse this categoryTwilio API key SID
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryStripe webhook signing secret
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryDigitalOcean personal access token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryDiscord webhook URL
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryLinear API key
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryPyPI upload token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryNotion integration token
Remove the hard-coded credential from the app package, rotate/revoke it immediately, and move the secret to a backend the app calls with per-user authentication.
Browse this categoryApps with mapped findings
5628 matching apps · Counts below include only this page’s mapped finding types.
Home Workout App: Fitness
homeworkoutapp.homeworkout.fitness.workout.loseweightBuild 1.4.4 · 2026-10-12 07:54 UTC1 matching category · 1 matching occurrence
KFC US: Ordering & Delivery
com.kfc.us.mobileBuild 2026.9.0 · 2026-10-12 07:50 UTC1 matching category · 3 matching occurrences
Mi Banco Mobile
com.popular.android.mibancoBuild 3.73.1 · 2026-10-12 07:48 UTC1 matching category · 1 matching occurrence
Flashfood—Grocery deals
com.flashfoodapp.androidBuild 3.12.0 · 2026-10-12 07:44 UTC1 matching category · 1 matching occurrence
Dollar General-Digital Coupons
com.dollargeneral.androidBuild 16.1.226 · 2026-10-12 07:42 UTC1 matching category · 1 matching occurrence
BlueWallet Bitcoin Wallet
io.bluewallet.bluewalletBuild 8.0.2 · 2026-10-12 07:40 UTC1 matching category · 1 matching occurrence
Chime® – Fee-Free Banking
com.onedebit.chimeBuild 5.347.1 · 2026-10-12 07:39 UTC1 matching category · 2 matching occurrences
Minimalist Launcher - Flow
com.app.flowlauncherBuild 40.1.6 · 2026-10-12 07:33 UTC1 matching category · 1 matching occurrence
Foxit PDF Editor
com.foxit.mobile.pdf.liteBuild 2026.5.0.0828.1035 · 2026-10-12 07:31 UTC2 matching categories · 3 matching occurrences
Central Assembly - Great Falls
com.subsplashconsulting.s_HXZTC2Build 6.23.4 · 2026-10-12 07:29 UTC1 matching category · 3 matching occurrences
Kava Culture Kava Bar
com.kavaculture.android.appBuild 6673 · 2026-10-12 07:23 UTC1 matching category · 2 matching occurrences
CalendPal: Calendar Planner
calendar.agenda.calendarplanner.agendaplannerBuild 2.07.35.0930 · 2026-10-12 07:21 UTC2 matching categories · 4 matching occurrences
Challenges - Compete, Get Fit
com.fitnow.challengesBuild 26.08.05 · 2026-10-12 07:18 UTC1 matching category · 1 matching occurrence
UBA Mobile Banking
com.uba.vericashBuild 8.4.94 · 2026-10-12 07:17 UTC1 matching category · 2 matching occurrences
Hi Translate - Chat translator
com.zaz.translateBuild 6.2.0.003.gp · 2026-10-12 07:15 UTC2 matching categories · 3 matching occurrences
Live Weather: Daily Forecast
com.forecasts.noaa.live.weatherBuild 1.5.2 · 2026-10-12 07:12 UTC1 matching category · 2 matching occurrences
BooksVox Audiobook Player
com.imikidas.booksvoxBuild 2.4.0 · 2026-10-12 07:11 UTC1 matching category · 1 matching occurrence
BeautyCam-AI Photo Editor
com.meitu.meiyancameraBuild 13.3.55 · 2026-10-12 07:09 UTC2 matching categories · 3 matching occurrences
Now VPN: Fast VPN Proxy
com.now.vpnBuild 4.2.330 · 2026-10-12 07:03 UTC1 matching category · 1 matching occurrence
Photo Editor - Polish
photo.editor.photoeditor.photoeditorproBuild 1.802.266 · 2026-10-12 07:01 UTC1 matching category · 1 matching occurrence
OUTERPLANE - Strategy Anime
com.smilegate.outerplane.stove.googleBuild 1.4.18 · 2026-10-12 07:00 UTC2 matching categories · 3 matching occurrences
Track My Expenses - Cash Book
com.fledger.expensemanagerBuild 1.8.2 · 2026-10-12 06:56 UTC1 matching category · 1 matching occurrence
Dungeon Hunter 5: Action RPG
com.gameloft.android.ANMP.Gloft5DHMBuild 7.1.5a · 2026-10-12 06:55 UTC1 matching category · 1 matching occurrence
Northern Credit Union
com.northerncu.mobileappBuild 17.30.1 · 2026-10-12 06:52 UTC1 matching category · 2 matching occurrences
First Alert by Dataminr
com.dataminr.android.firstalertBuild 2.29.4 · 2026-10-12 06:49 UTC1 matching category · 3 matching occurrences