Manage multiple Gmail accounts through a single Google Cloud project. One OAuth client, separate token per account.
text
secrets/inbox/
client_secret.json — OAuth 2.0 Desktop client credentials (shared)
accounts.json — {"account@gmail.com": {"label": ..., "token_file": "token-..."}}
token-account-at-gmail-dot-com.json — per-account OAuth token
scripts/inbox/
inbox-auth-final.py — one-shot OAuth: opens browser, saves token
inbox-check.py — read/filter/triage/delete via Gmail API
python3 scripts/inbox-auth-final.py <email> on machine with browser accesssecrets/inbox/token-<sanitized>.jsonaccounts.json auto-updatedSanitization: @ → -at-, . → -dot-
gmail.readonly — read messagesgmail.modify — trash, archive, mark read, labelNot used: gmail.send / gmail.compose (no auto-sending unless explicitly added)
text
GET /gmail/v1/users/me/messages?labelIds=INBOX&maxResults=N
GET /gmail/v1/users/me/messages/{id}?format=metadata&metadataHeaders=From,Subject,Date
Use Gmail query syntax via q parameter:
from:traveloka — all from senderis:unread — unread only-from:accounts.google.com — exclude security alertsafter:2026/05/01 — date filtertext
POST /gmail/v1/users/me/messages/{id}/trash
Batch via new_batch_http_request() for bulk operations (100 per batch).
SenderActionReasonTravelokaTrashPromo emailsFlokkTrashPromo emailsFossilEraTrashPromo emailsTIDAL monthly reportsTrashOld newslettersBloomThisTrashFeedback/promoHelplingKeepActual remindersSplitwiseKeepBalance updatesSRXKeepProperty updatesNLBKeepAccount notifications