API TOKEN LEAK CHECKER
Paste a URL. The scanner loads your live site and reads every JS bundle the browser fetched, fingerprinting 100+ key formats. If an attacker can open DevTools, they can see what we see.
FIND LEAKED API KEYS NOW
Enter your URL — we load the bundle in a headless browser and fingerprint Firebase, Stripe, AWS, OpenAI, Anthropic, Supabase, GitHub and 100+ more in under 30 seconds.
What is an API token leak?
An API token leak is when an API key, secret, or access token ends up inside code that every visitor can download — usually the JavaScript bundle. Anyone who opens browser DevTools can copy the key and use it from their own machine. Automated bots do this at scale: they crawl deployed sites, GitHub, and npm packages looking for known key formats, and they find new ones every minute.
This scanner finds those keys in under 30 seconds so you can rotate before a bot does.
Why token leaks happen to AI-generated apps
AI coding tools — Lovable, Bolt, v0, Cursor, Claude Code, Replit — default to importing client SDKs directly into the frontend. That pattern ships your API key to every visitor. Keys that vendors label “safe for the client” (Stripe publishable, Supabase anon, Firebase config) are still abuse surfaces if the rest of your security model assumes no one has them. Keys that should never have shipped — OpenAI, Anthropic, Twilio, server-only Stripe — are catastrophic: one screenshot, one curl, and an attacker is billing your card.
Most of the vibe-coded apps we scan have at least one key in the frontend bundle that shouldn’t be there. See OWASP Top 10 for AI-generated code for the full pattern.
What the scanner checks
FIREBASE / FIRESTORE
API keys, project IDs, service account JSONs, and storage bucket credentials accidentally bundled into the client.
STRIPE
Secret keys (sk_live_…) in the frontend where only publishable keys belong, plus webhook secrets.
AWS / GOOGLE CLOUD
Access key IDs, secret keys, session tokens, signed URLs, and service-account JSON.
OPENAI / ANTHROPIC
LLM provider keys — usually mean you have exposed pay-per-token billing to the internet.
SUPABASE
Service-role keys where only the anon key belongs, and anon keys in front of tables with no RLS.
GITHUB / CI
Personal access tokens, fine-grained tokens, and CI secrets leaked through source maps or error pages.
How it works
- Load — we fetch your URL in a real headless browser, the same way a user would.
- Capture — every JS file, inline script, source map, and XHR response gets inspected.
- Pattern match — 100+ known key signatures plus entropy-based detection for custom secrets.
- Report — each finding shows the source file, line number, key type, and remediation steps.
Which keys are safe in the frontend?
| Key | Safe in browser? | Why |
|---|---|---|
Stripe publishable (pk_live_…) |
Yes | Designed to ship; restrict domain in Stripe dashboard. |
Stripe secret (sk_live_…) |
No | Full account access. Server-only. |
| Firebase Web config | Conditional | Safe only if Firestore Security Rules and Auth are correctly configured. |
| Firebase service account | No | Admin access to the entire project. |
Supabase anon key |
Conditional | Safe only if Row Level Security is enforced on every table. |
Supabase service_role key |
No | Bypasses RLS. Server-only. |
| OpenAI / Anthropic API key | No | Direct billing access. Always proxy through a backend. |
| AWS access key | No | Console and API access. Never ship to the browser. |
| Google Maps JS API key | Yes | Lock by HTTP referrer in Google Cloud Console. |
Common fixes
- Move keys to server-side code, edge functions, or backend proxies. The client should never hold a secret.
- For keys that must ship (Stripe publishable, Google Maps), restrict by origin/referrer in the provider dashboard.
- Rotate any key that ever appeared in a past deploy, GitHub commit, or log — bots already indexed it.
- Add a CI check that fails the build when a new token exposure is introduced.
- For Supabase, turn on RLS on every table before worrying about the anon key — RLS is the actual auth.
Related tools and guides
- Vibe Code Scanner — full security scan of a deployed AI-generated app.
- Firebase Scanner — Firestore rules, auth, and storage bucket checks.
- Supabase RLS Checker — verify every table has a correct policy.
- Lovable Safety Guide — what Lovable ships insecure by default and how to fix it.
- Replit Safety Guide — common exposure patterns in Replit-deployed apps.
- OWASP Top 10 for AI Code — the canonical failure modes.
COMMON QUESTIONS
SCAN THE FULL APP, NOT JUST TOKENS
Get the full VibeEval agent on the same URL. RLS, auth, API fuzzing — 60 seconds to report.