gamesbylevi

Privacy Policy — Bulk Delete Emails for Gmail™

Last updated: 9 November 2026
Extension: Bulk Delete Emails for Gmail™ — Mass Unsubscribe & Cleanup
Contact: [email protected]


The short version

Bulk Delete Emails for Gmail™ runs entirely inside your browser.


What the extension accesses

1. Gmail message metadata

Scanning your mailbox — the step that groups it by sender — uses Gmail's format=metadata mode with an explicit allowlist of headers, and nothing else:

HeaderWhy it is needed
FromGroup your mail by sender — the core of the product
SubjectShown as a one-line example so you can recognise a sender
DatePower the "oldest / newest" columns and "older than N months"
List-UnsubscribeFind the unsubscribe endpoint for a mailing list
List-Unsubscribe-PostDetect RFC 8058 one-click support

Gmail also returns sizeEstimate and internalDate with every message; those drive the "space used" figures.

format=metadata means Google does not send us the message body. No email text, no inline images. Not "we choose not to look" — the API response does not contain it.

2. Attachments, only when you export them

Listing and exporting attachments is the one feature that looks at more than headers, so here is exactly what it does and does not read.

Finding attachments. To know a message has a budget.xlsx in it, the extension has to see the message's MIME structure, and Gmail exposes that only through format=full — which would normally return the decoded message body as well. Every such request therefore carries a fields mask naming only the four things needed: each part's filename, mimeType, body/size and body/attachmentId.

fields is applied by Google before the response is built, so this is the same guarantee as format=metadata: the message text is not sent and then discarded, it is never transmitted. The mask never names body/data and never names headers, so message text and recipient lists stay on Google's side of the connection. You can check this claim yourself: open src/attachments.js and read the two constants PART_FIELDS and STRUCTURE_FIELDS. They are the complete set of fields any request in that file asks for, and neither names body/data or headers.

Downloading attachments. The bytes of an attachment are fetched only for the specific files you tick, and only when you click Export. They are held in your browser's memory just long enough to build a ZIP, which your browser then saves like any other download. Nothing is uploaded, and the extension has no server to upload it to.

A dry run resolves names and sizes without downloading anything, so you can see what an export would contain before any attachment leaves Google.

3. Your email address

Read once, from users.getProfile, to display which account is connected in the dashboard header. It is not stored anywhere outside your browser and is not sent to us or anyone else.

4. Labels

The extension adds and removes the TRASH and INBOX labels on messages you select. That is what "move to Trash" and "undo" mean technically.

What is stored, and where

All of it lives in chrome.storage.local — a private, per-extension area on your own computer. Nothing is written to chrome.storage.sync, so none of this travels through your Google account to your other devices.

StoredContentsWhy
Scan cachePer-sender name, address, message count, total size, newest/oldest dates, unsubscribe URLs, message idsSo reopening the dashboard is instant instead of re-scanning
Run historyUp to 10 cleanup summaries; the newest safety journal includes pending/in-flight/succeeded message IDs and original Inbox statePowers Resume and Undo. If Chrome storage is tight, older ID arrays may be dropped while their non-actionable summary remains
Unsubscribe ledgerSender address → status and timestampSo you are not asked to unsubscribe from the same list twice
Protection rulesSender addresses or domains you enterTo exclude important mail from cleanup and unsubscribe at the final action boundary
Unsubscribe reportsThe last 10 local runs: sender, method, result and error textTo explain failures and retry only failed attempts
SettingsYour query, scan depth and dry-run preferenceConvenience

You can erase all of it at any time by removing the extension, or from chrome://extensions → Bulk Delete Emails for Gmail™ → Details → Site settings. Uninstalling deletes it permanently and immediately.

Network requests, in full

This is the complete list. There are no others.

  1. https://www.googleapis.com/gmail/v1/... and .../batch/gmail/v1
    Your own mailbox, authorised by a token Chrome issues to you. Requests go directly from your browser to Google.

  2. https://oauth2.googleapis.com/revoke
    Only when you click "Reconnect Google account", to revoke the old token.

  3. A sender's public HTTPS unsubscribe URL, and only when you explicitly ask to unsubscribe from that sender. This is an RFC 8058 one-click POST containing the fixed body List-Unsubscribe=One-Click. It is sent with credentials: 'omit', so your cookies for that domain are not included. Permission for that domain is requested at that moment and released afterwards. Plain HTTP, URLs containing embedded credentials, localhost, .local, loopback, link-local and private-network destinations are blocked.

What we do NOT do

Google API Services User Data Policy

Bulk Delete Emails for Gmail™'s use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

Specifically:

Revoking access

At any time: https://myaccount.google.com/permissions → Bulk Delete Emails for Gmail™ → Remove access. The extension also has a "Reconnect Google account" button that revokes its current token.

Retention

Because nothing is transmitted to us, we retain nothing. Data in your browser persists until you clear it or uninstall the extension. The scan cache keeps at most 8 recent scans and history keeps up to 10 summaries; older entries are evicted automatically. Under storage pressure, older message-ID arrays can be removed sooner, which disables Undo for those older summaries.

Children

Bulk Delete Emails for Gmail™ is not directed at children under 13 and does not knowingly collect data from them.

Changes to this policy

Material changes will be reflected here with an updated date and noted in the Chrome Web Store listing's changelog.