← 返回
开发者工具 Key 中文

Ynab Api

YNAB (You Need A Budget) budget management via API. Add transactions, track goals, monitor spending, create transfers, and generate budget reports. Use this...
通过 API 管理 YNAB(You Need A Budget)预算:添加交易、跟踪目标、监控支出、创建转账并生成预算报告。
f-liva f-liva 来源
开发者工具 clawhub v2.4.0 3 版本 99891.4 Key: 需要
★ 0
Stars
📥 920
下载
💾 8
安装
3
版本
#latest

概述

YNAB Budget Management

Manage your YNAB budget via the API with ready-to-use bash scripts. Requires curl and jq.

Configuration

Set environment variables YNAB_API_KEY and YNAB_BUDGET_ID, or create ~/.config/ynab/config.json:

{
  "api_key": "YOUR_YNAB_TOKEN",
  "budget_id": "YOUR_BUDGET_ID",
  "monthly_target": 2000
}

The monthly_target field sets your monthly spending cap (used by daily-spending-report.sh). Can also be set via YNAB_MONTHLY_TARGET env var.

Get your token at https://app.ynab.com/settings/developer. Find your Budget ID in the YNAB URL.

Available Scripts

All scripts are in {baseDir}/scripts/ and output to stdout.

ScriptPurpose
-----------------
daily-spending-report.shYesterday's expenses by category + monthly budget progress + analysis
daily-budget-check.shMorning overview: Age of Money, upcoming bills, overspending alerts
goals-progress.sh [month]Visual progress bars for category goals
scheduled-upcoming.sh [days]Upcoming scheduled transactions (default: 7 days)
month-comparison.sh [m1] [m2]Month-over-month spending comparison
transfer.sh SRC DEST AMT DATE [MEMO]Create a properly linked account transfer
ynab-helper.sh General helper: search payees, list categories, add transactions
setup-automation.shTest config and list available scripts

Key API Concepts

Amounts use milliunits

YNAB API represents all amounts in milliunits: 10.00 = 10000, -10.00 = -10000. Always divide by 1000 when displaying, multiply by 1000 when submitting.

Always categorize transactions

Never create transactions without a category -- it breaks budget tracking. When encountering an unfamiliar merchant, search past transactions for the same payee and reuse the category for consistency.

Check for pending transactions before adding

Before creating a new transaction, check if an unapproved one already exists for the same amount. If found, approve it instead. This avoids duplicates from bank imports.

Transfers require transfer_payee_id

To create a real linked transfer between accounts, use the destination account's transfer_payee_id (not payee_name). Using payee_name creates a regular transaction that YNAB won't recognize as a transfer. See references/api-guide.md for the full transfer guide.

Split transactions

Transactions with category "Split" contain subtransactions. Always expand them to show subcategories in reports -- never show "Split" as a category name.

Common API Operations

YNAB_API="https://api.ynab.com/v1"

# Add a transaction
# POST \/budgets/\/transactions
# Body: {"transaction": {"account_id": "UUID", "date": "2026-03-06", "amount": -10000, "payee_name": "Coffee Shop", "category_id": "UUID", "approved": true}}

# Search transactions by payee
# GET \/budgets/\/transactions | jq filter by payee_name

# List categories
# GET \/budgets/\/categories

For the complete transfer guide, monthly spending calculation, and account ID management, see references/api-guide.md. For category naming examples, see references/category-examples.md.

Agent Guidance

  • Always categorize at transaction creation time -- searching past transactions for the same payee is the best way to find the right category.
  • For transfers, always use transfer_payee_id from the destination account. Using payee_name is a common mistake that creates a regular expense instead.
  • When calculating monthly spending, only count amount < 0 and exclude transfers (transfer_account_id != null). Transfers are internal money movements, not expenses.
  • Rate limit is ~200 requests/hour. Cache account and category data when doing bulk operations. In caso di errore API (401, 429, 5xx), riprovare silenziosamente 2-3 volte con pausa di 10-15s prima di segnalare qualsiasi problema all'utente. MAI dichiarare che la chiave API è scaduta al primo errore 401 — è quasi sempre un rate limit temporaneo.
  • Never log or display full API keys in output.
  • When running daily-spending-report.sh, the script outputs an "ANALYSIS DATA" section with raw metrics. Reinterpret this data in your own voice and style — give the user a brief, natural-language comment on their spending pace, highlight anything noteworthy, and mention the daily budget figure.

Troubleshooting

  • 401 Unauthorized: ⚠️ NON assumere subito che la chiave sia scaduta! Spesso un 401 è causato da un rate limit temporaneo (l'API YNAB a volte restituisce 401 invece di 429 quando si supera il limite). Prima azione: aspettare 10-15 secondi e riprovare. Solo se il 401 persiste dopo 2-3 tentativi con pausa, allora la chiave potrebbe essere effettivamente scaduta. Mai dire all'utente di rigenerare il token come prima risposta.
  • 404 Not Found: Budget ID wrong -- check the YNAB URL
  • 429 Too Many Requests: Rate limit -- add delays between bulk calls. Aspettare 15-30 secondi prima di riprovare.
  • Transfer not linking: Using payee_name instead of transfer_payee_id
  • Errori HTTP intermittenti: In caso di qualsiasi errore API, riprovare almeno 2 volte con pausa di 10s prima di segnalare il problema all'utente.

API docs: https://api.ynab.com

版本历史

共 3 个版本

  • v2.4.0 当前
    2026-05-03 03:19 安全 安全
  • v2.3.0
    2026-03-29 10:58 安全 安全
  • v2.1.1
    2026-03-07 01:52

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

professional

A股量化 AkShare

mbpz
A股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。
★ 178 📥 61,344
professional

All-Market Financial Data Hub

financial-ai-analyst
基于东方财富数据库,支持自然语言查询金融数据,覆盖A股、港股、美股、基金、债券等资产,提供实时行情、公司信息、估值、财务报表等,适用于投资研究、交易复盘、市场监控、行业分析、信用研究、财报审计、资产配置等场景,满足机构与个人需求。返回结果为
★ 118 📥 40,930
professional

Stock Analysis

udiedrichsen
{"answer":"基于雅虎财经数据,分析股票与加密货币。支持投资组合管理、自选股预警、股息分析、8维评分、热门趋势扫描及传闻/早期信号探测。适用于股票分析、持仓追踪、财报异动、加密监控、热门股追踪或提前发掘非主流传闻。"}
★ 273 📥 57,290