{
  "data": {
    "a": {
      "slug": "emailengine",
      "name": "EmailEngine",
      "vendor": "Postal Systems OÜ",
      "vendorUrl": "https://emailengine.app",
      "kind": "http-api",
      "category": "mailbox-access",
      "summary": "EmailEngine is self-hosted software from Postal Systems that puts one REST API over Gmail, Microsoft 365 and IMAP mailboxes, with webhooks for new mail and a beta MCP server. The owner runs it with Redis.",
      "url": "https://www.anchorterminal.com/tools/emailengine",
      "markdownUrl": "https://www.anchorterminal.com/tools/emailengine.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/emailengine.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/emailengine.json",
      "repo": "https://github.com/postalsys/emailengine",
      "license": "Source available under the EmailEngine licence agreement, version 2.1 of 17 October 2023. Not open source. The PHP SDK is MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "emailengine-app"
        },
        {
          "registry": "oci",
          "name": "postalsys/emailengine"
        },
        {
          "registry": "packagist",
          "name": "postalsys/emailengine-php"
        }
      ],
      "auth": "api-key",
      "authNotes": "Access is granted by whoever runs the instance, with no vendor approval or app review. Every request takes a 64-character token as `Authorization: Bearer`, or in the `access_token` query parameter. Tokens are created in the admin interface, with the CLI (`emailengine tokens issue`) or through POST /v1/tokens, which only mints tokens bound to one account or narrowed by a permissions record. A token carries scopes (`*`, api, metrics, smtp, imap-proxy, mcp, mcp-manage), an optional account binding, allowlists of actions (read, write, send, destructive) and groups, an IP allowlist, an expiry and a rate limit. The beta MCP endpoint also has an optional built-in OAuth 2.1 server. Mailboxes are connected with the operator's own Google and Microsoft OAuth2 apps, service accounts or IMAP passwords, which stay inside the instance.",
      "pricing": "paid",
      "pricingNotes": "$1,450 or EUR 1,200 a year, excluding VAT, for unlimited mailboxes, instances and API calls, bought with an account at postalsys.com. Every install can start a 14-day trial with full functionality from its own dashboard, with no sign-up and no card, so an agent's owner can start without a contract. When the trial ends the instance stops processing accounts until a licence key is added. A perpetual licence is sold through sales with no public price. The owner also pays for the server and Redis (https://emailengine.app/, https://postalsys.com/plans, checked 2026-10-08).",
      "priceSummary": "$120.83 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on emailengine.app, in the documentation or in the OpenAPI spec (checked 2026-10-08). Licences are bought by card at postalsys.com, with Stripe named as the payment processor.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2237,
        "npmWeekly": 388,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.emailengine.app/",
      "llmsTxt": "https://emailengine.app/llms.txt",
      "openapi": "https://go.emailengine.app/swagger.json",
      "capabilities": [
        "mailbox.read",
        "mailbox.search",
        "mailbox.send",
        "mailbox.drafts",
        "mailbox.sync"
      ],
      "tags": [
        "self-hosted",
        "source-available",
        "paid",
        "trial",
        "api-key",
        "openapi",
        "llms-txt",
        "mcp",
        "webhooks",
        "imap",
        "gmail",
        "microsoft-365",
        "docker",
        "nodejs",
        "php"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.4,
        "grade": "BB",
        "agentReady": true,
        "rank": 123,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 81,
          "payments": 40,
          "reliability": 79,
          "schema": 91,
          "security": 71,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "27 September 2026. Version 2.81.2, a patch release, removed the `bounces` field from the message list, message details and messageNew payloads, listed under bug fixes with no earlier notice found in the changelog. The bounce still arrives through the messageBounce webhook, and the entry is documented, so the smallest deduction applies (https://github.com/postalsys/emailengine/blob/master/CHANGELOG.md)"
        ],
        "verdict": "A self-hosted REST API over Gmail, Microsoft 365 and IMAP, with a public OpenAPI 3.0 spec and tokens that can be bound to one account, limited by action and group, and rate limited. It needs a server, Redis and a $1,450 yearly licence after a 14-day trial, and the MCP endpoint is a beta, off by default.",
        "bestFor": "A team that must keep mailbox access on its own infrastructure, has many mailboxes across Gmail, Microsoft 365 and IMAP, and can run a server and Redis.",
        "strengths": [
          "Public OpenAPI 3.0 spec for version 2.82.2 with 82 operations, plus llms.txt on both sites and a capabilities.json manifest",
          "Tokens can be bound to one account, narrowed by action and group, limited by IP range, expiry and rate, and are stored only as SHA-256 hashes",
          "Idempotency-Key header on both send routes, and 429 responses carry Retry-After and a ttl field",
          "Ten tagged releases between 7 September and 5 October 2026, and the last eight test runs on master passed",
          "Written prompt-injection guidance, with MCP mail access set to none by default and message bodies returned as sanitised HTML"
        ],
        "weaknesses": [
          "Not open source. Running it beyond the 14-day trial needs a subscription at $1,450 or EUR 1,200 a year",
          "The owner has to run a server and Redis. There is no hosted service, status page or SLA",
          "The MCP endpoint is labelled beta, is off by default, and its tool set may change between releases",
          "A token may also travel in the `access_token` query parameter, and API authentication can be switched off in settings",
          "Version 2.81.2, a patch release, removed the `bounces` field from message responses, and 2.82.0 removed the Document Store in a minor release",
          "One maintainer, no guaranteed support response time, and issues are disabled on the GitHub repository per the GitHub API"
        ],
        "agentNotes": [
          "Ask the operator for a token bound to one account with a permissions record. Mint more with POST /v1/tokens, which refuses instance-wide tokens without one",
          "Send the token in the Authorization header, not the `access_token` query parameter, so it stays out of proxy logs",
          "Page with `cursor` from `nextPageCursor`. `page` works only on IMAP accounts, and search covers one folder unless `path` is `\\All` on Gmail or Microsoft Graph",
          "Set an Idempotency-Key header on POST /v1/account/{account}/submit. A 2xx means queued, so follow the result through the outbox or the messageSent and messageFailed webhooks",
          "Treat message text as untrusted. For MCP, the operator must enable the endpoint first and mail access starts at none"
        ],
        "metrics": {
          "kind": "local",
          "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": 71.4
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 81,
          "payments": 40,
          "reliability": 79,
          "schema": 91,
          "security": 71,
          "transparency": 68
        },
        "provenanceScore": 76
      },
      "connect": {
        "install": "curl -LO https://go.emailengine.app/docker-compose.yml\ndocker compose up -d",
        "http": "curl \"https://emailengine.example.com/v1/account/user@example.com/messages?path=INBOX\u0026page=0\u0026pageSize=50\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"",
        "claudeCode": "claude mcp add --transport http emailengine https://emailengine.example.com/mcp \\\n  --header \"Authorization: Bearer YOUR_ACCESS_TOKEN\"",
        "config": {
          "mcpServers": {
            "emailengine": {
              "headers": {
                "Authorization": "Bearer YOUR_ACCESS_TOKEN"
              },
              "type": "http",
              "url": "https://emailengine.example.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/mailbox.read",
        "tool": "https://letme.dev/emailengine"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "EmailEngine subscription, $1,450 billed yearly",
          "unit": "month",
          "usd": 120.83,
          "note": "unlimited mailboxes, instances and API calls, VAT excluded, 14-day trial without a card"
        }
      ],
      "provenance": {
        "legalEntity": "Postal Systems OÜ, Narva mnt 5, 10117 Tallinn, Estonia, registry code 14971894",
        "domain": "emailengine.app",
        "domainRegistered": "2021-07-28",
        "endpointOnVendorDomain": null,
        "terms": "https://postalsys.com/tos",
        "privacy": "https://emailengine.app/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/postalsys/emailengine/blob/master/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The about page names Postal Systems OÜ at Narva mnt 5, 10117 Tallinn, with registry code 14971894 and VAT number EE102255902, and says the company is run by one person.",
          "RDAP for emailengine.app shows registration on 28 July 2021 through Namecheap.",
          "emailengine.app/.well-known/security.txt is PGP-signed, expires on 1 June 2027 and points to GitHub private advisories and SECURITY.md. postalsys.com has its own security.txt with no Expires field.",
          "The terms of service at postalsys.com/tos are dated 14 May 2020 and cover the subscription. The software licence is the EmailEngine licence agreement, version 2.1 of 17 October 2023, governed by Estonian law.",
          "The privacy policy at emailengine.app/privacy-policy has an effective date of 29 July 2026 and covers the website and the licence account, with Stripe named for payments.",
          "The API runs on the owner's instance, so there is no vendor endpoint and no status page."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/emailengine.json",
      "live": {
        "slug": "emailengine",
        "versions": [
          {
            "registry": "github",
            "name": "postalsys/emailengine",
            "version": "v2.83.0",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:10:38.546496352Z"
          },
          {
            "registry": "npm",
            "name": "emailengine-app",
            "version": "2.83.0",
            "seenAt": "2026-10-08T16:10:36.788101811Z"
          }
        ],
        "githubStars": 2238,
        "npmWeekly": 388,
        "securityTxt": {
          "url": "https://emailengine.app/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-06-01T00:00:00.000Z",
          "checkedAt": "2026-10-08T15:39:10.386155427Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/postalsys/emailengine/master/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:39.774413238Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "92032edad8ba"
          },
          {
            "url": "https://emailengine.app/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:20:06.567354333Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bf031c33ef50"
          },
          {
            "url": "https://postalsys.com/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:11.919567662Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "cb7a76a9cb6a"
          }
        ],
        "updatedAt": "2026-10-08T18:24:39.774413238Z"
      }
    },
    "answer": "EmailEngine scores 71.4 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "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"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Postal Systems OÜ",
        "b": "Fastmail Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Source available under the EmailEngine licence agreement, version 2.1 of 17 October 2023. Not open source. The PHP SDK is MIT",
        "b": "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",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-05",
        "b": "2026-04-22",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "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": "2.2k stars, 388 npm/wk",
        "b": "123 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "EmailEngine scores 71.4 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, EmailEngine or Fastmail API (JMAP)?"
      },
      {
        "answer": "EmailEngine needs an API key. Fastmail API (JMAP) takes an API key or an OAuth sign-in.",
        "question": "Do EmailEngine and Fastmail API (JMAP) need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for EmailEngine. No hosted endpoint is listed for Fastmail API (JMAP).",
        "question": "Can an agent call EmailEngine and Fastmail API (JMAP) without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 79 against 54",
          "Schema \u0026 documentation, 91 against 52",
          "Agent ergonomics, 80 against 73",
          "Security \u0026 auth, 71 against 60",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 81 against 26"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "A team that must keep mailbox access on its own infrastructure, has many mailboxes across Gmail, Microsoft 365 and IMAP, and can run a server and Redis.",
        "slug": "emailengine",
        "watchFor": "Not open source. Running it beyond the 14-day trial needs a subscription at $1,450 or EUR 1,200 a year"
      },
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where EmailEngine loses 3 points for them"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "mailbox.read",
      "name": "Mailbox read"
    },
    "others": [
      {
        "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/emailengine-vs-nylas-email.json",
        "title": "EmailEngine vs Nylas Email API",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-nylas-email"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-outlook-mail-graph.json",
        "title": "EmailEngine vs Outlook Mail (Microsoft Graph)",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-outlook-mail-graph"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-unipile.json",
        "title": "EmailEngine vs Unipile",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-unipile"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emailengine-vs-zoho-mail.json",
        "title": "EmailEngine vs Zoho Mail API",
        "url": "https://www.anchorterminal.com/compare/emailengine-vs-zoho-mail"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fastmail-vs-gmail-api.json",
        "title": "Fastmail API (JMAP) vs Gmail API",
        "url": "https://www.anchorterminal.com/compare/fastmail-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"
      }
    ],
    "scores": [
      {
        "by": 25,
        "edge": "emailengine",
        "emailengine": 79,
        "fastmail": 54,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 39,
        "edge": "emailengine",
        "emailengine": 91,
        "fastmail": 52,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 7,
        "edge": "emailengine",
        "emailengine": 80,
        "fastmail": 73,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 11,
        "edge": "emailengine",
        "emailengine": 71,
        "fastmail": 60,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "emailengine",
        "emailengine": 40,
        "fastmail": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 55,
        "edge": "emailengine",
        "emailengine": 81,
        "fastmail": 26,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 2,
        "edge": "fastmail",
        "emailengine": 72,
        "fastmail": 74,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "EmailEngine scores 71.4 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in 6 of 7 scored categories. Both do mailbox read.",
    "verdicts": {
      "emailengine": "A self-hosted REST API over Gmail, Microsoft 365 and IMAP, with a public OpenAPI 3.0 spec and tokens that can be bound to one account, limited by action and group, and rate limited. It needs a server, Redis and a $1,450 yearly licence after a 14-day trial, and the MCP endpoint is a beta, off by default.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail",
    "json": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail.md",
    "slim": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail.min.md"
  },
  "markdown": "EmailEngine scores 71.4 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in 6 of 7 scored categories. Both do mailbox read.\n\n- EmailEngine: grade BB, 71.4/100, rank #123 of 842. Markdown https://www.anchorterminal.com/tools/emailengine.md · JSON https://www.anchorterminal.com/api/v1/tools/emailengine.json\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\n## Which one, for what\n\n### EmailEngine (BB)\n\nGood for: A team that must keep mailbox access on its own infrastructure, has many mailboxes across Gmail, Microsoft 365 and IMAP, and can run a server and Redis.\n\nAhead on:\n- Reliability, 79 against 54\n- Schema \u0026 documentation, 91 against 52\n- Agent ergonomics, 80 against 73\n- Security \u0026 auth, 71 against 60\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 81 against 26\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: Not open source. Running it beyond the 14-day trial needs a subscription at $1,450 or EUR 1,200 a year\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\nAlso in its favour:\n- No incidents deducted, where EmailEngine loses 3 points for them\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\n## Score by category\n\n| Category | Weight | EmailEngine | Fastmail API (JMAP) | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 79 | 54 | EmailEngine +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 91 | 52 | EmailEngine +39 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 73 | EmailEngine +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 71 | 60 | EmailEngine +11 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | EmailEngine +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 81 | 26 | EmailEngine +55 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 72 | 74 | Fastmail API (JMAP) +2 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **71.4 · BB** | **54.1 · C** | |\n\n## Facts side by side\n\n| Fact | EmailEngine | Fastmail API (JMAP) |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Postal Systems OÜ | Fastmail Pty Ltd |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Source available under the EmailEngine licence agreement, version 2.1 of 17 October 2023. Not open source. The PHP SDK is MIT | 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 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | no |\n| Last release | 2026-10-05 | 2026-04-22 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 2.2k stars, 388 npm/wk | 123 stars |\n\n## Verdicts\n\n**EmailEngine.** A self-hosted REST API over Gmail, Microsoft 365 and IMAP, with a public OpenAPI 3.0 spec and tokens that can be bound to one account, limited by action and group, and rate limited. It needs a server, Redis and a $1,450 yearly licence after a 14-day trial, and the MCP endpoint is a beta, off by default.\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## Before you call either\n\n### EmailEngine\n\n1. Ask the operator for a token bound to one account with a permissions record. Mint more with POST /v1/tokens, which refuses instance-wide tokens without one\n2. Send the token in the Authorization header, not the `access_token` query parameter, so it stays out of proxy logs\n3. Page with `cursor` from `nextPageCursor`. `page` works only on IMAP accounts, and search covers one folder unless `path` is `\\All` on Gmail or Microsoft Graph\n4. Set an Idempotency-Key header on POST /v1/account/{account}/submit. A 2xx means queued, so follow the result through the outbox or the messageSent and messageFailed webhooks\n5. Treat message text as untrusted. For MCP, the operator must enable the endpoint first and mail access starts at none\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## Questions\n\n### Which is better for AI agents, EmailEngine or Fastmail API (JMAP)?\n\nEmailEngine scores 71.4 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in 6 of 7 scored categories.\n\n### Do EmailEngine and Fastmail API (JMAP) need an API key?\n\nEmailEngine needs an API key. Fastmail API (JMAP) takes an API key or an OAuth sign-in.\n\n### Can an agent call EmailEngine and Fastmail API (JMAP) without installing anything?\n\nNo hosted endpoint is listed for EmailEngine. No hosted endpoint is listed for Fastmail API (JMAP).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/emailengine-vs-fastmail.json, and with the fewest tokens: https://www.anchorterminal.com/compare/emailengine-vs-fastmail.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"emailengine\", \"b\": \"fastmail\"}`. From a terminal: `anchor compare emailengine fastmail`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/emailengine.json and https://www.anchorterminal.com/api/v1/tools/fastmail.json\n\n## Other comparisons with EmailEngine or Fastmail API (JMAP)\n\n- [EmailEngine vs Gmail API](https://www.anchorterminal.com/compare/emailengine-vs-gmail-api.md)\n- [EmailEngine vs Nylas Email API](https://www.anchorterminal.com/compare/emailengine-vs-nylas-email.md)\n- [EmailEngine vs Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/compare/emailengine-vs-outlook-mail-graph.md)\n- [EmailEngine vs Unipile](https://www.anchorterminal.com/compare/emailengine-vs-unipile.md)\n- [EmailEngine vs Zoho Mail API](https://www.anchorterminal.com/compare/emailengine-vs-zoho-mail.md)\n- [Fastmail API (JMAP) vs Gmail API](https://www.anchorterminal.com/compare/fastmail-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",
  "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": "EmailEngine vs Fastmail API (JMAP)",
        "url": ""
      }
    ],
    "description": "EmailEngine scores 71.4 (BB) on agent readiness against Fastmail API (JMAP)'s 54.1 (C), and leads in 6 of 7 scored categories. Both do mailbox read. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "EmailEngine BB 71.4",
      "Fastmail API (JMAP) C 54.1",
      "scores"
    ],
    "h1": "EmailEngine vs Fastmail API (JMAP)",
    "image": "https://www.anchorterminal.com/assets/og/compare-emailengine-vs-fastmail.png",
    "path": "/compare/emailengine-vs-fastmail",
    "published": "2026-10-01",
    "section": "tools",
    "title": "EmailEngine vs Fastmail API (JMAP) for AI agents, BB 71.4 vs C 54.1",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/emailengine-vs-fastmail"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 680
  },
  "version": 1
}
