YES: exposure detected
A recognisable credential was found in a scanned public resource. Revoke or rotate it first. Premium shows the provider, redacted fingerprint, resource and line needed to remove the correct copy.
Find out whether a site you own has exposed an LLM API key. The free result is a simple YES or NO. Premium reveals the exact public resource and line with only a redacted fingerprint, and can crawl every discoverable page up to your plan limit.
The free result is YES or NO only. Premium reveals the provider, redacted fingerprint and exact public resource and line, and can crawl every discoverable page up to the plan limit. Raw keys are never stored or sent to providers. How we scan · Acceptable use
Use this only on a site you own or have explicit permission to assess.
The page, same-origin scripts, named chunks, source maps, runtime configuration and a fixed content-verified list of .env, Git, config and backup locations are checked.
Premium shows the provider, redacted fingerprint, public resource and line, can crawl all discoverable pages up to the plan limit, scan an authenticated URL and bulk-scan ten sites.
1 checks across 1 areas. Each links to its reference page with the test, the risk and the fix.
The ones that most often decide the grade:
It follows the places where a secret can accidentally travel from a private project into a public website deployment.
LLM API keys should remain on a server. They can still be copied into a browser bundle, runtime configuration file, source map or public backup when an application is built or deployed. Anyone who can download that resource can copy the same credential.
Scan.now reads those public resources, looks for provider-specific key formats and checks opaque values only when a provider-specific variable name supplies enough context. Matching happens locally in the scanner. A suspected key is not sent to its provider or used to make an API request.
This scanner answers one part of the review. Continue with Website Scanner for headers, tls, cookies, exposed files, then SSL / TLS Checker for certificate, expiry, protocols, ciphers. These are separate checks because a strong result here does not prove that the adjacent surface is healthy.
For the background behind these signals, read Exposed LLM API Keys: How They Leak, How to Find Them and What to Do Next and Exposed Files: .git, .env, Backups and Debug Pages That Leak Your Site's Secrets. The Exposed LLM API key in public client-side code check reference explains the exact test, evidence and remediation used in the report. The Scan.now methodology explains request limits, scan boundaries and what the scanner deliberately does not attempt.
The scan expands only through explicit, same-origin public references and a bounded list of common leak paths.
Fetch its HTML and identify scripts and script preloads that the page exposes to every visitor.
Read same-origin JavaScript, named JavaScript or JSON chunks and linked source maps, within a fixed resource budget.
Make read-only requests for runtime configuration, environment, Git, database dump and backup locations, then verify the returned content.
Remove placeholders, group duplicates, redact the value and record only safe evidence for the authorised owner.
Choose the scan that matches where a key could have escaped. A public page scan and a local project scan answer different questions.
| Surface | Free page scan | Premium deep scan | Premium local folder scan |
|---|---|---|---|
| Entered page HTML | Included | Included | Not applicable |
| Same-origin scripts and named chunks | Up to 32 public client resources | Unique assets found across crawled pages | Built JavaScript and configuration files in the selected folder |
| Linked source maps | Included within the resource budget | Included across the crawl | Included when stored in the folder |
| Common exposure paths | Fixed, content-verified list of runtime config, .env, Git and backup paths | The same public checks plus every crawled page | Hidden and ordinary files can be checked directly |
| Other pages and sitemap URLs | Entered page only | Discoverable same-site pages up to the plan limit, while respecting robots.txt | Not applicable |
| Page behind a login | Not included | One exact URL using a temporary Authorization or Cookie header | Private project files do not require a website login |
Content verification matters: a path returning HTTP 200 is not automatically called a leak. The scanner checks whether the response resembles the expected file and ignores generic soft-404 pages.
Detection combines distinctive prefixes with nearby variable names. This reduces the false positives caused by random strings and shared key formats.
| Provider group | Examples recognised | How the match is assessed |
|---|---|---|
| Distinctive key formats | Anthropic, OpenRouter, Groq, Hugging Face, Replicate, Together AI, Perplexity and xAI | A provider-specific prefix plus length and character checks provides a high-confidence match. |
| OpenAI-compatible keys | OpenAI and compatible sk- credentials | Known payment-key prefixes are excluded so Stripe keys are not mislabelled as LLM keys. |
| Context-labelled values | Gemini, Mistral, Cohere, Fireworks AI and DeepSeek | An opaque value is reported only when it is assigned to a recognisable provider-specific key or token name. |
Google AIza values | Google Gemini | The format is shared by Google services, so nearby Gemini or Generative Language context is required. |
The answer always belongs to the exact scan scope shown in the report.
A recognisable credential was found in a scanned public resource. Revoke or rotate it first. Premium shows the provider, redacted fingerprint, resource and line needed to remove the correct copy.
No recognisable key was found in the pages, assets and paths covered by this run. This is useful evidence, but it is not proof that every private, unlinked or runtime-generated location is clean.
A one-page result covers the entered page and bounded deployment surface. Use a deep crawl for a full site and the local folder scanner for source files that HTTP can never reach.
Treat removal and credential rotation as separate jobs. Removing the file does not invalidate copies already downloaded.
Assume the public value was copied. Disable it in the provider console and issue a replacement with the smallest permissions and spend limit possible.
Check request history, models, source IP information, token volume and spend for activity that does not match the application.
Inspect frontend source, compiled bundles, source maps, runtime configuration, caches, backups and repository history. Redeploy after removing the secret.
Store the replacement in a server-only secret manager or environment variable, then expose only a narrow authenticated endpoint to the browser.
Run both the public deployment scan and local folder scan. A clean rescan confirms that the replaced build no longer exposes a recognisable copy in the tested scope.
The public result answers the urgent question without publishing a roadmap to the exposed resource.
| Capability | Free | Premium |
|---|---|---|
| Private YES or NO result | Included | Included |
| Provider and redacted fingerprint | Hidden | Included |
| Exact public resource and line | Hidden | Included |
| Deep crawl of discoverable pages | Not included | Up to the current plan limit |
| Authenticated exact-page scan | Not included | Included |
| Private local folder scan | Not included | Included, in the browser without uploading files |
| Bulk website scan | One site | Up to ten authorised sites at once |
Background reading written to go with these results.
9 min read · Updated Sep 20, 2026
Exposed LLM API Keys: How They Leak, How to Find Them and What to Do Next
An LLM API key in browser JavaScript is a public bearer credential. Learn how OpenAI, Anthropic, Gemini and other keys reach frontend...
Read the guide
9 min read · Updated Sep 12, 2026
Exposed Files: .git, .env, Backups and Debug Pages That Leak Your Site's Secrets
Many breaches start with a file that should never have been public: A .git folder, a .env with database credentials, a backup archive or...
Read the guide
9 min read · Updated Sep 18, 2026
How to Read a Security Scan Report: Severity, False Positives and What to Fix First
A scan report is a list of findings with severities, and the hard part is deciding what matters. How severities are assigned, how to...
Read the guide
13 min read · Updated Sep 13, 2026
Website Security: What a Vulnerability Scan Looks For and How to Fix It
A website vulnerability scan checks the parts of a site an attacker can reach without logging in: Transport security, HTTP headers,...
Read the guideIt recognises distinctive formats used by OpenAI-compatible services, Anthropic, OpenRouter, Groq, Hugging Face, Replicate, Together AI, Perplexity and xAI, plus opaque values assigned to provider-specific names for Gemini, Mistral, Cohere, Fireworks and DeepSeek. Because Google's AIza format is shared by unrelated services such as Maps, it is reported only with nearby Gemini context.
No. Validation could incur cost, disclose a credential to another system or change account state. The scanner uses offline format and context checks, redacts the value in memory and tells the owner where the copy appears.
No. Raw values are never returned by the scanner, written to the database or included in logs. The free report says only YES or NO. A Premium report contains a short redacted fingerprint, provider family, public resource URL and line number so the owner can remove the right copy.
Yes. It requests a fixed list of common .env, Git, configuration, SQL dump and backup paths and verifies the returned content so a site's generic 200 error page is not mistaken for a leak.
Paid, signed-in owners can supply one Authorization or Cookie header for the exact URL. It is used only during that scan, stripped before any cross-origin redirect and never stored. The scanner does not submit login forms.
It follows discoverable same-site links and sitemap URLs, up to your plan limit, then checks every crawled HTML page and each unique same-origin client asset. It respects robots.txt. Premium's browser-based local folder audit covers files the server never exposes; its optional Python version also checks remote servers and Git history.
No. It means no recognisable key was found in the public pages and deployment surface examined. Client-side execution, forms and provider validation are not performed, and private files require the Premium local folder audit.
Revoke or rotate the key first, review usage and billing, then remove it from the frontend source, build output, source maps, caches and repository history. Move the provider call behind a server-side endpoint and keep the replacement in a server-only secret manager.
Sign up free to keep scanning
You have used today's scans without an account. Creating one is completely free — no card and no plan needed — and it takes one click with Google.
We ask Google for your email address and nothing else. Without an account, the browser and password checks keep working, and your free scans come back tomorrow.