{
  "data": {
    "a": {
      "slug": "fastmail",
      "name": "Fastmail API (JMAP)",
      "vendor": "Fastmail Pty Ltd",
      "vendorUrl": "https://www.fastmail.com",
      "kind": "http-api",
      "category": "mailbox-access",
      "summary": "Fastmail is a paid email, calendar and contacts host from Fastmail Pty Ltd in Melbourne. Agents reach a customer's mailbox through JMAP at api.fastmail.com, the open IETF protocol, or through the company's own MCP server.",
      "url": "https://www.anchorterminal.com/tools/fastmail",
      "markdownUrl": "https://www.anchorterminal.com/tools/fastmail.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/fastmail.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/fastmail.json",
      "repo": "https://github.com/fastmail/JMAP-Samples",
      "license": "Proprietary service under Fastmail's API Terms of Service and API Developer Policy. JMAP is an open IETF standard, and the sample code on GitHub is MIT",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is self-serve for the account owner. An API token is made in Settings, Privacy \u0026 Security, Manage API tokens, as type JMAP or MCP, with scopes for read-only access, Email, Email submission, Contacts and Masked Email, and is sent as `Authorization: Bearer`. Tokens are not available on Basic plans. An app distributed to other users needs OAuth 2.0 (authorisation code grant, PKCE S256, rotating refresh tokens), and the developer page says clients are registered by hand through the partnerships team. The MCP server takes OAuth or an MCP-type token, and the authorisation server metadata lists a registration endpoint.",
      "pricing": "paid",
      "pricingNotes": "API access is part of a mailbox plan, with no per-call charge. Individual is $6 a month or $60 a year, Business Standard $6 a user a month and Professional $10. Basic, at $4, has no API tokens. A trial of up to 30 days needs no card, so an agent's owner can start without a contract, with sending capped at 120 messages a day (https://www.fastmail.com/pricing/us/, checked 2026-10-08).",
      "priceSummary": "$6 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the developer page, the pricing page or the 401 responses from api.fastmail.com (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 123,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.fastmail.com/dev/",
      "capabilities": [
        "mailbox.read",
        "mailbox.search",
        "mailbox.send",
        "mailbox.drafts",
        "mailbox.sync"
      ],
      "tags": [
        "hosted",
        "paid",
        "trial",
        "jmap",
        "open-standard",
        "oauth",
        "api-key",
        "mcp",
        "email",
        "contacts",
        "masked-email",
        "status-page",
        "bug-bounty",
        "eu-data-residency"
      ],
      "lastRelease": "2026-04-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.1,
        "grade": "C",
        "agentReady": false,
        "rank": 620,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 26,
          "payments": 30,
          "reliability": 54,
          "schema": 52,
          "security": 60,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A mailbox API built on the open JMAP standard, with read-only tokens, six OAuth scopes and an MCP server that separates read, write and send access. Fastmail publishes no OpenAPI file, SDK, API changelog, request rate limit or SLA, and its customer terms forbid programmatically generated email to addresses outside the account.",
        "bestFor": "An agent working in its owner's own Fastmail mailbox, where JMAP gives batched reads, structured search and state-based sync on an open standard, and MCP gives a ready connection with read, write and send levels.",
        "strengths": [
          "JMAP is an IETF standard (RFC 8620, 8621 and 9610), so requests, types and errors are specified in public and not tied to one vendor",
          "API tokens can be read-only or limited to mail, sending, contacts or Masked Email, and are revocable in settings",
          "OAuth 2.0 requires PKCE with S256, rotates refresh tokens on every use and revokes the grant if an old one is replayed",
          "The MCP server at `https://api.fastmail.com/mcp`, launched 22 April 2026, has separate read, write and send levels chosen on the consent screen",
          "`properties`, `limit`, `bodyProperties` and `maxBodyValueBytes` size responses, and several calls batch into one request with back-references",
          "30-day trial with no card, a privacy policy with stated retention periods and a published list of 36 subprocessors"
        ],
        "weaknesses": [
          "The customer terms forbid programmatically generated email to addresses outside the account, and say the service is not for machine-to-machine workflows",
          "No OpenAPI file, llms.txt, official SDK or API changelog. The developer page points to the RFCs and four sample scripts",
          "No request rate limit, Retry-After guidance or SLA was found, and the API terms allow backwards-incompatible changes with notice only promised as an attempt",
          "Three partial outages between 25 August and 7 October 2026 blocked access for some users for 8 hours 16 minutes, 1 hour 8 minutes and 5 hours 23 minutes",
          "API tokens are not available on Basic plans, and the developer page says OAuth clients are registered by hand through the partnerships team",
          "No idempotency key on `EmailSubmission/set`, no confirmation step for delete or send, and no per-call access log",
          "Fastmail says it has not pursued SOC certification, and no ISO 27001 certificate was found"
        ],
        "agentNotes": [
          "Fetch `https://api.fastmail.com/jmap/session` with `Authorization: Bearer \u003ctoken\u003e` first. It returns the API URL, account IDs and the request limits to stay under",
          "Ask the owner for a read-only token unless the task writes. Sending needs both the Email and Email submission scopes",
          "Request only the `properties` you need. Body text is not returned unless `fetchTextBodyValues` is set, and `maxBodyValueBytes` caps it",
          "Sync with `Email/changes` from a stored state. On `cannotCalculateChanges`, fetch again from scratch",
          "Do not send generated mail to outside recipients without the owner's review. The customer terms forbid it, and trial accounts stop at 120 messages a day"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.1
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 26,
          "payments": 30,
          "reliability": 54,
          "schema": 52,
          "security": 60,
          "transparency": 62
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl https://api.fastmail.com/jmap/session \\\n  -H \"Authorization: Bearer YOUR_API_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/mailbox.read",
        "tool": "https://letme.dev/fastmail"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Individual plan, billed monthly",
          "unit": "month",
          "usd": 6,
          "note": "one mailbox, API tokens included, 30-day trial without a card"
        },
        {
          "item": "Individual plan, $60 billed yearly",
          "unit": "month",
          "usd": 5,
          "note": "one mailbox, API tokens included"
        },
        {
          "item": "Business Standard, billed monthly",
          "unit": "seat-month",
          "usd": 6,
          "note": "per user, API tokens included. Basic at $4 has none"
        }
      ],
      "provenance": {
        "legalEntity": "Fastmail Pty Ltd, ACN 142 646 580, PO Box 234, Collins Street West, VIC 8007, Australia",
        "domain": "fastmail.com",
        "domainRegistered": "1994-12-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.fastmail.com/policies/api-terms-of-service/",
        "privacy": "https://www.fastmail.com/policies/privacy/",
        "statusPage": "https://fastmailstatus.com/",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy names Fastmail Pty Ltd with ABN 31 142 646 580, and the terms of service give ACN 142 646 580, both at PO Box 234, Collins Street West, VIC 8007.",
          "RDAP for fastmail.com shows registration on 9 December 1994 and expiry on 8 December 2034.",
          "www.fastmail.com/.well-known/security.txt expires on 24 June 2027 and points to the bug bounty page for contact and policy.",
          "The API Terms of Service and the API Developer Policy together form the contract for API use, governed by the law of Victoria, Australia. The customer Terms of Service, last changed 10 October 2025 per its version list, govern the account the API reaches.",
          "The privacy policy lists versions back to 25 May 2020, the latest dated 2 July 2026.",
          "JMAP, OAuth and MCP all answer on api.fastmail.com. The status page is on fastmailstatus.com, hosted by Instatus.",
          "No API changelog was found."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/fastmail.json",
      "live": {
        "slug": "fastmail",
        "vendorStatus": {
          "page": "https://fastmailstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:57:54.65130148Z"
        },
        "updatedAt": "2026-10-09T07:57:54.65130148Z"
      }
    },
    "answer": "Gmail API scores 77.8 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in every scored category.",
    "b": {
      "slug": "gmail-api",
      "name": "Gmail API",
      "vendor": "Google",
      "vendorUrl": "https://developers.google.com/workspace/gmail",
      "kind": "http-api",
      "category": "mailbox-access",
      "summary": "Google's REST API for Gmail mailboxes. It searches and reads messages and threads, writes drafts, sends mail, manages labels and settings, and reports mailbox changes through history records and Cloud Pub/Sub push notifications. Access is by OAuth 2.0.",
      "url": "https://www.anchorterminal.com/tools/gmail-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/gmail-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gmail-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gmail-api.json",
      "repo": "https://github.com/googleapis/google-api-nodejs-client",
      "license": "Apache-2.0 (client libraries)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://gmail.googleapis.com/gmail/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@googleapis/gmail"
        },
        {
          "registry": "pypi",
          "name": "google-api-python-client"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 access token as a Bearer header, from a Google Cloud project with the Gmail API enabled and an OAuth consent screen. Self-serve for personal use, testing and apps internal to one Workspace organisation. A public app that requests any of the eight restricted scopes, which include `gmail.readonly` and `gmail.metadata`, needs Google's restricted-scope verification, and a CASA security assessment every 12 months if it reaches the data from or through a server. Workspace domains can use a service account with domain-wide delegation. The MCP server needs your own OAuth client ID and secret, the `gmail.readonly` and `gmail.compose` scopes, and Developer Preview Programme membership.",
      "pricing": "free",
      "pricingNotes": "All standard use is at no extra cost, and a free Google account and Cloud project are enough to start, with no card or contract. Limits are 1,200,000 quota units a minute per project, 6,000 a minute per user and a daily threshold of 80,000,000 units per project. Google says use above the daily threshold is planned to be charged to the Cloud billing account later in 2026, with details and at least 90 days' notice still to come (https://developers.google.com/workspace/gmail/api/reference/quota). A security assessment for restricted scopes is paid to a third-party assessor, at a cost Google's pages don't state.",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Gmail API guides, the quota page or the discovery document (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 23,
      "popularity": {
        "githubStars": 12262,
        "npmWeekly": 1091106,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.google.com/workspace/gmail/api/guides",
      "capabilities": [
        "mailbox.read",
        "mailbox.search",
        "mailbox.send",
        "mailbox.drafts",
        "mailbox.sync"
      ],
      "tags": [
        "hosted",
        "official",
        "free-tier",
        "mcp",
        "webhooks",
        "oauth",
        "typescript",
        "python",
        "enterprise"
      ],
      "lastRelease": "2026-09-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 77.8,
        "grade": "BB",
        "agentReady": true,
        "rank": 18,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 82,
          "security": 81,
          "transparency": 82
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "14 OAuth scopes, with `gmail.labels` non-sensitive, `gmail.send` sensitive and permanent delete reserved for the full `https://mail.google.com/` scope",
          "Quota published per method, 5 units for `messages.list`, 20 for `messages.get` and 100 for `messages.send`, against 6,000 units a minute per user",
          "`history.list` and Pub/Sub push notifications give incremental sync from a stored `historyId`",
          "`format=metadata`, `metadataHeaders`, `maxResults` and `fields` keep responses small",
          "No charge for standard use, up to 80,000,000 quota units a day per project"
        ],
        "weaknesses": [
          "Eight restricted scopes, including `gmail.readonly` and `gmail.metadata`, need restricted-scope verification for a public app",
          "An app that stores or transmits restricted data on servers needs a security assessment by a Google-approved assessor every 12 months",
          "No idempotency key on `messages.send`, and the error guide says a 200 response doesn't confirm the mail was sent",
          "MCP server limited to the Developer Preview Programme, with no send tool",
          "Price for use above the daily quota not yet published"
        ],
        "agentNotes": [
          "Ask for the narrowest scope. `gmail.labels` is non-sensitive and `gmail.send` is sensitive, while every scope that reads mail is restricted",
          "List with `messages.list` and `q` in Gmail search syntax, then fetch each ID with `format=metadata` or `full`. List calls return IDs only",
          "Send by posting an RFC 2822 message, base64url encoded, in `raw`. Set `threadId` and matching reply headers to stay in a thread",
          "Store the `historyId` and call `history.list`. On a 404, run a full sync. Call `watch` again at least every 7 days",
          "Back off exponentially on 403 and 429 rate errors, and keep batches to 50 requests or fewer"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 77.8
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 85,
          "payments": 35,
          "reliability": 90,
          "schema": 82,
          "security": 81,
          "transparency": 69
        },
        "provenanceScore": 94
      },
      "connect": {
        "http": "curl \"https://gmail.googleapis.com/gmail/v1/users/me/messages?q=is:unread\u0026maxResults=5\" \\\n  -H \"Authorization: Bearer $GOOGLE_ACCESS_TOKEN\"",
        "config": {
          "mcpServers": {
            "gmail": {
              "oauth": {
                "clientId": "OAUTH_CLIENT_ID",
                "clientSecret": "OAUTH_CLIENT_SECRET"
              },
              "serverUrl": "https://gmailmcp.googleapis.com/mcp/v1"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/mailbox.read",
        "tool": "https://letme.dev/gmail-api"
      },
      "sameCompany": [
        "gemini-api",
        "gemini-embedding",
        "vertex-ai-tuning",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "gemini-live",
        "google-adk",
        "google-secret-manager",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "firebase-cloud-messaging",
        "google-drive-api",
        "gemini-cli",
        "google-search-console",
        "google-ads-api",
        "google-forms",
        "google-sheets-api"
      ],
      "area": "communication",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "domainNote": "The endpoint is on gmail.googleapis.com, Google's API domain. google.com was registered in 1997.",
        "endpointOnVendorDomain": true,
        "terms": "https://developers.google.com/terms",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "https://www.google.com/appsstatus/dashboard/",
        "changelog": "https://developers.google.com/workspace/gmail/release-notes",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Google APIs Terms of Service (last modified 9 November 2021) name Google LLC, 1600 Amphitheatre Parkway, Mountain View.",
          "RDAP for google.com gives a registration date of 1997-09-15.",
          "www.google.com/.well-known/security.txt expires on 1 April 2030 and lists a contact, an encryption key and the vulnerability reward policy.",
          "The quota and scopes pages were last updated on 10 September 2026, the MCP setup guide on 18 September and the MCP reference on 21 July.",
          "Google publishes a discovery document for the API, not an OpenAPI spec.",
          "The Workspace status dashboard tracks the Gmail product, not the API on its own."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gmail-api.json",
      "live": {
        "slug": "gmail-api",
        "probe": {
          "target": "https://gmail.googleapis.com/gmail/v1",
          "method": "get",
          "lastAt": "2026-10-09T10:14:15.703561248Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 27,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 36,
          "p95ms24h": 62,
          "samples24h": 202,
          "samples30d": 202,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 109,
              "ok": 109
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.google.com/appsstatus/dashboard",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:57:58.65289671Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "googleapis/google-api-nodejs-client",
            "version": "agentidentity-v3.2.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-08T16:13:22.81620133Z"
          },
          {
            "registry": "npm",
            "name": "@googleapis/gmail",
            "version": "22.0.1",
            "seenAt": "2026-10-08T16:13:19.417774829Z"
          },
          {
            "registry": "pypi",
            "name": "google-api-python-client",
            "version": "2.201.0",
            "released": "2026-09-30",
            "seenAt": "2026-10-08T16:13:22.705637846Z"
          }
        ],
        "githubStars": 12263,
        "npmWeekly": 1091106,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-10-08T15:38:39.75078566Z"
        },
        "pages": [
          {
            "url": "https://developers.google.com/workspace/gmail/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:53.385163156Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4656378123eb"
          },
          {
            "url": "https://developers.google.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:49.55137795Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2eb11136bf24"
          }
        ],
        "updatedAt": "2026-10-09T10:14:15.703561248Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Fastmail Pty Ltd",
        "b": "Google",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://gmail.googleapis.com/gmail/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Fastmail's API Terms of Service and API Developer Policy. JMAP is an open IETF standard, and the sample code on GitHub is MIT",
        "b": "Apache-2.0 (client libraries)",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "23",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-04-22",
        "b": "2026-09-23",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2021-11-09",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "123 stars",
        "b": "12k stars, 1.1M npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Gmail API scores 77.8 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, Fastmail API (JMAP) or Gmail API?"
      },
      {
        "answer": "Fastmail API (JMAP) takes an API key or an OAuth sign-in. Gmail API uses an OAuth sign-in.",
        "question": "Do Fastmail API (JMAP) and Gmail API need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Fastmail API (JMAP). Gmail API has a hosted endpoint at https://gmail.googleapis.com/gmail/v1.",
        "question": "Can an agent call Fastmail API (JMAP) and Gmail API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent working in its owner's own Fastmail mailbox, where JMAP gives batched reads, structured search and state-based sync on an open standard, and MCP gives a ready connection with read, write and send levels.",
        "slug": "fastmail",
        "watchFor": "The customer terms forbid programmatically generated email to addresses outside the account, and say the service is not for machine-to-machine workflows"
      },
      {
        "aheadOn": [
          "Reliability, 90 against 54",
          "Schema \u0026 documentation, 82 against 52",
          "Agent ergonomics, 82 against 73",
          "Security \u0026 auth, 81 against 60",
          "Payments \u0026 pricing, 35 against 30",
          "Maintenance \u0026 community, 85 against 26",
          "Transparency \u0026 trust, 82 against 74"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "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.",
        "slug": "gmail-api",
        "watchFor": "Eight restricted scopes, including `gmail.readonly` and `gmail.metadata`, need restricted-scope verification for a public app"
      }
    ],
    "job": {
      "capability": "mailbox.read",
      "name": "Mailbox read"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail.json",
        "title": "EmailEngine vs Fastmail API (JMAP)",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-gmail-api.json",
        "title": "EmailEngine vs Gmail API",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-gmail-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-nylas-email.json",
        "title": "Fastmail API (JMAP) vs Nylas Email API",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-nylas-email"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-outlook-mail-graph.json",
        "title": "Fastmail API (JMAP) vs Outlook Mail (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-outlook-mail-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-unipile.json",
        "title": "Fastmail API (JMAP) vs Unipile",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-unipile"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-zoho-mail.json",
        "title": "Fastmail API (JMAP) vs Zoho Mail API",
        "url": "https://www.anchorterminal.com/compare/fastmail-vs-zoho-mail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-nylas-email.json",
        "title": "Gmail API vs Nylas Email API",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-nylas-email"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-outlook-mail-graph.json",
        "title": "Gmail API vs Outlook Mail (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-outlook-mail-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-unipile.json",
        "title": "Gmail API vs Unipile",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-unipile"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gmail-api-vs-zoho-mail.json",
        "title": "Gmail API vs Zoho Mail API",
        "url": "https://www.anchorterminal.com/compare/gmail-api-vs-zoho-mail"
      }
    ],
    "scores": [
      {
        "by": 36,
        "edge": "gmail-api",
        "fastmail": 54,
        "gmail-api": 90,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 30,
        "edge": "gmail-api",
        "fastmail": 52,
        "gmail-api": 82,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 9,
        "edge": "gmail-api",
        "fastmail": 73,
        "gmail-api": 82,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 21,
        "edge": "gmail-api",
        "fastmail": 60,
        "gmail-api": 81,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "edge": "gmail-api",
        "fastmail": 30,
        "gmail-api": 35,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 59,
        "edge": "gmail-api",
        "fastmail": 26,
        "gmail-api": 85,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 8,
        "edge": "gmail-api",
        "fastmail": 74,
        "gmail-api": 82,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Gmail API scores 77.8 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in every scored category. Both do mailbox read.",
    "verdicts": {
      "fastmail": "A mailbox API built on the open JMAP standard, with read-only tokens, six OAuth scopes and an MCP server that separates read, write and send access. Fastmail publishes no OpenAPI file, SDK, API changelog, request rate limit or SLA, and its customer terms forbid programmatically generated email to addresses outside the account.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api",
    "json": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.md",
    "slim": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.min.md"
  },
  "markdown": "Gmail API scores 77.8 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in every scored category. Both do mailbox read.\n\n- Fastmail API (JMAP): grade C, 54.1/100, rank #620 of 842. Markdown https://www.anchorterminal.com/tools/fastmail.md · JSON https://www.anchorterminal.com/api/v1/tools/fastmail.json\n- Gmail API: grade BB, 77.8/100, rank #18 of 842. Markdown https://www.anchorterminal.com/tools/gmail-api.md · JSON https://www.anchorterminal.com/api/v1/tools/gmail-api.json\n\n## Which one, for what\n\n### Fastmail API (JMAP) (C)\n\nGood for: An agent working in its owner's own Fastmail mailbox, where JMAP gives batched reads, structured search and state-based sync on an open standard, and MCP gives a ready connection with read, write and send levels.\n\nWatch for: The customer terms forbid programmatically generated email to addresses outside the account, and say the service is not for machine-to-machine workflows\n\n### Gmail API (BB)\n\nGood 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.\n\nAhead on:\n- Reliability, 90 against 54\n- Schema \u0026 documentation, 82 against 52\n- Agent ergonomics, 82 against 73\n- Security \u0026 auth, 81 against 60\n- Payments \u0026 pricing, 35 against 30\n- Maintenance \u0026 community, 85 against 26\n- Transparency \u0026 trust, 82 against 74\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n\nWatch for: Eight restricted scopes, including `gmail.readonly` and `gmail.metadata`, need restricted-scope verification for a public app\n\n\n## Score by category\n\n| Category | Weight | Fastmail API (JMAP) | Gmail API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 54 | 90 | Gmail API +36 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 52 | 82 | Gmail API +30 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 82 | Gmail API +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 81 | Gmail API +21 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Gmail API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 26 | 85 | Gmail API +59 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 82 | Gmail API +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **54.1 · C** | **77.8 · BB** | |\n\n## Facts side by side\n\n| Fact | Fastmail API (JMAP) | Gmail API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Fastmail Pty Ltd | Google |\n| Hosted endpoint | no (local only) | `https://gmail.googleapis.com/gmail/v1` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Paid | Free |\n| x402 | no | no |\n| Licence | Proprietary service under Fastmail's API Terms of Service and API Developer Policy. JMAP is an open IETF standard, and the sample code on GitHub is MIT | Apache-2.0 (client libraries) |\n| Tools exposed | none | 23 |\n| Read-only variant documented | yes | no |\n| llms.txt | no | no |\n| Last release | 2026-04-22 | 2026-09-23 |\n| Terms last updated | no date given | 2021-11-09 |\n| Privacy policy last updated | no date given | 2026-10-01 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 123 stars | 12k stars, 1.1M npm/wk |\n\n## Verdicts\n\n**Fastmail API (JMAP).** A mailbox API built on the open JMAP standard, with read-only tokens, six OAuth scopes and an MCP server that separates read, write and send access. Fastmail publishes no OpenAPI file, SDK, API changelog, request rate limit or SLA, and its customer terms forbid programmatically generated email to addresses outside the account.\n\n**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.\n\n## Before you call either\n\n### Fastmail API (JMAP)\n\n1. Fetch `https://api.fastmail.com/jmap/session` with `Authorization: Bearer \u003ctoken\u003e` first. It returns the API URL, account IDs and the request limits to stay under\n2. Ask the owner for a read-only token unless the task writes. Sending needs both the Email and Email submission scopes\n3. Request only the `properties` you need. Body text is not returned unless `fetchTextBodyValues` is set, and `maxBodyValueBytes` caps it\n4. Sync with `Email/changes` from a stored state. On `cannotCalculateChanges`, fetch again from scratch\n5. Do not send generated mail to outside recipients without the owner's review. The customer terms forbid it, and trial accounts stop at 120 messages a day\n\n### Gmail API\n\n1. Ask for the narrowest scope. `gmail.labels` is non-sensitive and `gmail.send` is sensitive, while every scope that reads mail is restricted\n2. List with `messages.list` and `q` in Gmail search syntax, then fetch each ID with `format=metadata` or `full`. List calls return IDs only\n3. Send by posting an RFC 2822 message, base64url encoded, in `raw`. Set `threadId` and matching reply headers to stay in a thread\n4. Store the `historyId` and call `history.list`. On a 404, run a full sync. Call `watch` again at least every 7 days\n5. Back off exponentially on 403 and 429 rate errors, and keep batches to 50 requests or fewer\n\n## Questions\n\n### Which is better for AI agents, Fastmail API (JMAP) or Gmail API?\n\nGmail API scores 77.8 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in every scored category.\n\n### Do Fastmail API (JMAP) and Gmail API need an API key?\n\nFastmail API (JMAP) takes an API key or an OAuth sign-in. Gmail API uses an OAuth sign-in.\n\n### Can an agent call Fastmail API (JMAP) and Gmail API without installing anything?\n\nNo hosted endpoint is listed for Fastmail API (JMAP). Gmail API has a hosted endpoint at https://gmail.googleapis.com/gmail/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"fastmail\", \"b\": \"gmail-api\"}`. From a terminal: `anchor compare fastmail gmail-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/fastmail.json and https://www.anchorterminal.com/api/v1/tools/gmail-api.json\n\n## Other comparisons with Fastmail API (JMAP) or Gmail API\n\n- [EmailEngine vs Fastmail API (JMAP)](https://www.anchorterminal.com/compare/emailengine-vs-fastmail.md)\n- [EmailEngine vs Gmail API](https://www.anchorterminal.com/compare/emailengine-vs-gmail-api.md)\n- [Fastmail API (JMAP) vs Nylas Email API](https://www.anchorterminal.com/compare/fastmail-vs-nylas-email.md)\n- [Fastmail API (JMAP) vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/fastmail-vs-outlook-mail-graph.md)\n- [Fastmail API (JMAP) vs Unipile](https://www.anchorterminal.com/compare/fastmail-vs-unipile.md)\n- [Fastmail API (JMAP) vs Zoho Mail API](https://www.anchorterminal.com/compare/fastmail-vs-zoho-mail.md)\n- [Gmail API vs Nylas Email API](https://www.anchorterminal.com/compare/gmail-api-vs-nylas-email.md)\n- [Gmail API vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/gmail-api-vs-outlook-mail-graph.md)\n- [Gmail API vs Unipile](https://www.anchorterminal.com/compare/gmail-api-vs-unipile.md)\n- [Gmail API vs Zoho Mail API](https://www.anchorterminal.com/compare/gmail-api-vs-zoho-mail.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Fastmail API (JMAP) vs Gmail API",
        "url": ""
      }
    ],
    "description": "Gmail API scores 77.8 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in every scored category. Both do mailbox read. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Fastmail API (JMAP) C 54.1",
      "Gmail API BB 77.8",
      "scores"
    ],
    "h1": "Fastmail API (JMAP) vs Gmail API",
    "image": "https://www.anchorterminal.com/assets/og/compare-fastmail-vs-gmail-api.png",
    "path": "/compare/fastmail-vs-gmail-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Fastmail API (JMAP) vs Gmail API for AI agents, C 54.1 vs BB 77.8",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 730
  },
  "version": 1
}
