# YNAB (slim) > 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. - Full: https://www.anchorterminal.com/tools/ynab.md (~6,450 tokens) · this version ~1,280 tokens · JSON https://www.anchorterminal.com/tools/ynab.json · canonical https://www.anchorterminal.com/tools/ynab - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-14 **B · 65.1/100 · rank #351 of 1076 · #1 in Subscriptions, bills & personal finance · not agent-ready · confidence high** Assessment: 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. ## Facts - Kind: HTTP API · vendor: YNAB · category: Subscriptions, bills & personal finance · legal entity: You Need A Budget LLC · provenance 92/100 - Endpoint: `https://api.ynab.com/v1` (HTTP) - Auth: OAuth or key · pricing: Paid · x402: no · licence: Proprietary service; SDKs Apache-2.0 - Probe metrics: not measured yet (probes haven't run) - Base URL: https://api.ynab.com/v1 (the old https://api.youneedabudget.com/v1 still answers) - Write access: Create and update transactions, scheduled transactions, categories, category groups and payees; set a category's assigned amount for a month; create accounts; delete transactions and scheduled transactions - Rate limit: 200 requests an hour per access token, rolling window, 429 too_many_requests - Amounts: Milliunits (1,000 = one unit of currency), plus _formatted and _currency fields since v1.82.0 - Bank connections: Plaid, MX and TrueLayer, read-only, through the YNAB app; the API reads the imported data - Support: Email api@ynab.com, reply within up to a week, no detailed coding help - Prices: YNAB subscription, monthly $14.99 per month (plan); YNAB subscription, annual $9.08 per month (plan) - Scores: Reliability 82, Performance pending, Schema & documentation 77, Agent ergonomics 71, Security & auth 51, Payments & pricing 30, Task success pending, Maintenance & community 62, Transparency & trust 75 · total over the 7 assessed categories - Why: Reliability, Statuspage at ynabstatus.com with a Public API component and incident history back to 2024 (20). · Schema & documentation, Public OpenAPI 3.1.1 file, version 1.87.0, 44 operations (25). · Agent ergonomics, Specific single-resource endpoints, since_date and until_date, a type filter (`uncategorized`, `unapproved`), and delta requests on nine res… · Security & auth, OAuth authorisation code grant with PKCE, state, 2-hour access tokens and refresh tokens, with one read-only scope; the implicit grant is st… · Payments & pricing, No x402, MPP or L402 (0). · Maintenance & community, Last API change v1.87.0 on 17 September 2026 (30). · Transparency & trust, Closed service with API terms, general terms and a privacy policy; SDKs under Apache-2.0 (15). - Sources: 12, open questions: 3, both in the full twin - Capabilities: finance.budgets, finance.transactions - JSON: https://www.anchorterminal.com/api/v1/tools/ynab.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/ynab.svg` or a link to https://www.anchorterminal.com/tools/ynab from a page on ynab.com or one of its subdomains, or the README of github.com/ynab/ynab-sdk-js, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Use last-used in place of plan_id until you have listed plans with GET /v1/plans 2. Store server_knowledge and send it back as last_knowledge_of_server to stay inside 200 requests an hour 3. Read and write amounts in milliunits, or read the _currency fields added in v1.82.0 4. Set import_id on transactions you create so a retried POST is matched instead of duplicated 5. Request scope=read-only on OAuth when the task only reads the budget ## Connect ```bash npm install ynab ``` ```bash curl -H "Authorization: Bearer " https://api.ynab.com/v1/plans ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/ynab ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Snoop | F | 26.7 | finance.budgets, finance.transactions | https://www.anchorterminal.com/tools/snoop.min.md | | Quicken Simplifi | F | 20.7 | finance.budgets, finance.transactions | https://www.anchorterminal.com/tools/quicken-simplifi.min.md | | Emma | F | 17.4 | finance.budgets, finance.transactions | https://www.anchorterminal.com/tools/emma.min.md | | Rocket Money | F | 17 | finance.budgets, finance.transactions | https://www.anchorterminal.com/tools/rocket-money.min.md | | Copilot Money | F | 16.3 | finance.budgets, finance.transactions | https://www.anchorterminal.com/tools/copilot-money.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)