{
  "data": {
    "a": {
      "slug": "plum",
      "name": "Plum",
      "vendor": "Plum Fintech Limited",
      "vendorUrl": "https://withplum.com",
      "kind": "platform",
      "category": "personal-finance",
      "summary": "Plum is a saving and investing app for the UK and parts of Europe. It analyses spending from connected bank accounts, moves money aside automatically, and holds savings accounts, ISAs, a pension, investments and an AI financial plan.",
      "url": "https://www.anchorterminal.com/tools/plum",
      "markdownUrl": "https://www.anchorterminal.com/tools/plum.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/plum.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/plum.json",
      "license": "Closed service under Plum's terms (Plum Fintech Limited and Saveable Limited)",
      "transports": [],
      "packages": [],
      "auth": "mixed",
      "authNotes": "A Plum account in the iOS or Android app, with identity checks. Bank accounts connect read-only through TrueLayer (https://withplum.com/legal/privacy, https://withplum.com/legal/terms).",
      "pricing": "freemium",
      "pricingNotes": "Basic is free. Plus £3.99, Boost £7.99 and Max £14.99 a month, with the first month of a paid tier free; investment fees and interest rates vary by tier (https://withplum.com/subscriptions). Other fees are on the fees page (https://withplum.com/legal/fees).",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on withplum.com, its llms.txt, subscriptions page or terms (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "llmsTxt": "https://withplum.com/llms.txt",
      "capabilities": [
        "finance.transactions"
      ],
      "tags": [
        "not-for-agents",
        "hosted",
        "official",
        "closed-source",
        "freemium",
        "free-tier",
        "ios",
        "android",
        "uk",
        "eu",
        "status-page",
        "llms-txt"
      ],
      "lastRelease": "2026-10-12",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 27.4,
        "grade": "F",
        "agentReady": false,
        "rank": 1043,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 0,
          "maintenance": 56,
          "payments": 30,
          "reliability": 60,
          "schema": 10,
          "security": 0,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Plum automates saving and investing for UK and European users from their bank data, with a free tier, public prices, a status page and weekly iOS releases. There is no public API or MCP server an outside agent can call, and its AI tools run only inside the app. No security contact was found.",
        "bestFor": "UK and European users who want saving and investing automated from their spending.",
        "strengths": [
          "Free Basic tier, with paid tiers priced publicly and free for the first month.",
          "16 iOS releases between 16 July and 12 October 2026.",
          "Status page with one no-impact incident in the last 90 days."
        ],
        "weaknesses": [
          "No public API or MCP server an outside agent can call.",
          "No security.txt, disclosure policy or certification found.",
          "Anonymised transaction data may be shared for commercial purposes, per the privacy policy.",
          "Terms and privacy policy carry no dates."
        ],
        "agentNotes": [
          "Don't plan to call Plum from another agent. Hand the task to the person in the Plum app.",
          "Plum moves real money between accounts and investments, so leave any change to automations or withdrawals to the person."
        ],
        "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": 27.4
          }
        ],
        "editorialScores": {
          "ergonomics": 0,
          "maintenance": 56,
          "payments": 30,
          "reliability": 60,
          "schema": 10,
          "security": 0,
          "transparency": 43
        },
        "provenanceScore": 72
      },
      "letme": {
        "capability": "https://letme.dev/finance.transactions",
        "tool": "https://letme.dev/plum"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Plum Fintech Limited",
        "domain": "withplum.com",
        "domainRegistered": "2016-03-15",
        "endpointOnVendorDomain": null,
        "terms": "https://withplum.com/legal/terms",
        "privacy": "https://withplum.com/legal/privacy",
        "statusPage": "https://status.withplum.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The terms are with Plum Fintech Limited and Saveable Limited acting together. The privacy policy names both as data controllers, with a DPO at dpo@withplum.com. No date was found on either.",
          "withplum.com/.well-known/security.txt returns 404, and no security or disclosure page was found.",
          "The status page at status.withplum.com is a Statuspage site.",
          "RDAP gives a registration date of 2016-03-15 for withplum.com."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/plum.json",
      "live": {
        "slug": "plum",
        "vendorStatus": {
          "page": "https://status.withplum.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-15T11:32:27.709283914Z"
        },
        "securityTxt": {
          "url": "https://withplum.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-14T15:47:27.282569949Z"
        },
        "llmsTxt": {
          "url": "https://withplum.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-14T14:14:52.623680307Z"
        },
        "pages": [
          {
            "url": "https://withplum.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-14T21:09:32.936839619Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2a932f9d9d7f"
          },
          {
            "url": "https://withplum.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-14T21:09:35.116790258Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c6a7ea0b0837"
          }
        ],
        "updatedAt": "2026-10-15T11:32:27.709283914Z"
      }
    },
    "answer": "YNAB scores 65.1 (B) on agent readiness against Plum's 27.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": "Plum Fintech Limited",
        "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 Plum's terms (Plum Fintech Limited and Saveable Limited)",
        "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": "2026-07-15",
        "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": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "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 Plum's 27.4 (F), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Plum or YNAB?"
      },
      {
        "answer": "No hosted endpoint is listed for Plum. YNAB has a hosted endpoint at https://api.ynab.com/v1.",
        "question": "Can an agent call Plum and YNAB without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "UK and European users who want saving and investing automated from their spending.",
        "slug": "plum",
        "watchFor": "No public API or MCP server an outside agent can call."
      },
      {
        "aheadOn": [
          "Reliability, 82 against 60",
          "Schema \u0026 documentation, 77 against 10",
          "Agent ergonomics, 71 against 0",
          "Security \u0026 auth, 51 against 0",
          "Maintenance \u0026 community, 62 against 56",
          "Transparency \u0026 trust, 75 against 58"
        ],
        "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.transactions",
      "name": "Personal transactions"
    },
    "others": [
      {
        "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/emma-vs-ynab.json",
        "title": "Emma vs YNAB",
        "url": "https://www.anchorterminal.com/compare/emma-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/copilot-money-vs-plum.json",
        "title": "Copilot Money vs Plum",
        "url": "https://www.anchorterminal.com/compare/copilot-money-vs-plum"
      },
      {
        "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/hiatus-vs-plum.json",
        "title": "Hiatus vs Plum",
        "url": "https://www.anchorterminal.com/compare/hiatus-vs-plum"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plum-vs-pocketguard.json",
        "title": "Plum vs PocketGuard",
        "url": "https://www.anchorterminal.com/compare/plum-vs-pocketguard"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plum-vs-quicken-simplifi.json",
        "title": "Plum vs Quicken Simplifi",
        "url": "https://www.anchorterminal.com/compare/plum-vs-quicken-simplifi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plum-vs-rocket-money.json",
        "title": "Plum vs Rocket Money",
        "url": "https://www.anchorterminal.com/compare/plum-vs-rocket-money"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plum-vs-snoop.json",
        "title": "Plum vs Snoop",
        "url": "https://www.anchorterminal.com/compare/plum-vs-snoop"
      }
    ],
    "scores": [
      {
        "by": 22,
        "edge": "ynab",
        "key": "reliability",
        "name": "Reliability",
        "plum": 60,
        "weight": 16,
        "ynab": 82
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 67,
        "edge": "ynab",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "plum": 10,
        "weight": 13,
        "ynab": 77
      },
      {
        "by": 71,
        "edge": "ynab",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "plum": 0,
        "weight": 13,
        "ynab": 71
      },
      {
        "by": 51,
        "edge": "ynab",
        "key": "security",
        "name": "Security \u0026 auth",
        "plum": 0,
        "weight": 14,
        "ynab": 51
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "plum": 30,
        "weight": 10,
        "ynab": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "edge": "ynab",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "plum": 56,
        "weight": 7,
        "ynab": 62
      },
      {
        "by": 17,
        "edge": "ynab",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "plum": 58,
        "weight": 7,
        "ynab": 75
      }
    ],
    "summary": "YNAB scores 65.1 (B) on agent readiness against Plum's 27.4 (F), and leads in 6 of 7 scored categories. Both do personal transactions.",
    "verdicts": {
      "plum": "Plum automates saving and investing for UK and European users from their bank data, with a free tier, public prices, a status page and weekly iOS releases. There is no public API or MCP server an outside agent can call, and its AI tools run only inside the app. No security contact was found.",
      "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/plum-vs-ynab",
    "json": "https://www.anchorterminal.com/compare/plum-vs-ynab.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/plum-vs-ynab.md",
    "slim": "https://www.anchorterminal.com/compare/plum-vs-ynab.min.md"
  },
  "markdown": "YNAB scores 65.1 (B) on agent readiness against Plum's 27.4 (F), and leads in 6 of 7 scored categories. Both do personal transactions.\n\n- Plum: grade F, 27.4/100, rank #1043 of 1094. Markdown https://www.anchorterminal.com/tools/plum.md · JSON https://www.anchorterminal.com/api/v1/tools/plum.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### Plum (F)\n\nGood for: UK and European users who want saving and investing automated from their spending.\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 60\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 56\n- Transparency \u0026 trust, 75 against 58\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 | Plum | YNAB | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 82 | YNAB +22 |\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) | 56 | 62 | YNAB +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 58 | 75 | YNAB +17 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **27.4 · F** | **65.1 · B** | |\n\n## Facts side by side\n\n| Fact | Plum | YNAB |\n| --- | --- | --- |\n| Kind | Platform | HTTP API |\n| Vendor | Plum Fintech Limited | 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 Plum's terms (Plum Fintech Limited and Saveable Limited) | 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 | 2026-07-15 | 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 | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | 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**Plum.** Plum automates saving and investing for UK and European users from their bank data, with a free tier, public prices, a status page and weekly iOS releases. There is no public API or MCP server an outside agent can call, and its AI tools run only inside the app. No security contact was found.\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### Plum\n\n1. Don't plan to call Plum from another agent. Hand the task to the person in the Plum app.\n2. Plum moves real money between accounts and investments, so leave any change to automations or withdrawals to the person.\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, Plum or YNAB?\n\nYNAB scores 65.1 (B) on agent readiness against Plum's 27.4 (F), and leads in 6 of 7 scored categories.\n\n### Can an agent call Plum and YNAB without installing anything?\n\nNo hosted endpoint is listed for Plum. 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/plum-vs-ynab.json, and with the fewest tokens: https://www.anchorterminal.com/compare/plum-vs-ynab.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"plum\", \"b\": \"ynab\"}`. From a terminal: `anchor compare plum ynab`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/plum.json and https://www.anchorterminal.com/api/v1/tools/ynab.json\n\n## Other comparisons with Plum or YNAB\n\n- [Copilot Money vs YNAB](https://www.anchorterminal.com/compare/copilot-money-vs-ynab.md)\n- [Emma vs YNAB](https://www.anchorterminal.com/compare/emma-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- [Copilot Money vs Plum](https://www.anchorterminal.com/compare/copilot-money-vs-plum.md)\n- [Emma vs Plum](https://www.anchorterminal.com/compare/emma-vs-plum.md)\n- [Hiatus vs Plum](https://www.anchorterminal.com/compare/hiatus-vs-plum.md)\n- [Plum vs PocketGuard](https://www.anchorterminal.com/compare/plum-vs-pocketguard.md)\n- [Plum vs Quicken Simplifi](https://www.anchorterminal.com/compare/plum-vs-quicken-simplifi.md)\n- [Plum vs Rocket Money](https://www.anchorterminal.com/compare/plum-vs-rocket-money.md)\n- [Plum vs Snoop](https://www.anchorterminal.com/compare/plum-vs-snoop.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": "Plum vs YNAB",
        "url": ""
      }
    ],
    "description": "YNAB scores 65.1 (B) to Plum's 27.4 (F) for personal transactions. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Plum F 27.4",
      "YNAB B 65.1",
      "scores"
    ],
    "h1": "Plum vs YNAB",
    "image": "https://www.anchorterminal.com/assets/og/compare-plum-vs-ynab.png",
    "path": "/compare/plum-vs-ynab",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Plum vs YNAB for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-15",
    "url": "https://www.anchorterminal.com/compare/plum-vs-ynab"
  },
  "tokens": {
    "markdown": 1850,
    "slim": 630
  },
  "version": 1
}
