{
  "data": {
    "a": {
      "slug": "emma",
      "name": "Emma",
      "vendor": "Emma Technologies Ltd",
      "vendorUrl": "https://emma-app.com",
      "kind": "platform",
      "category": "personal-finance",
      "summary": "Emma is a budgeting app for iOS, Android and the web, mainly for UK users. It connects bank accounts through Open Banking to track subscriptions, bills and spending and set budgets, with savings, investing and credit scores.",
      "url": "https://www.anchorterminal.com/tools/emma",
      "markdownUrl": "https://www.anchorterminal.com/tools/emma.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/emma.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/emma.json",
      "license": "Closed service under Emma's terms and conditions (Emma Technologies Ltd)",
      "transports": [],
      "packages": [],
      "auth": "mixed",
      "authNotes": "An Emma account in the app or web app. UK bank accounts connect through Open Banking with read-only access; North American accounts through Emma's \"Trusted Partners\" (https://emma-app.com/terms).",
      "pricing": "freemium",
      "pricingNotes": "Basic is free. Plus £4.99 a month or £41.99 a year, Pro £9.99 a month or £83.99 a year, Ultimate £14.99 a month or £124.99 a year, with a 7-day free trial (https://emma-app.com/plans/compare-emma-plans). Plans differ in bank logins (2 on Basic, 4 on Plus, unlimited above), transfer limits and credit-report detail.",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on emma-app.com, its plans page, terms or llms.txt (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "llmsTxt": "https://emma-app.com/llms.txt",
      "capabilities": [
        "finance.subscriptions",
        "finance.budgets",
        "finance.bills",
        "finance.transactions"
      ],
      "tags": [
        "not-for-agents",
        "hosted",
        "official",
        "closed-source",
        "freemium",
        "free-tier",
        "ios",
        "android",
        "uk",
        "llms-txt"
      ],
      "lastRelease": "2026-10-12",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 17.4,
        "grade": "F",
        "agentReady": false,
        "rank": 1061,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 0,
          "maintenance": 54,
          "payments": 30,
          "reliability": 15,
          "schema": 10,
          "security": 0,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Emma tracks subscriptions, bills and budgets for UK users through Open Banking, with a free plan and public prices for paid tiers, and iOS releases about every week. There is no public API or MCP server an outside agent can call. No status page or security contact was found, and the terms forbid bots and scrapers.",
        "bestFor": "UK users who want subscriptions, bills and budgets in one app, with savings and investing.",
        "strengths": [
          "Free Basic plan, with paid tiers priced on the plans page.",
          "13 iOS releases between 22 July and 12 October 2026.",
          "FCA registration numbers and an ICO registration published on the site."
        ],
        "weaknesses": [
          "No public API or MCP server an outside agent can call.",
          "The terms forbid access by bots, scripts, crawlers or scrapers.",
          "No status page, security.txt or disclosure policy found.",
          "Terms and privacy policy carry no dates, and give two different registered offices."
        ],
        "agentNotes": [
          "Don't plan to call Emma from another agent. Hand the task to the person in the Emma app or web app.",
          "For a one-off cancellation question, the public pages at emma-app.com/how-to-cancel can be read like any web page."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 17.4
          }
        ],
        "editorialScores": {
          "ergonomics": 0,
          "maintenance": 54,
          "payments": 30,
          "reliability": 15,
          "schema": 10,
          "security": 0,
          "transparency": 45
        },
        "provenanceScore": 53
      },
      "letme": {
        "capability": "https://letme.dev/finance.subscriptions",
        "tool": "https://letme.dev/emma"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Emma Technologies Ltd",
        "domain": "emma-app.com",
        "domainRegistered": "2017-06-30",
        "endpointOnVendorDomain": null,
        "terms": "https://emma-app.com/terms",
        "privacy": "https://emma-app.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The terms name Emma Technologies LTD, registered in England and Wales, number 10578464, governed by English law. No date was found on the terms or the privacy policy.",
          "emma-app.com/.well-known/security.txt returns 404, and status.emma-app.com has no DNS record.",
          "The registered office differs between the terms (49-51 Central Street, EC1V 8AB) and the site footer (18 Brunswick Place, N1 6DZ).",
          "RDAP gives a registration date of 2017-06-30 for emma-app.com."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/emma.json",
      "live": {
        "slug": "emma",
        "securityTxt": {
          "url": "https://emma-app.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-14T15:47:06.883426428Z"
        },
        "llmsTxt": {
          "url": "https://emma-app.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-14T14:14:00.874573022Z"
        },
        "pages": [
          {
            "url": "https://emma-app.com/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-14T21:00:13.118898309Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3ec1d861cb01"
          },
          {
            "url": "https://emma-app.com/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-14T21:00:15.212635215Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9f852956af8e"
          }
        ],
        "updatedAt": "2026-10-14T21:00:15.212635215Z"
      }
    },
    "answer": "YNAB scores 65.1 (B) on agent readiness against Emma's 17.4 (F), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "ynab",
      "name": "YNAB",
      "vendor": "YNAB",
      "vendorUrl": "https://www.ynab.com",
      "kind": "http-api",
      "category": "personal-finance",
      "summary": "YNAB is a subscription budgeting app for people. Its REST API reads and edits a user's plans, accounts, categories, payees and transactions, with personal access tokens or OAuth for apps other users authorise.",
      "url": "https://www.anchorterminal.com/tools/ynab",
      "markdownUrl": "https://www.anchorterminal.com/tools/ynab.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ynab.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ynab.json",
      "repo": "https://github.com/ynab/ynab-sdk-js",
      "license": "Proprietary service; SDKs Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.ynab.com/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "ynab"
        },
        {
          "registry": "pypi",
          "name": "ynab"
        },
        {
          "registry": "rubygems",
          "name": "ynab"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer token in the Authorization header. A personal access token is made in the web app under Account Settings, Developer Settings, after entering the password; it never expires and is revoked from the same page. OAuth apps use the implicit grant or the authorisation code grant with PKCE and state; access tokens last 2 hours and the code grant returns a refresh token. scope=read-only gives a token that gets 403 on writes. New OAuth apps are in Restricted Mode, limited to 25 users other than the owner, until a review that takes 2 to 4 weeks (https://api.ynab.com/).",
      "pricing": "paid",
      "pricingNotes": "The API comes with a YNAB subscription at no extra charge. $14.99 a month or $109 a year in US dollars, with a 34-day free trial that needs no card when signing up on ynab.com (app stores may ask for one) and a 365-day trial for college students (https://www.ynab.com/pricing). A lapsed subscription or expired trial returns 403.1 or 403.2 on every call (https://api.ynab.com/#errors).",
      "priceSummary": "$14.99 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API documentation, the OpenAPI file or the pricing page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": 240,
        "npmWeekly": 9596,
        "pypiWeekly": 2299,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://api.ynab.com/",
      "openapi": "https://api.ynab.com/papi/open_api_spec.yaml",
      "capabilities": [
        "finance.budgets",
        "finance.transactions"
      ],
      "tags": [
        "hosted",
        "oauth",
        "openapi",
        "typescript",
        "python",
        "ruby",
        "status-page",
        "bug-bounty",
        "security-txt",
        "free-trial",
        "no-card",
        "read-only-mode",
        "closed-source"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.1,
        "grade": "B",
        "agentReady": false,
        "rank": 355,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 62,
          "payments": 30,
          "reliability": 82,
          "schema": 77,
          "security": 51,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1.1 file, a dated changelog and an OAuth read-only scope let an agent read and edit a person's own budget. Each token is limited to 200 requests an hour with no Retry-After, personal access tokens never expire and have no read-only option, and access always starts with a person signing up in a browser.",
        "bestFor": "An agent helping one person with their own YNAB plan, reading spending and editing categories, transactions and targets.",
        "strengths": [
          "Public OpenAPI 3.1.1 file at api.ynab.com/papi/open_api_spec.yaml, version 1.87.0, with 44 operations",
          "OAuth authorisation code grant with PKCE, refresh tokens and a read-only scope that returns 403 on writes",
          "Delta requests with last_knowledge_of_server on nine resources return only what changed",
          "Dated API changelog with 21 versions since February 2024, the latest on 17 September 2026",
          "Official SDKs for JavaScript, Python and Ruby under Apache-2.0, with CI passing on the JavaScript SDK"
        ],
        "weaknesses": [
          "Each access token is limited to 200 requests an hour in a rolling window, and 429 responses carry no Retry-After",
          "Personal access tokens don't expire and can't be limited to reading",
          "No list pagination, so a full transaction list depends on date filters and delta requests",
          "Getting access needs a person to sign up and create a token or OAuth app in the web app",
          "No llms.txt or Markdown version of the API docs; the site's llms.txt is a product description"
        ],
        "agentNotes": [
          "Use last-used in place of plan_id until you have listed plans with GET /v1/plans",
          "Store server_knowledge and send it back as last_knowledge_of_server to stay inside 200 requests an hour",
          "Read and write amounts in milliunits, or read the _currency fields added in v1.82.0",
          "Set import_id on transactions you create so a retried POST is matched instead of duplicated",
          "Request scope=read-only on OAuth when the task only reads the budget"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.1
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 62,
          "payments": 30,
          "reliability": 82,
          "schema": 77,
          "security": 51,
          "transparency": 57
        },
        "provenanceScore": 92
      },
      "connect": {
        "install": "npm install ynab",
        "http": "curl -H \"Authorization: Bearer \u003cACCESS_TOKEN\u003e\" https://api.ynab.com/v1/plans"
      },
      "letme": {
        "capability": "https://letme.dev/finance.budgets",
        "tool": "https://letme.dev/ynab"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "YNAB subscription, monthly",
          "unit": "month",
          "usd": 14.99,
          "note": "API included"
        },
        {
          "item": "YNAB subscription, annual",
          "unit": "month",
          "usd": 9.08,
          "note": "billed $109 a year, API included"
        }
      ],
      "provenance": {
        "legalEntity": "You Need A Budget LLC",
        "domain": "ynab.com",
        "domainRegistered": "2001-11-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.ynab.com/terms/",
        "privacy": "https://www.ynab.com/privacy-policy/",
        "statusPage": "https://ynabstatus.com",
        "changelog": "https://api.ynab.com/#changelog",
        "securityTxt": "valid",
        "checked": "2026-10-14",
        "notes": [
          "The terms (last modified 9 April 2026) and the privacy policy (effective 20 April 2026) name You Need A Budget LLC d/b/a YNAB, governed by Utah law, with You Need A Budget UK Ltd of Cheltenham for UK and EEA open banking.",
          "API Terms of Service sit on api.ynab.com under Legal and work with the general terms and privacy policy.",
          "security.txt at api.ynab.com/.well-known/security.txt names Bugcrowd and security@ynab.com but has no Expires line, which RFC 9116 requires. www.ynab.com/.well-known/security.txt returned 404.",
          "RDAP at Verisign gives a registration date of 2001-11-24 for ynab.com.",
          "The status page at ynabstatus.com is a Statuspage site with a Public API component."
        ],
        "score": 92
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ynab.json",
      "live": {
        "slug": "ynab",
        "probe": {
          "target": "https://api.ynab.com/v1",
          "method": "get",
          "lastAt": "2026-10-15T11:30:17.795864381Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 330,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 298,
          "p95ms24h": 389,
          "samples24h": 254,
          "samples30d": 289,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 166,
              "ok": 166
            },
            {
              "date": "2026-10-15",
              "probes": 123,
              "ok": 123
            }
          ]
        },
        "vendorStatus": {
          "page": "https://ynabstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-15T10:21:57.097266416Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "ynab/ynab-sdk-js",
            "version": "v4.5.0",
            "released": "2026-07-01",
            "seenAt": "2026-10-15T00:31:23.062694977Z"
          },
          {
            "registry": "npm",
            "name": "ynab",
            "version": "4.5.0",
            "seenAt": "2026-10-15T00:31:22.027560604Z"
          },
          {
            "registry": "pypi",
            "name": "ynab",
            "version": "4.4.0",
            "released": "2026-08-12",
            "seenAt": "2026-10-15T00:31:22.875163126Z"
          }
        ],
        "githubStars": 240,
        "npmWeekly": 9596,
        "pypiWeekly": 2299,
        "securityTxt": {
          "url": "https://ynab.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-14T15:46:52.090705441Z"
        },
        "pages": [
          {
            "url": "https://api.ynab.com/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-14T20:53:50.352102314Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "76e08ad535e3"
          },
          {
            "url": "https://www.ynab.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-14T21:19:16.511616881Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "70210def6979"
          },
          {
            "url": "https://www.ynab.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-14T21:19:18.555450744Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3b5921c44cd3"
          },
          {
            "url": "https://www.ynab.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-14T21:19:20.716548752Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0de3df2ad513"
          }
        ],
        "updatedAt": "2026-10-15T11:30:17.795864381Z"
      }
    },
    "facts": [
      {
        "a": "Platform",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Emma Technologies Ltd",
        "b": "YNAB",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.ynab.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Closed service under Emma's terms and conditions (Emma Technologies Ltd)",
        "b": "Proprietary service; SDKs Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-12",
        "b": "2026-09-17",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-04-09",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-04-09",
        "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": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "240 stars, 9.6k npm/wk, 2.3k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "YNAB scores 65.1 (B) on agent readiness against Emma's 17.4 (F), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Emma or YNAB?"
      },
      {
        "answer": "No hosted endpoint is listed for Emma. YNAB has a hosted endpoint at https://api.ynab.com/v1.",
        "question": "Can an agent call Emma and YNAB without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "UK users who want subscriptions, bills and budgets in one app, with savings and investing.",
        "slug": "emma",
        "watchFor": "No public API or MCP server an outside agent can call."
      },
      {
        "aheadOn": [
          "Reliability, 82 against 15",
          "Schema \u0026 documentation, 77 against 10",
          "Agent ergonomics, 71 against 0",
          "Security \u0026 auth, 51 against 0",
          "Maintenance \u0026 community, 62 against 54",
          "Transparency \u0026 trust, 75 against 49"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "An agent helping one person with their own YNAB plan, reading spending and editing categories, transactions and targets.",
        "slug": "ynab",
        "watchFor": "Each access token is limited to 200 requests an hour in a rolling window, and 429 responses carry no Retry-After"
      }
    ],
    "job": {
      "capability": "finance.budgets",
      "name": "Budgets"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/emma-vs-hiatus.json",
        "title": "Emma vs Hiatus",
        "url": "https://www.anchorterminal.com/compare/emma-vs-hiatus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emma-vs-pocketguard.json",
        "title": "Emma vs PocketGuard",
        "url": "https://www.anchorterminal.com/compare/emma-vs-pocketguard"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emma-vs-quicken-simplifi.json",
        "title": "Emma vs Quicken Simplifi",
        "url": "https://www.anchorterminal.com/compare/emma-vs-quicken-simplifi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emma-vs-rocket-money.json",
        "title": "Emma vs Rocket Money",
        "url": "https://www.anchorterminal.com/compare/emma-vs-rocket-money"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emma-vs-scribeup.json",
        "title": "Emma vs ScribeUp",
        "url": "https://www.anchorterminal.com/compare/emma-vs-scribeup"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emma-vs-snoop.json",
        "title": "Emma vs Snoop",
        "url": "https://www.anchorterminal.com/compare/emma-vs-snoop"
      },
      {
        "json": "https://www.anchorterminal.com/compare/copilot-money-vs-emma.json",
        "title": "Copilot Money vs Emma",
        "url": "https://www.anchorterminal.com/compare/copilot-money-vs-emma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/copilot-money-vs-ynab.json",
        "title": "Copilot Money vs YNAB",
        "url": "https://www.anchorterminal.com/compare/copilot-money-vs-ynab"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hiatus-vs-ynab.json",
        "title": "Hiatus vs YNAB",
        "url": "https://www.anchorterminal.com/compare/hiatus-vs-ynab"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pocketguard-vs-ynab.json",
        "title": "PocketGuard vs YNAB",
        "url": "https://www.anchorterminal.com/compare/pocketguard-vs-ynab"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quicken-simplifi-vs-ynab.json",
        "title": "Quicken Simplifi vs YNAB",
        "url": "https://www.anchorterminal.com/compare/quicken-simplifi-vs-ynab"
      },
      {
        "json": "https://www.anchorterminal.com/compare/rocket-money-vs-ynab.json",
        "title": "Rocket Money vs YNAB",
        "url": "https://www.anchorterminal.com/compare/rocket-money-vs-ynab"
      },
      {
        "json": "https://www.anchorterminal.com/compare/snoop-vs-ynab.json",
        "title": "Snoop vs YNAB",
        "url": "https://www.anchorterminal.com/compare/snoop-vs-ynab"
      },
      {
        "json": "https://www.anchorterminal.com/compare/emma-vs-plum.json",
        "title": "Emma vs Plum",
        "url": "https://www.anchorterminal.com/compare/emma-vs-plum"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plum-vs-ynab.json",
        "title": "Plum vs YNAB",
        "url": "https://www.anchorterminal.com/compare/plum-vs-ynab"
      }
    ],
    "scores": [
      {
        "by": 67,
        "edge": "ynab",
        "emma": 15,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "ynab": 82
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 67,
        "edge": "ynab",
        "emma": 10,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "ynab": 77
      },
      {
        "by": 71,
        "edge": "ynab",
        "emma": 0,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "ynab": 71
      },
      {
        "by": 51,
        "edge": "ynab",
        "emma": 0,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "ynab": 51
      },
      {
        "by": 0,
        "edge": "",
        "emma": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "ynab": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "ynab",
        "emma": 54,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "ynab": 62
      },
      {
        "by": 26,
        "edge": "ynab",
        "emma": 49,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "ynab": 75
      }
    ],
    "summary": "YNAB scores 65.1 (B) on agent readiness against Emma's 17.4 (F), and leads in 6 of 7 scored categories. Both do budgets.",
    "verdicts": {
      "emma": "Emma tracks subscriptions, bills and budgets for UK users through Open Banking, with a free plan and public prices for paid tiers, and iOS releases about every week. There is no public API or MCP server an outside agent can call. No status page or security contact was found, and the terms forbid bots and scrapers.",
      "ynab": "A public OpenAPI 3.1.1 file, a dated changelog and an OAuth read-only scope let an agent read and edit a person's own budget. Each token is limited to 200 requests an hour with no Retry-After, personal access tokens never expire and have no read-only option, and access always starts with a person signing up in a browser."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/emma-vs-ynab",
    "json": "https://www.anchorterminal.com/compare/emma-vs-ynab.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/emma-vs-ynab.md",
    "slim": "https://www.anchorterminal.com/compare/emma-vs-ynab.min.md"
  },
  "markdown": "YNAB scores 65.1 (B) on agent readiness against Emma's 17.4 (F), and leads in 6 of 7 scored categories. Both do budgets.\n\n- Emma: grade F, 17.4/100, rank #1061 of 1094. Markdown https://www.anchorterminal.com/tools/emma.md · JSON https://www.anchorterminal.com/api/v1/tools/emma.json\n- YNAB: grade B, 65.1/100, rank #355 of 1094. Markdown https://www.anchorterminal.com/tools/ynab.md · JSON https://www.anchorterminal.com/api/v1/tools/ynab.json\n- Best subscription, bill and budgeting tools for AI agents: https://www.anchorterminal.com/best/personal-finance/index.md\n- All 43 personal finance comparisons: https://www.anchorterminal.com/compare/personal-finance/index.md\n\n## Which one, for what\n\n### Emma (F)\n\nGood for: UK users who want subscriptions, bills and budgets in one app, with savings and investing.\n\nWatch for: No public API or MCP server an outside agent can call.\n\n### YNAB (B)\n\nGood for: An agent helping one person with their own YNAB plan, reading spending and editing categories, transactions and targets.\n\nAhead on:\n- Reliability, 82 against 15\n- Schema \u0026 documentation, 77 against 10\n- Agent ergonomics, 71 against 0\n- Security \u0026 auth, 51 against 0\n- Maintenance \u0026 community, 62 against 54\n- Transparency \u0026 trust, 75 against 49\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: Each access token is limited to 200 requests an hour in a rolling window, and 429 responses carry no Retry-After\n\n\n## Score by category\n\n| Category | Weight | Emma | YNAB | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 15 | 82 | YNAB +67 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 10 | 77 | YNAB +67 |\n| Agent ergonomics | 13% (16.2 this run) | 0 | 71 | YNAB +71 |\n| Security \u0026 auth | 14% (17.5 this run) | 0 | 51 | YNAB +51 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 54 | 62 | YNAB +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 49 | 75 | YNAB +26 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **17.4 · F** | **65.1 · B** | |\n\n## Facts side by side\n\n| Fact | Emma | YNAB |\n| --- | --- | --- |\n| Kind | Platform | HTTP API |\n| Vendor | Emma Technologies Ltd | YNAB |\n| Hosted endpoint | no (local only) | `https://api.ynab.com/v1` |\n| Transports |  | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Closed service under Emma's terms and conditions (Emma Technologies Ltd) | Proprietary service; SDKs Apache-2.0 |\n| Tools exposed | none | 0 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | no |\n| Last release | 2026-10-12 | 2026-09-17 |\n| Terms last updated | no date given | 2026-04-09 |\n| Privacy policy last updated | no date given | 2026-04-09 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | none | 240 stars, 9.6k npm/wk, 2.3k PyPI/wk |\n\n## Verdicts\n\n**Emma.** Emma tracks subscriptions, bills and budgets for UK users through Open Banking, with a free plan and public prices for paid tiers, and iOS releases about every week. There is no public API or MCP server an outside agent can call. No status page or security contact was found, and the terms forbid bots and scrapers.\n\n**YNAB.** A public OpenAPI 3.1.1 file, a dated changelog and an OAuth read-only scope let an agent read and edit a person's own budget. Each token is limited to 200 requests an hour with no Retry-After, personal access tokens never expire and have no read-only option, and access always starts with a person signing up in a browser.\n\n## Before you call either\n\n### Emma\n\n1. Don't plan to call Emma from another agent. Hand the task to the person in the Emma app or web app.\n2. For a one-off cancellation question, the public pages at emma-app.com/how-to-cancel can be read like any web page.\n\n### YNAB\n\n1. Use last-used in place of plan_id until you have listed plans with GET /v1/plans\n2. Store server_knowledge and send it back as last_knowledge_of_server to stay inside 200 requests an hour\n3. Read and write amounts in milliunits, or read the _currency fields added in v1.82.0\n4. Set import_id on transactions you create so a retried POST is matched instead of duplicated\n5. Request scope=read-only on OAuth when the task only reads the budget\n\n## Questions\n\n### Which is better for AI agents, Emma or YNAB?\n\nYNAB scores 65.1 (B) on agent readiness against Emma's 17.4 (F), and leads in 6 of 7 scored categories.\n\n### Can an agent call Emma and YNAB without installing anything?\n\nNo hosted endpoint is listed for Emma. YNAB has a hosted endpoint at https://api.ynab.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/emma-vs-ynab.json, and with the fewest tokens: https://www.anchorterminal.com/compare/emma-vs-ynab.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"emma\", \"b\": \"ynab\"}`. From a terminal: `anchor compare emma ynab`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/emma.json and https://www.anchorterminal.com/api/v1/tools/ynab.json\n\n## Other comparisons with Emma or YNAB\n\n- [Emma vs Hiatus](https://www.anchorterminal.com/compare/emma-vs-hiatus.md)\n- [Emma vs PocketGuard](https://www.anchorterminal.com/compare/emma-vs-pocketguard.md)\n- [Emma vs Quicken Simplifi](https://www.anchorterminal.com/compare/emma-vs-quicken-simplifi.md)\n- [Emma vs Rocket Money](https://www.anchorterminal.com/compare/emma-vs-rocket-money.md)\n- [Emma vs ScribeUp](https://www.anchorterminal.com/compare/emma-vs-scribeup.md)\n- [Emma vs Snoop](https://www.anchorterminal.com/compare/emma-vs-snoop.md)\n- [Copilot Money vs Emma](https://www.anchorterminal.com/compare/copilot-money-vs-emma.md)\n- [Copilot Money vs YNAB](https://www.anchorterminal.com/compare/copilot-money-vs-ynab.md)\n- [Hiatus vs YNAB](https://www.anchorterminal.com/compare/hiatus-vs-ynab.md)\n- [PocketGuard vs YNAB](https://www.anchorterminal.com/compare/pocketguard-vs-ynab.md)\n- [Quicken Simplifi vs YNAB](https://www.anchorterminal.com/compare/quicken-simplifi-vs-ynab.md)\n- [Rocket Money vs YNAB](https://www.anchorterminal.com/compare/rocket-money-vs-ynab.md)\n- [Snoop vs YNAB](https://www.anchorterminal.com/compare/snoop-vs-ynab.md)\n- [Emma vs Plum](https://www.anchorterminal.com/compare/emma-vs-plum.md)\n- [Plum vs YNAB](https://www.anchorterminal.com/compare/plum-vs-ynab.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-15",
    "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",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Emma vs YNAB",
        "url": ""
      }
    ],
    "description": "YNAB scores 65.1 (B) to Emma's 17.4 (F) for budgets. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Emma F 17.4",
      "YNAB B 65.1",
      "scores"
    ],
    "h1": "Emma vs YNAB",
    "image": "https://www.anchorterminal.com/assets/og/compare-emma-vs-ynab.png",
    "path": "/compare/emma-vs-ynab",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Emma vs YNAB for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-15",
    "url": "https://www.anchorterminal.com/compare/emma-vs-ynab"
  },
  "tokens": {
    "markdown": 1900,
    "slim": 630
  },
  "version": 1
}
