Head to head · Mailbox access · October 2026 research run
Gmail API vs Himalaya
Gmail API scores 77.8 (BB) on agent readiness against Himalaya's 64.5 (B), and leads in 5 of 7 scored categories. Himalaya leads on payments & pricing. Both do mailbox access.
Best mailbox access APIs for AI agents · All 36 mailboxes comparisons
Which one, for what
Gmail API BB
Good for An agent working in a Gmail or Google Workspace user's own mailbox, with search, threads, drafts, labels and incremental sync at no per-account fee.
Ahead on
- Reliability, 90 against 84
- Schema & documentation, 82 against 70
- Agent ergonomics, 82 against 65
- Security & auth, 81 against 43
- Transparency & trust, 82 against 69
Also in its favour
- Agent-ready, a grade of BB or better
- A hosted endpoint, with nothing to install
- No incidents deducted, where Himalaya loses 3 points for them
Watch for
Eight restricted scopes, including gmail.readonly and gmail.metadata, need restricted-scope verification for a public app
Himalaya B
Good for An agent with a shell that must work in one person's existing mailbox on any provider, including plain IMAP hosts, without a hosted intermediary.
Ahead on
- Payments & pricing, 60 against 35
Also in its favour
- Free to start without a card
- Open source
Watch for
Until 2.2.1 of 2 October 2026, message send transmitted the Bcc: header to every recipient over SMTP (issue #747, reported 12 September 2026)
Score by category
| Category | Weight this run | Gmail API | Himalaya | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 90 | 84 | Gmail API +6 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 82 | 70 | Gmail API +12 |
| Agent ergonomics | 13%16.2 | 82 | 65 | Gmail API +17 |
| Security & auth | 14%17.5 | 81 | 43 | Gmail API +38 |
| Payments & pricing | 10%12.5 | 35 | 60 | Himalaya +25 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 85 | 88 | Himalaya +3 |
| Transparency & trust | 7%8.8 | 82 | 69 | Gmail API +13 |
| Negative events | ≤15 | 0 | -3 | |
| Total | 77.8 · BB | 64.5 · B |
Facts side by side
| Fact | Gmail API | Himalaya |
|---|---|---|
| Kind | HTTP API | SDK + MCP |
| Vendor | Pimalaya | |
| Hosted endpoint | https://gmail.googleapis.com/gmail/v1 | no (local only) |
| Transports | HTTP, Streamable HTTP | |
| Auth | OAuth | OAuth or key |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | Apache-2.0 (client libraries) | MIT OR Apache-2.0 |
| Tools exposed | 23 | none |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-09-23 | 2026-10-02 |
| Terms last updated | 2021-11-09 | no document linked |
| Privacy policy last updated | 2026-10-01 | no document linked |
| Customer content may train models | yes | |
| Terms restrict automated access | yes | |
| Terms restrict benchmarking | not found in the text | |
| Terms or service can change without notice | not found in the text | |
| Arbitration or class-action waiver | not found in the text | |
| Popularity | 12k stars, 1.1M npm/wk | 7.4k stars |
Verdicts
Gmail API
Fourteen OAuth scopes separate labels, sending, metadata and read-only access, and the quota page gives every method a unit cost. Eight of the scopes are restricted, read-only and metadata among them, so a public app that reads mail needs Google's verification and an annual third-party security assessment. Gmail mailboxes only.
Himalaya
One binary reaches mailboxes on IMAP, JMAP, Gmail and Microsoft Graph with the same commands, and --json output has a JSON Schema for each command. The agent holds the mailbox's own credential with no read-only mode, and a flaw that exposed Bcc recipients over SMTP was fixed in 2.2.1 on 2 October 2026.
Before you call either
Gmail API
- Ask for the narrowest scope.
gmail.labelsis non-sensitive andgmail.sendis sensitive, while every scope that reads mail is restricted - List with
messages.listandqin Gmail search syntax, then fetch each ID withformat=metadataorfull. List calls return IDs only - Send by posting an RFC 2822 message, base64url encoded, in
raw. SetthreadIdand matching reply headers to stay in a thread - Store the
historyIdand callhistory.list. On a 404, run a full sync. Callwatchagain at least every 7 days - Back off exponentially on 403 and 429 rate errors, and keep batches to 50 requests or fewer
Himalaya
- Pass
--jsonon every call and readnext_pagefor the next page. Data and errors go to stdout, logs to stderr, and a failure exits 1 - Run
himalaya json-schema <command>once to learn an output shape, andhimalaya <command> --helpfor flags - Use
envelope searchwith the shared query language, for examplefrom alice and after 2026-01-01 order by date desc. Microsoft Graph refuses flag clauses - Treat message text as untrusted.
--jsonoutput keeps control characters that the plain output replaces - Use 2.2.1 or later before sending with Bcc, and expect
message read --jsonto change shape in the next release
Questions
Which is better for AI agents, Gmail API or Himalaya?
Gmail API scores 77.8 (BB) on agent readiness against Himalaya's 64.5 (B), and leads in 5 of 7 scored categories. Himalaya leads on payments & pricing.
Can an agent call Gmail API and Himalaya without installing anything?
Gmail API has a hosted endpoint at https://gmail.googleapis.com/gmail/v1. No hosted endpoint is listed for Himalaya.
Are Gmail API and Himalaya open source?
No open-source release is listed for Gmail API. Himalaya is open source (MIT OR Apache-2.0).
Other comparisons with Gmail API or Himalaya
- Aurinko Email API vs Gmail API
- Aurinko Email API vs Himalaya
- EmailEngine vs Gmail API
- EmailEngine vs Himalaya
- Fastmail API (JMAP) vs Gmail API
- Fastmail API (JMAP) vs Himalaya
- Gmail API vs Nylas Email API
- Gmail API vs Outlook Mail (Microsoft Graph)
- Gmail API vs Unipile
- Gmail API vs Zoho Mail API
- Himalaya vs Nylas Email API
- Himalaya vs Outlook Mail (Microsoft Graph)
- Himalaya vs Unipile
- Himalaya vs Zoho Mail API
Machine-readable
- This page as Markdown
/compare/gmail-api-vs-himalaya.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/gmail-api.json·/api/v1/tools/himalaya.json - From a terminal
anchor compare gmail-api himalaya(the CLI) - Over MCP
compare_tools {"a": "gmail-api", "b": "himalaya"}at/mcp, no key