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,568 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 category

Private 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 category

Google 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 category

Stripe 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 category

Slack 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 category

OpenAI 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 category

Anthropic 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 category

GitHub 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 category

GitLab 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 category

Google 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 category

SendGrid 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 category

Slack 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 category

npm 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 category

GCP 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 category

Azure 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 category

Firebase 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 category

Twilio 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 category

Mapbox 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 category

Square 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 category

Shopify 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 category

Discord 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 category

Telegram 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 category

Cloudinary 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 category

Braintree/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 category

Stripe 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 category

Mailgun 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 category

Hugging 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 category

Groq 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 category

Replicate 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 category

Perplexity 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 category

Database 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 category

Twilio 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 category

Stripe 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 category

DigitalOcean 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 category

Discord 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 category

Linear 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 category

PyPI 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 category

Notion 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 category

Apps with mapped findings

Reset

5568 matching apps · Counts below include only this page’s mapped finding types.

Radix Wallet

com.radixpublishing.radixwallet.androidBuild 1.22.1 · 2026-10-13 08:48 UTC

2 matching categories · 3 matching occurrences

F · 0/100Static analysis complete

Ecosia: Search to plant trees

com.ecosia.androidBuild 152.0.7977.82.51 · 2026-10-13 08:47 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

MWI Mobile

com.mwiah.mobileBuild 2.25.0 · 2026-10-13 08:43 UTC

1 matching category · 1 matching occurrence

A · 98/100Static analysis complete

Bouncie

com.taillight.bouncieBuild 4.26.10 · 2026-10-13 08:42 UTC

1 matching category · 3 matching occurrences

A · 97/100Static analysis complete

Instant Cash Advance: Loan App

com.finance.paydayloansnearmeBuild 2.0.10 · 2026-10-13 08:40 UTC

1 matching category · 1 matching occurrence

A · 98/100Static analysis complete

Iphigénie - offline maps

com.iphigenieBuild 11.37.0-8 · 2026-10-13 08:39 UTC

2 matching categories · 3 matching occurrences

A · 90/100Static analysis complete

Tracks4Africa Guide

za.co.tracks4africa.guide.hybridBuild 6.1.0 · 2026-10-13 08:37 UTC

1 matching category · 4 matching occurrences

Limited coverageRecorded findings available · overall grade withheld

JeeAB360 Predictor-JEE /STD 12

com.adarshbarnwal.notesappBuild 2.9 · 2026-10-13 08:35 UTC

2 matching categories · 108 matching occurrences

F · 0/100Static analysis complete

HOPE Global Forums

jujama.com.hopeBuild 5.0.2 · 2026-10-13 08:34 UTC

1 matching category · 3 matching occurrences

D · 36/100Static analysis complete

ParkEats - Disneyland Food

com.brilliantsoftware.disneyland_foodieBuild 3.1.2 · 2026-10-13 08:31 UTC

1 matching category · 2 matching occurrences

A · 97/100Static analysis complete

DSP Mutual Fund

com.dsp.investBuild 1.1.341 · 2026-10-13 08:30 UTC

1 matching category · 1 matching occurrence

A · 91/100Static analysis complete

The Athletic: All Sports News

com.theathleticBuild 13.153.0 · 2026-10-13 08:29 UTC

1 matching category · 1 matching occurrence

A · 96/100Static analysis complete

Podcast Player - Castbox

fm.castbox.audiobook.radio.podcastBuild 11.26.1-260915290 · 2026-10-13 08:27 UTC

1 matching category · 1 matching occurrence

B · 83/100Static analysis complete

Beauty Camera: Sweet Camera

photo.cam.filter.beauty.effectBuild 2.2.3 · 2026-10-13 08:23 UTC

1 matching category · 1 matching occurrence

B · 84/100Static analysis complete

Mobile Security & Antivirus

com.trendmicro.tmmspersonalBuild 17.1.0 · 2026-10-13 08:21 UTC

2 matching categories · 4 matching occurrences

A · 95/100Static analysis complete

Livin' by Mandiri

id.bmri.livinBuild 3.9.0 · 2026-10-13 08:20 UTC

1 matching category · 2 matching occurrences

A · 97/100Static analysis complete

FieldVibe: Field Service App

com.mobiversal.fieldvibeBuild 4.18.2 · 2026-10-13 08:18 UTC

1 matching category · 2 matching occurrences

A · 98/100Static analysis complete

Talking Translator - Languages

com.translate.talkingtranslatorBuild 3.11.1 · 2026-10-13 08:15 UTC

1 matching category · 1 matching occurrence

A · 90/100Static analysis complete

GeoCAD: CAD, DGN & GPS

net.tlgeo.geocadBuild 1.0.2 · 2026-10-13 08:13 UTC

1 matching category · 1 matching occurrence

A · 93/100Static analysis complete

Offline Maps, GPS, Speedometer

com.radarapp.trip.speedometerBuild 1.4.9 · 2026-10-13 08:11 UTC

1 matching category · 2 matching occurrences

A · 91/100Static analysis complete

Flat Equalizer - Bass Booster

com.jazibkhan.equalizerBuild 6.3.5.8 · 2026-10-13 08:06 UTC

1 matching category · 1 matching occurrence

A · 96/100Static analysis complete

Ukulele Tuner - LikeTones

com.sonkins.tukuleleBuild 26.2.6 · 2026-10-13 08:05 UTC

1 matching category · 1 matching occurrence

D · 43/100Static analysis complete

GIF Converter: Video & Bulk

com.nexdee.gifyardBuild 1.1.1 · 2026-10-13 08:02 UTC

1 matching category · 1 matching occurrence

A · 97/100Static analysis complete

Smart Connect

com.motorola.mobiledesktopBuild 09.0.3.013.0 · 2026-10-13 08:01 UTC

2 matching categories · 2 matching occurrences

A · 97/100Static analysis complete

NetworkFlow: Data & Speed

com.evozi.networkBuild 3.0.3 · 2026-10-13 07:59 UTC

1 matching category · 1 matching occurrence

A · 91/100Static analysis complete