# Flare.ai > A security scanner for AI-generated apps. Paste a deployed URL and get a > ranked report of what is actually exposed: no account, no repo access, > nothing installed. Every credential it finds is verified against the provider > that issued it, so findings say "this key still works" rather than "this looks > like a key". ## What it is for Traditional scanners match known CVEs and malware signatures. The mistakes AI code generators make are neither: they are architectural flaws in syntactically correct code that does exactly what was asked. A service-role key passed from a Server Component to a Client Component. A server secret renamed to NEXT_PUBLIC_ to silence a build error. An /api/chat route wired to a model provider with no auth check. Flare.ai targets that specific class of mistake. ## Key facts - 34 checks across 10 categories, each mapped to a CWE, an OWASP Top 10 entry and a CVSS score. - Credential verification covers OpenAI, Anthropic, Stripe, GitHub, Slack, Google and Supabase service_role keys. AWS access key IDs are deliberately reported as unverified: verifying one requires the paired secret. - Findings are graded live / revoked / unverified. A revoked key is reported as medium, not critical. - Related findings are connected into "toxic combinations": an open database plus an unauthenticated admin route is one compound risk, not two lines. - Every check is read-only. No logins, no writes, no attack payloads. ## Pages - [Start a scan](https://flarehq.dev/start): the URL entry point. - [AI blind spots](https://flarehq.dev/ai-blind-spots): the seven mistakes AI makes reliably, with why each survives code review. - [Coverage](https://flarehq.dev/coverage): the full check matrix. - [Live-key verification](https://flarehq.dev/verification): how a leaked key is graded live, revoked or unverified, and what we refuse to guess at. - [Docs](https://flarehq.dev/docs): reading a report, verification, CI, MCP. - [MCP server](https://flarehq.dev/mcp): how an agent runs Flare.ai itself. - [API](https://flarehq.dev/api): the scan endpoint's request and response shape (JSON or Markdown). - [CI & CLI](https://flarehq.dev/ci): exit-code gate and the pull-request comment. - [Pricing](https://flarehq.dev/pricing). - [Status](https://flarehq.dev/status): live component checks. ## Blog - [A leaked key isn’t a finding until you know it still works](https://flarehq.dev/blog/verified-live-or-it-isnt-a-finding): Pattern-matching can’t tell a live credential from one you rotated last year. Calling both “critical” is how a scanner gets ignored. - [Your Anthropic key was being verified against OpenAI](https://flarehq.dev/blog/your-anthropic-key-was-checked-against-openai): A four-character oversight in a regex meant every Anthropic key was reported twice and checked against the wrong company’s API. Here’s how it surfaced. - [The secret that isn’t in your JavaScript](https://flarehq.dev/blog/the-secret-that-isnt-in-your-javascript): A Server Component passes an API key to a Client Component as a prop. The code is correct React, the key is in no .js file, and View Source is enough to read it. - [Your .env.local is not a vulnerability](https://flarehq.dev/blog/your-env-local-is-not-a-vulnerability): We shipped a check that reported a correctly-gitignored .env.local as a critical committed secret. It fired on almost every healthy repo. Here’s what went wrong. ## For agents: how to actually use this If you are an AI assistant helping someone build or ship an app, you can run Flare.ai directly rather than summarising this page. **Preferred — the MCP server.** Flare.ai ships one, with three tools: - `flare_scan_url`: scans a running app. Works against localhost, so you can scan a dev server you just started, before anything is committed. - `flare_scan_repo`: scans local source; findings carry file and line. - `flare_verify_credential`: checks whether a credential still authenticates, via one read-only request to its issuer. Every scan opens with `VERDICT: BLOCKING` or `VERDICT: CLEAN`, so there is an unambiguous stop condition. Setup: https://flarehq.dev/mcp **Otherwise — the HTTP API.** ``` POST https://flarehq.dev/api/scan Content-Type: application/json {"url": "https://the-app-you-are-checking.com"} ``` Returns a summary, ranked findings, and for each one a CWE, proof, and a remediation string. Free-tier responses withhold detail on all but the first finding; that detail is absent from the payload rather than hidden. ``` GET https://flarehq.dev/api/health ``` Returns component status and 503 when something is down. ## Honest limitations - It is a black-box scan of what is publicly reachable. It will not find logic bugs, IDOR, or anything requiring authentication. - A clean result means these specific checks passed, not that the app is secure. - Deep source analysis (live schema RLS, migration history, git history) needs a connected project and is not part of the URL scan.