← Back to API Key Leak Intercept

Privacy Policy

API Key Leak Intercept: Chrome Extension · Version 1.3.4 · Last updated: 12 November 2026

Short version: Message text and detected secrets never leave your browser. What the extension does send is small and routine: a daily fetch of its signed detection configuration, and with a Pro license a daily license check (the key and a per-install identifier, so a key cannot be used on more machines than were paid for). Personal Pro also relays catch metadata — the site, the page URL up to the path, the secret type by name, severity, the action taken, the time, the extension version, the account email, and, if you typed one, a short justification — to your account’s activity feed on the backend, where up to 500 entries are stored. The secret value itself is never transmitted. In team mode (IT-managed), the same kind of metadata goes to channels IT configures, and a heartbeat tells IT the install is running. Pro accounts exist for paying customers only and hold your email, a password hash, and billing records.

Who makes this

API Key Leak Intercept is built and maintained by Dario Cositore, an independent developer based in Castelleone, Italy. Contact: support@dariocositore.com

This page is the official privacy policy for the extension and the URL submitted to the Chrome Web Store. The Firefox build uses the same detection, the same network requests, and this same policy.

What the extension does

API Key Leak Intercept has a single purpose: it detects API keys, secrets, and personal data in text you are about to send from the browser, and warns you before it is sent.

It works by injecting a content script into supported websites (AI chat sites, or all sites in universal mode). The script monitors input fields for the Enter key or send button. Before the message is sent, it runs a set of regex patterns against the text. If a secret or PII is found, a modal appears with three options: Cancel (do not send), Send anyway (override), or Redact (replace secrets with typed placeholders like [API_KEY_1]).

All detection runs locally in your browser. Your text, your secrets, and the patterns themselves stay on your machine. Redacting replaces the secret in the message box with a placeholder before it is sent, so the extension does change the text when you choose that option.

Right after installation the extension opens a short welcome page built into the extension itself. It explains what the extension reads and asks you to turn protection on. Scanning stays off until you accept, and the page makes no network requests. Enterprise installs managed by policy start with protection on.

Personal mode (default)

In personal mode, which is the default, detection runs entirely on your device. Your message text and the secret values found in it are never transmitted anywhere. What leaves the browser depends on whether you are on the free plan or on personal Pro:

Team / IT mode (enterprise)

In team mode, which requires an organization ID provided by your IT administrator, the extension sends alert metadata to channels IT configures, and stores a copy on the backend for the IT dashboard, in addition to the configuration fetch, the entitlement check, and license verification.

What is sent:

What is never sent:

Alerts are sent to channels IT configures: Slack webhooks, Microsoft Teams webhooks, Telegram bots, generic webhooks, email (via Resend), and the IT dashboard (Cloudflare Worker). The IT administrator controls which channels are enabled and where alerts go.

Alerts can also be forwarded to additional email addresses specified by IT or the employee (e.g., a manager or security team). A copy of every alert stays in the local audit log (last 100), and where the IT dashboard is in use the backend stores up to 500 alerts per organization.

Data collection summary

Personal free: Nothing is collected beyond the daily signed configuration fetch. Your text stays in your browser.

Personal Pro: Catch metadata (site, page URL up to the path, secret type, severity, action, timestamp, extension version, account email, optional justification) is sent to the backend and stored in Cloudflare D1, up to 500 entries, until you clear the log or ask for deletion. The secret value and the message text are never sent. A daily license check sends the license key and a per-install identifier.

Team mode: The same kind of alert metadata goes to IT-configured channels and to the backend (up to 500 alerts per organization, in Cloudflare D1). The secret value, the message content, and your browsing history stay out of it. A heartbeat, when enabled, reports that the install is running.

Data storage

Local (all modes): Everything the extension keeps lives in chrome.storage.local, which belongs to your browser profile. Settings, warning counter, Pro status and license key, team configuration (including any webhook URLs and tokens you save there), and the audit log of the last 100 alerts. Nothing here is synced to a server.

Backend (Pro and team mode): The Cloudflare Worker behind the IT dashboard holds license records (key, subscription ID, payer email, plan, cancellation date) and account records (email, a PBKDF2 password hash, and the Google account identifier when you sign in with Google; passwords are never stored in readable form). When team alerting is on, or when personal Pro relays a catch, it also holds up to 500 alerts per organization or personal Pro account in Cloudflare D1, plus the alert channel credentials the administrator saves in the portal (Slack and Teams webhook URLs, the Telegram bot token, custom webhook URL, forwarding email addresses) so alerts can be sent server-side. Accounts are only ever created through a verified checkout (Waffo Pancake or PayPal). The portal adds short-lived records: session tokens (7 days on activity, 30 days maximum), one-time set-password links (24 hours), and support messages, kept until you ask for deletion. Cancelled subscriptions keep a "Pro until" date so access runs to the end of the paid period.

Retention and deletion: Local data goes away when you clear it in the popup or uninstall the extension. Backend records are deleted on request. Email support@dariocositore.com and say which license key or organization ID is yours.

Data transmission

Detection, storage, and all processing happen locally. The extension still reaches the network in these situations:

If you uninstall, the browser opens a feedback page on this site. It carries the extension version and nothing about your browsing. Extension updates come from the install page, and from the Chrome Web Store once the listing is live. Payments run on Waffo Pancake's checkout, with PayPal available as a fallback. The backend receives the subscription events from the payment provider and keeps the license record they create. Nothing else is sent. The extension calls no analytics, tracking, or advertising endpoint.

The manage page on dariocositore.com is separate from the extension and does nothing until you use it. Pro accounts are created right after the payment is approved: the backend verifies the subscription with Waffo Pancake or PayPal, creates your account and license record (email, key, plan), and emails the key to the address on the order. The key is not shown during checkout and never sent to any other address; you can view it in the console after signing in. The purchase email also carries a one-time link for choosing your password; signing in later is email and password, or Continue with Google, in which case Google shares your name, email, and account identifier and we store the identifier and email. Sign-in creates a session cookie that lives 7 days in the backend and refreshes while you use it, up to 30 days. A support message you send from the portal is stored in the backend and emailed to the developer, and a confirmation copy goes to you through Resend.

Why the extension needs permissions

storage: To save your settings (enabled/disabled, categories, custom patterns), warning counter, Pro license key, team configuration, and audit log in chrome.storage.local.

alarms: To run the configuration check once every 24 hours, one license revalidation a day when a Pro license key is stored, and, in team mode, a heartbeat every 6 hours. Nothing else is scheduled.

scripting: To register the content script at runtime when Universal mode is on, or when an IT admin adds extra sites. The default install runs from a static declaration scoped to the AI chat list and uses no runtime registration.

Host permissions: Scoped to the AI chat sites listed in the manifest, Google included, to api.dariocositore.com, the extension's own backend, and to the three services that carry team alerts: api.resend.com for email, and the Microsoft Teams webhook hosts webhook.office.com and logic.azure.com. The content script watches the AI chat sites before a message is sent. The backend origin carries license verification, the configuration fetch, team alerts and the heartbeat. Detecting an enterprise force-install reads the extension's own install type and needs no permission of its own.

Optional host access (<all_urls>): Asked for in the popup only when you turn on Universal mode, and only for the sites an IT admin adds on top of the list. Declining changes nothing: Universal mode stays off and the extension keeps running on the AI chat list alone.

Optional host access (hooks.slack.com, api.telegram.org): Asked for when a team install has Slack or Telegram alerts enabled, so the extension can deliver those alerts from the browser. Declining means those two channels stay silent; other channels and the backend relay are unaffected. A generic webhook asks for the host of the URL IT configured.

Third parties

No user data is sold or transferred to third parties for commercial purposes. Nothing here is used for advertising or profiling.

The infrastructure providers that process data when you use paid or team features are:

In team mode, alerts also go to the webhook destinations your IT administrator explicitly configures (Slack, Microsoft Teams, Telegram, email, or custom SIEM webhook), where your employer acts as the data controller.

The IT console and dashboard are authenticated by your license key or organization admin key. Treat your license key, admin key, and organization ID like credentials, and clear or delete your organization's alert log at any time from the manage portal or by emailing support@dariocositore.com.

Children

The extension is not directed at children under 13. Message text and secret values are never collected from anyone. In personal Pro and in team mode, only the metadata described on this page is transmitted, and team mode is intended for an enterprise context where children are not the users.

Changes to this policy

If the extension's data practices change in a future version, this page will be updated before that version is published. The last-updated date at the top of this page reflects the current version.

Your rights under the GDPR

The developer is the data controller for everything described here except team-mode alert data, where your employer controls the data and this extension is the tool.

You can ask for a copy of the personal data held about you, have it corrected or deleted, restrict or object to its processing, or receive it in a portable format. Write to support@dariocositore.com. Requests are answered within 30 days. If the answer does not satisfy you, you can complain to the Garante per la protezione dei dati personali, the Italian data protection authority.

The legal basis for the backend records is legitimate interest in delivering the product you bought or asked for: license verification, subscription events, team alerting. Nothing here involves automated decision-making.

Contact

Questions about this privacy policy or the extension's data practices: support@dariocositore.com

This policy can also be reached from the extension's homepage at dariocositore.com/tools/api-key-leak-intercept/.

Chrome Web Store required disclosures

The following disclosures are required by the Chrome Web Store Developer Program Policies and are certified as true:

I do not sell or transfer user data to third parties, apart from the approved use cases (team-mode alerting to IT-configured channels).

I do not use or transfer user data for purposes that are unrelated to the extension's single purpose of detecting secrets in text about to be sent from the browser.

I do not use or transfer user data to determine creditworthiness or for lending purposes.

In personal free mode, no user data is collected. The only routine request is the daily configuration fetch, which carries no message data. In personal Pro, a license check sends the key and a per-install identifier, and catch metadata (site, page URL up to the path, secret type, severity, action, timestamp, extension version, account email, optional justification) is sent to the backend for the account activity feed. The secret value and the message text are never sent.

Accounts exist only for paying customers: registration requires a verified checkout (Waffo Pancake or PayPal), sign-in is email and password or Continue with Google (a license key works as the fallback), and the backend stores the account email, password hash, license record, session token (7 days on activity), and any support message, for license management and support only.

In team mode, only alert metadata (site, page URL, secret type, severity, action, timestamp, user email) is transmitted to IT-configured channels. The secret itself is never transmitted.