@mind-your-now/myn 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -6
- package/dist/index.js +1 -1
- package/dist/src/tools/debrief.d.ts +1 -0
- package/dist/src/tools/debrief.d.ts.map +1 -1
- package/dist/src/tools/debrief.js +10 -1
- package/dist/src/tools/debrief.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -2
- package/skills/myn/SKILL.md +12 -10
- package/skills/myn/references/briefing-api.md +11 -183
- package/skills/myn/references/calendar-api.md +177 -55
- package/skills/myn/references/debrief-api.md +182 -0
- package/skills/myn/references/habits-api.md +37 -55
- package/skills/myn/references/household-api.md +37 -14
- package/skills/myn/references/lists-api.md +80 -46
- package/skills/myn/references/memory-api.md +66 -34
- package/skills/myn/references/planning-api.md +58 -155
- package/skills/myn/references/profile-api.md +54 -61
- package/skills/myn/references/projects-api.md +13 -11
- package/skills/myn/references/search-api.md +20 -48
- package/skills/myn/references/tasks-api.md +47 -40
- package/skills/myn/references/timers-api.md +113 -52
- package/skills/myn/references/ynab-api.md +323 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# YNAB API
|
|
2
|
+
|
|
3
|
+
YNAB (You Need A Budget) integration for budget management, transactions, scheduled transactions, analytics, and category management.
|
|
4
|
+
|
|
5
|
+
## Base Path
|
|
6
|
+
|
|
7
|
+
`/api/v1/ynab`
|
|
8
|
+
|
|
9
|
+
## Endpoints
|
|
10
|
+
|
|
11
|
+
### Budget & Accounts
|
|
12
|
+
|
|
13
|
+
#### Budget Overview
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
GET /api/v1/ynab/budget/overview
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Returns the overall budget summary including ready-to-assign amount, total income, total budgeted, and total activity.
|
|
20
|
+
|
|
21
|
+
#### List Categories
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
GET /api/v1/ynab/budget/categories
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Returns all category groups and their categories with balances, budgeted amounts, and goal information.
|
|
28
|
+
|
|
29
|
+
#### Category Balance (Search)
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
GET /api/v1/ynab/budget/categories/search?query={categoryName}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Fuzzy-searches for a category by name and returns its balance and details.
|
|
36
|
+
|
|
37
|
+
#### Account Balances
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
GET /api/v1/ynab/budget/accounts
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Returns all accounts grouped by type (checking, savings, creditCards, loans) with balances and transfer payee IDs.
|
|
44
|
+
|
|
45
|
+
#### Set Budget Amount
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
PATCH /api/v1/ynab/budget/categories/{categoryId}/budget
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Body:**
|
|
52
|
+
|
|
53
|
+
| Field | Type | Description |
|
|
54
|
+
|-------|------|-------------|
|
|
55
|
+
| `budgetedDollars` | number | Amount in dollars to budget for the category |
|
|
56
|
+
| `month` | string | Budget month in YYYY-MM format (defaults to current month) |
|
|
57
|
+
|
|
58
|
+
#### Set Category Goal
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
PATCH /api/v1/ynab/budget/categories/{categoryId}/goal
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Body:**
|
|
65
|
+
|
|
66
|
+
| Field | Type | Description |
|
|
67
|
+
|-------|------|-------------|
|
|
68
|
+
| `goalType` | string | Goal type: `TB`, `TBD`, `MF`, `NEED` |
|
|
69
|
+
| `goalTargetDollars` | number | Goal target in dollars |
|
|
70
|
+
| `goalTargetMonth` | string | Target month YYYY-MM (for TBD goals, appends `-01` automatically) |
|
|
71
|
+
|
|
72
|
+
#### Goal Progress
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
GET /api/v1/ynab/budget/categories
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Same as list_categories; goal progress fields are included in category data.
|
|
79
|
+
|
|
80
|
+
#### Budget Months
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
GET /api/v1/ynab/budget/months
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Returns available budget months with summary data.
|
|
87
|
+
|
|
88
|
+
#### Search Payees
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
GET /api/v1/ynab/budget/payees/search?query={payeeName}
|
|
92
|
+
GET /api/v1/ynab/budget/payees
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Search for payees by name (fuzzy match), or list all payees if no query is provided.
|
|
96
|
+
|
|
97
|
+
### Transactions
|
|
98
|
+
|
|
99
|
+
#### Create Transaction
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
POST /api/v1/ynab/transactions
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Body:**
|
|
106
|
+
|
|
107
|
+
| Field | Type | Description |
|
|
108
|
+
|-------|------|-------------|
|
|
109
|
+
| `accountId` | string | **Required.** YNAB account ID |
|
|
110
|
+
| `amountMilliunits` | number | **Required.** Amount in milliunits (dollars * 1000, negative for expenses) |
|
|
111
|
+
| `date` | string | **Required.** Date YYYY-MM-DD (defaults to today) |
|
|
112
|
+
| `payeeName` | string | Payee name (required if no payeeId) |
|
|
113
|
+
| `payeeId` | string | Payee ID (for transfers, use target account's transferPayeeId) |
|
|
114
|
+
| `categoryId` | string | Category ID (resolved from categoryName by the tool) |
|
|
115
|
+
| `memo` | string | Optional memo |
|
|
116
|
+
| `cleared` | string | `cleared`, `uncleared`, or `reconciled` |
|
|
117
|
+
|
|
118
|
+
The tool automatically performs duplicate detection by checking for existing transactions with the same amount and date.
|
|
119
|
+
|
|
120
|
+
#### Create Transactions Bulk
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
POST /api/v1/ynab/transactions/bulk
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Body:** `{ transactions: [{ accountId, payeeName, amount, date, categoryId, memo? }] }`
|
|
127
|
+
|
|
128
|
+
Amounts are in milliunits. Bypasses the single-transaction duplicate check.
|
|
129
|
+
|
|
130
|
+
#### List Transactions
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
GET /api/v1/ynab/transactions
|
|
134
|
+
GET /api/v1/ynab/transactions?sinceDate={YYYY-MM-DD}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Returns transactions, optionally filtered by date.
|
|
138
|
+
|
|
139
|
+
#### Update Transaction
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
PUT /api/v1/ynab/transactions/{transactionId}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Body:** Any combination of `accountId`, `payeeName`, `payeeId`, `amountMilliunits`, `date`, `memo`, `cleared`, `flagColor`, `categoryId`.
|
|
146
|
+
|
|
147
|
+
#### Delete Transaction
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
DELETE /api/v1/ynab/transactions/{transactionId}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Split Transaction
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
PUT /api/v1/ynab/transactions/{transactionId}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Updates a transaction with `subtransactions` to split it across multiple categories. The tool validates that split amounts sum to the original transaction amount.
|
|
160
|
+
|
|
161
|
+
**Body:** `{ subtransactions: [{ amount, categoryId, memo? }] }`
|
|
162
|
+
|
|
163
|
+
### Scheduled Transactions & Subscriptions
|
|
164
|
+
|
|
165
|
+
#### List Scheduled Transactions
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
GET /api/v1/ynab/scheduled-transactions
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
#### Create Scheduled Transaction
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
POST /api/v1/ynab/scheduled-transactions
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Body:**
|
|
178
|
+
|
|
179
|
+
| Field | Type | Description |
|
|
180
|
+
|-------|------|-------------|
|
|
181
|
+
| `accountId` | string | **Required.** YNAB account ID |
|
|
182
|
+
| `payeeName` | string | **Required.** Payee name |
|
|
183
|
+
| `amountMilliunits` | number | **Required.** Amount in milliunits |
|
|
184
|
+
| `dateFirst` | string | **Required.** First occurrence date YYYY-MM-DD |
|
|
185
|
+
| `dateNext` | string | Next occurrence date (defaults to dateFirst) |
|
|
186
|
+
| `frequency` | string | **Required.** Recurrence: `never`, `daily`, `weekly`, `everyOtherWeek`, `twiceAMonth`, `every4Weeks`, `monthly`, `everyOtherMonth`, `every3Months`, `every4Months`, `twiceAYear`, `yearly`, `everyOtherYear` |
|
|
187
|
+
| `categoryId` | string | Category ID |
|
|
188
|
+
| `memo` | string | Optional memo |
|
|
189
|
+
|
|
190
|
+
#### Update Scheduled Transaction
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
PUT /api/v1/ynab/scheduled-transactions/{transactionId}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**Body:** Any combination of `payeeName`, `amountMilliunits`, `dateNext`, `frequency`, `memo`, `categoryId`.
|
|
197
|
+
|
|
198
|
+
#### Delete Scheduled Transaction
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
DELETE /api/v1/ynab/scheduled-transactions/{transactionId}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
#### Subscriptions View
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
GET /api/v1/ynab/subscriptions
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Returns a view of recurring scheduled transactions categorized as subscriptions.
|
|
211
|
+
|
|
212
|
+
#### Upcoming Bills
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
GET /api/v1/ynab/scheduled?days={days}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Returns scheduled transactions due within the specified number of days (default: 7).
|
|
219
|
+
|
|
220
|
+
### Analytics
|
|
221
|
+
|
|
222
|
+
#### Spending Insights
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
GET /api/v1/ynab/analytics/spending?months={months}&category={categoryName}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Returns spending breakdown by category. Optional category filter for drilling into a specific category.
|
|
229
|
+
|
|
230
|
+
#### Payee Analysis
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
GET /api/v1/ynab/analytics/payees?months={months}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Returns spending analysis by payee.
|
|
237
|
+
|
|
238
|
+
#### Spending Trends
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
GET /api/v1/ynab/analytics/trends?months={months}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Returns month-over-month spending trends.
|
|
245
|
+
|
|
246
|
+
#### Net Worth
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
GET /api/v1/ynab/analytics/net-worth
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Returns net worth calculation across all accounts.
|
|
253
|
+
|
|
254
|
+
#### Debt Tracking
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
GET /api/v1/ynab/analytics/debt
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Returns debt tracking information for loan and credit card accounts.
|
|
261
|
+
|
|
262
|
+
### Category Management
|
|
263
|
+
|
|
264
|
+
#### Create Category Group
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
POST /api/v1/ynab/budget/category-groups
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Body:** `{ name: "Group Name" }`
|
|
271
|
+
|
|
272
|
+
#### Create Category
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
POST /api/v1/ynab/budget/categories
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**Body:** `{ name: "Category Name", categoryGroupId: "group-id", note?: "optional note" }`
|
|
279
|
+
|
|
280
|
+
The `categoryGroupId` can be resolved from `groupName` by fuzzy match against existing groups.
|
|
281
|
+
|
|
282
|
+
#### Rename Category
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
PATCH /api/v1/ynab/budget/categories/{categoryId}/details
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Body:** `{ name: "New Name" }`
|
|
289
|
+
|
|
290
|
+
#### Move Category
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
PATCH /api/v1/ynab/budget/categories/{categoryId}/details
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Body:** `{ categoryGroupId: "target-group-id" }`
|
|
297
|
+
|
|
298
|
+
Moves a category to a different category group.
|
|
299
|
+
|
|
300
|
+
#### Rename Category Group
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
PATCH /api/v1/ynab/budget/category-groups/{groupId}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
**Body:** `{ name: "New Group Name" }`
|
|
307
|
+
|
|
308
|
+
### Connection
|
|
309
|
+
|
|
310
|
+
#### Connection Status
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
GET /api/v1/ynab/status
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Returns YNAB connection status.
|
|
317
|
+
|
|
318
|
+
## Notes
|
|
319
|
+
|
|
320
|
+
- All monetary amounts from the YNAB API are in milliunits (divide by 1000 for dollars). The tool automatically converts these to formatted dollar strings in responses.
|
|
321
|
+
- The tool accepts amounts in dollars (e.g., `-45.50` for a $45.50 expense) and converts them to milliunits internally.
|
|
322
|
+
- Category names are resolved via fuzzy search against existing categories. Always use `list_categories` first to find the correct name.
|
|
323
|
+
- `categoryName` is required for all non-transfer transactions to prevent uncategorized entries in YNAB.
|