@lunch-money/v2-api-spec 2.10.0-preview.3 → 2.10.0-preview.5
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/lunch-money-api-v2.yaml +32 -49
- package/package.json +1 -1
- package/version-history.md +3 -1
package/lunch-money-api-v2.yaml
CHANGED
|
@@ -74,7 +74,7 @@ tags:
|
|
|
74
74
|
description: Learn more about crypto assets
|
|
75
75
|
url: https://support.lunchmoney.app/setup/crypto
|
|
76
76
|
- name: crypto-synced
|
|
77
|
-
description:
|
|
77
|
+
description: Read and refresh synced crypto assets and balances. Creating and managing connections with synced crypto providers is done exclusively in the Lunch Money web app.
|
|
78
78
|
externalDocs:
|
|
79
79
|
description: Learn more about crypto assets
|
|
80
80
|
url: https://support.lunchmoney.app/setup/crypto
|
|
@@ -597,10 +597,12 @@ components:
|
|
|
597
597
|
x-updatable: false
|
|
598
598
|
archived_at:
|
|
599
599
|
type: string
|
|
600
|
+
format: date-time
|
|
600
601
|
nullable: true
|
|
601
602
|
description: System set date and time of when the category was last
|
|
602
|
-
archived (in the ISO 8601 extended format).
|
|
603
|
-
|
|
603
|
+
archived (in the ISO 8601 extended format). Provide an ISO 8601
|
|
604
|
+
extended datetime or `null` to clear it.
|
|
605
|
+
x-updatable: true
|
|
604
606
|
updated_at:
|
|
605
607
|
type: string
|
|
606
608
|
format: date-time
|
|
@@ -694,7 +696,7 @@ components:
|
|
|
694
696
|
symbol:
|
|
695
697
|
type: string
|
|
696
698
|
minLength: 1
|
|
697
|
-
maxLength:
|
|
699
|
+
maxLength: 25
|
|
698
700
|
description: Cryptocurrency symbol
|
|
699
701
|
coingecko_id:
|
|
700
702
|
type: string
|
|
@@ -711,12 +713,6 @@ components:
|
|
|
711
713
|
nullable: true
|
|
712
714
|
description: Date/time the balance was last updated in ISO 8601
|
|
713
715
|
extended format
|
|
714
|
-
last_import:
|
|
715
|
-
type: string
|
|
716
|
-
format: date-time
|
|
717
|
-
nullable: true
|
|
718
|
-
description: Timestamp in ISO 8601 extended format of the last
|
|
719
|
-
successful import. This will be `null` for manual crypto balances.
|
|
720
716
|
created_by_name:
|
|
721
717
|
type: string
|
|
722
718
|
nullable: true
|
|
@@ -741,7 +737,6 @@ components:
|
|
|
741
737
|
- coingecko_id
|
|
742
738
|
- to_base
|
|
743
739
|
- balance_as_of
|
|
744
|
-
- last_import
|
|
745
740
|
- created_by_name
|
|
746
741
|
- created_at
|
|
747
742
|
- updated_at
|
|
@@ -765,7 +760,7 @@ components:
|
|
|
765
760
|
symbol:
|
|
766
761
|
type: string
|
|
767
762
|
minLength: 1
|
|
768
|
-
maxLength:
|
|
763
|
+
maxLength: 25
|
|
769
764
|
description: Symbol of the currency held in the synced account
|
|
770
765
|
coingecko_id:
|
|
771
766
|
type: string
|
|
@@ -833,6 +828,17 @@ components:
|
|
|
833
828
|
format: date-time
|
|
834
829
|
description: Date/time the synced crypto connection was created in ISO
|
|
835
830
|
8601 extended format
|
|
831
|
+
updated_at:
|
|
832
|
+
type: string
|
|
833
|
+
format: date-time
|
|
834
|
+
description: Date/time the synced crypto connection was last updated
|
|
835
|
+
in ISO 8601 extended format
|
|
836
|
+
last_import:
|
|
837
|
+
type: string
|
|
838
|
+
format: date-time
|
|
839
|
+
nullable: true
|
|
840
|
+
description: System defined timestamp in ISO 8601 extended format of
|
|
841
|
+
the last successful import.
|
|
836
842
|
display_name:
|
|
837
843
|
type: string
|
|
838
844
|
nullable: true
|
|
@@ -848,6 +854,7 @@ components:
|
|
|
848
854
|
- status
|
|
849
855
|
- created_by_name
|
|
850
856
|
- created_at
|
|
857
|
+
- updated_at
|
|
851
858
|
- display_name
|
|
852
859
|
- balances
|
|
853
860
|
|
|
@@ -890,13 +897,13 @@ components:
|
|
|
890
897
|
coingecko_id:
|
|
891
898
|
type: string
|
|
892
899
|
minLength: 1
|
|
893
|
-
maxLength:
|
|
900
|
+
maxLength: 100
|
|
894
901
|
description: System-defined CoinGecko identifier used to fetch
|
|
895
902
|
the USD-based prices for this cryptocurrency.
|
|
896
903
|
symbol:
|
|
897
904
|
type: string
|
|
898
905
|
minLength: 1
|
|
899
|
-
maxLength:
|
|
906
|
+
maxLength: 25
|
|
900
907
|
description: Lowercase currency symbol that must be used as
|
|
901
908
|
`symbol` when creating a manual crypto balance.
|
|
902
909
|
full_name:
|
|
@@ -976,7 +983,7 @@ components:
|
|
|
976
983
|
symbol:
|
|
977
984
|
type: string
|
|
978
985
|
minLength: 1
|
|
979
|
-
maxLength:
|
|
986
|
+
maxLength: 25
|
|
980
987
|
description: Cryptocurrency symbol to track. Must match the `symbol`
|
|
981
988
|
of one of the supported cryptocurrencies returned by `GET
|
|
982
989
|
/cryptocurrencies`.
|
|
@@ -1032,7 +1039,7 @@ components:
|
|
|
1032
1039
|
symbol:
|
|
1033
1040
|
type: string
|
|
1034
1041
|
minLength: 1
|
|
1035
|
-
maxLength:
|
|
1042
|
+
maxLength: 25
|
|
1036
1043
|
description: Existing cryptocurrency symbol. Ignored if set.
|
|
1037
1044
|
x-updatable: false
|
|
1038
1045
|
coingecko_id:
|
|
@@ -1055,13 +1062,6 @@ components:
|
|
|
1055
1062
|
description: System defined date/time the balance was last updated in
|
|
1056
1063
|
ISO 8601 extended format. Ignored if set
|
|
1057
1064
|
x-updatable: false
|
|
1058
|
-
last_import:
|
|
1059
|
-
type: string
|
|
1060
|
-
format: date-time
|
|
1061
|
-
nullable: true
|
|
1062
|
-
description: System defined timestamp in ISO 8601 extended format of
|
|
1063
|
-
the last successful import. Ignored if set
|
|
1064
|
-
x-updatable: false
|
|
1065
1065
|
created_by_name:
|
|
1066
1066
|
type: string
|
|
1067
1067
|
nullable: true
|
|
@@ -1964,8 +1964,9 @@ components:
|
|
|
1964
1964
|
type: string
|
|
1965
1965
|
format: date-time
|
|
1966
1966
|
nullable: true
|
|
1967
|
-
description:
|
|
1968
|
-
|
|
1967
|
+
description: If set, updates the archived timestamp for the tag.
|
|
1968
|
+
Provide an ISO 8601 extended datetime or `null` to clear it.
|
|
1969
|
+
x-updatable: true
|
|
1969
1970
|
|
|
1970
1971
|
# The object returned when a DELETE /tag/:id request
|
|
1971
1972
|
# has an id for a tag that has dependencies
|
|
@@ -2036,8 +2037,6 @@ components:
|
|
|
2036
2037
|
Name of payee set by the user, the financial institution, or by
|
|
2037
2038
|
a matched recurring item. This will match the value
|
|
2038
2039
|
displayed in payee field on the transactions page in the Lunch Money app.
|
|
2039
|
-
minLength: 0
|
|
2040
|
-
maxLength: 140
|
|
2041
2040
|
original_name:
|
|
2042
2041
|
type: string
|
|
2043
2042
|
nullable: true
|
|
@@ -2045,8 +2044,6 @@ components:
|
|
|
2045
2044
|
institution, CSV, etc.). For Plaid transactions, this is the raw
|
|
2046
2045
|
name before normalization. For manual/API transactions, this
|
|
2047
2046
|
typically matches `payee`. May be null for older transactions.
|
|
2048
|
-
minLength: 0
|
|
2049
|
-
maxLength: 140
|
|
2050
2047
|
category_id:
|
|
2051
2048
|
type: integer
|
|
2052
2049
|
format: int32
|
|
@@ -2319,8 +2316,6 @@ components:
|
|
|
2319
2316
|
Name of payee set by the user, the financial institution, or by
|
|
2320
2317
|
a matched recurring item. This will match the value
|
|
2321
2318
|
displayed in payee field on the transactions page in the Lunch Money app.
|
|
2322
|
-
minLength: 0
|
|
2323
|
-
maxLength: 140
|
|
2324
2319
|
original_name:
|
|
2325
2320
|
type: string
|
|
2326
2321
|
nullable: true
|
|
@@ -2328,8 +2323,6 @@ components:
|
|
|
2328
2323
|
institution, CSV, etc.). For Plaid transactions, this is the raw
|
|
2329
2324
|
name before normalization. For manual/API transactions, this
|
|
2330
2325
|
typically matches `payee`. May be null for older transactions.
|
|
2331
|
-
minLength: 0
|
|
2332
|
-
maxLength: 140
|
|
2333
2326
|
category_id:
|
|
2334
2327
|
type: integer
|
|
2335
2328
|
format: int32
|
|
@@ -2572,15 +2565,11 @@ components:
|
|
|
2572
2565
|
payee:
|
|
2573
2566
|
type: string
|
|
2574
2567
|
description: Name of payee for the transaction
|
|
2575
|
-
minLength: 0
|
|
2576
|
-
maxLength: 140
|
|
2577
2568
|
original_name:
|
|
2578
2569
|
type: string
|
|
2579
2570
|
nullable: true
|
|
2580
2571
|
description: Original payee name. If not provided, defaults to `payee`
|
|
2581
2572
|
value.
|
|
2582
|
-
minLength: 0
|
|
2583
|
-
maxLength: 140
|
|
2584
2573
|
category_id:
|
|
2585
2574
|
type: integer
|
|
2586
2575
|
format: int32
|
|
@@ -2715,15 +2704,11 @@ components:
|
|
|
2715
2704
|
type: string
|
|
2716
2705
|
description: |
|
|
2717
2706
|
The new payee for the transaction.
|
|
2718
|
-
minLength: 0
|
|
2719
|
-
maxLength: 140
|
|
2720
2707
|
x-updatable: true
|
|
2721
2708
|
original_name:
|
|
2722
2709
|
type: string
|
|
2723
2710
|
nullable: true
|
|
2724
2711
|
description: Original payee name. Cannot be changed. Ignored if set.
|
|
2725
|
-
minLength: 0
|
|
2726
|
-
maxLength: 140
|
|
2727
2712
|
x-updatable: false
|
|
2728
2713
|
category_id:
|
|
2729
2714
|
type: integer
|
|
@@ -5133,7 +5118,7 @@ paths:
|
|
|
5133
5118
|
|
|
5134
5119
|
You may submit the response from a `GET /categories/{id}` as the request body; however, only certain
|
|
5135
5120
|
properties can be updated using this API. The following properties are
|
|
5136
|
-
accepted in the request body but their values will be ignored: `id`, `is_group
|
|
5121
|
+
accepted in the request body but their values will be ignored: `id`, `is_group`, `updated_at`, `created_at`, and `order`.<br><br>
|
|
5137
5122
|
|
|
5138
5123
|
It is also possible to provide only the properties to be updated in the
|
|
5139
5124
|
request body, as long as the request includes at least one of the
|
|
@@ -5526,7 +5511,6 @@ paths:
|
|
|
5526
5511
|
coingecko_id: bitcoin
|
|
5527
5512
|
to_base: 53124.72
|
|
5528
5513
|
balance_as_of: "2026-02-25T14:22:10.000Z"
|
|
5529
|
-
last_import: null
|
|
5530
5514
|
created_by_name: User 1
|
|
5531
5515
|
created_at: "2025-11-12T20:14:32.000Z"
|
|
5532
5516
|
updated_at: "2026-02-25T14:22:10.000Z"
|
|
@@ -5584,7 +5568,6 @@ paths:
|
|
|
5584
5568
|
coingecko_id: ethereum
|
|
5585
5569
|
to_base: 28998.44
|
|
5586
5570
|
balance_as_of: "2026-03-01T09:20:41.000Z"
|
|
5587
|
-
last_import: null
|
|
5588
5571
|
created_by_name: User 1
|
|
5589
5572
|
created_at: "2026-03-01T09:20:41.000Z"
|
|
5590
5573
|
updated_at: "2026-03-01T09:20:41.000Z"
|
|
@@ -5652,7 +5635,6 @@ paths:
|
|
|
5652
5635
|
coingecko_id: bitcoin
|
|
5653
5636
|
to_base: 53124.72
|
|
5654
5637
|
balance_as_of: "2026-02-25T14:22:10.000Z"
|
|
5655
|
-
last_import: null
|
|
5656
5638
|
created_by_name: User 1
|
|
5657
5639
|
created_at: "2025-11-12T20:14:32.000Z"
|
|
5658
5640
|
updated_at: "2026-02-25T14:22:10.000Z"
|
|
@@ -5730,7 +5712,6 @@ paths:
|
|
|
5730
5712
|
coingecko_id: bitcoin
|
|
5731
5713
|
to_base: 56011.12
|
|
5732
5714
|
balance_as_of: "2026-03-01T09:41:18.000Z"
|
|
5733
|
-
last_import: null
|
|
5734
5715
|
created_by_name: User 1
|
|
5735
5716
|
created_at: "2025-11-12T20:14:32.000Z"
|
|
5736
5717
|
updated_at: "2026-02-25T14:22:10.000Z"
|
|
@@ -5751,7 +5732,6 @@ paths:
|
|
|
5751
5732
|
coingecko_id: bitcoin
|
|
5752
5733
|
to_base: 56011.12
|
|
5753
5734
|
balance_as_of: "2026-03-01T09:41:18.000Z"
|
|
5754
|
-
last_import: null
|
|
5755
5735
|
created_by_name: User 1
|
|
5756
5736
|
created_at: "2025-11-12T20:14:32.000Z"
|
|
5757
5737
|
updated_at: "2026-03-01T09:41:18.000Z"
|
|
@@ -5872,6 +5852,7 @@ paths:
|
|
|
5872
5852
|
status: active
|
|
5873
5853
|
created_by_name: User 1
|
|
5874
5854
|
created_at: "2025-10-02T11:02:09.000Z"
|
|
5855
|
+
updated_at: "2026-02-25T14:25:01.000Z"
|
|
5875
5856
|
display_name: Coinbase Main
|
|
5876
5857
|
balances:
|
|
5877
5858
|
- name: ETH
|
|
@@ -5893,6 +5874,7 @@ paths:
|
|
|
5893
5874
|
status: relink
|
|
5894
5875
|
created_by_name: User 1
|
|
5895
5876
|
created_at: "2025-08-10T10:00:00.000Z"
|
|
5877
|
+
updated_at: "2026-02-26T07:22:30.000Z"
|
|
5896
5878
|
display_name: Kraken Wallet
|
|
5897
5879
|
balances:
|
|
5898
5880
|
- name: XRP
|
|
@@ -5944,6 +5926,7 @@ paths:
|
|
|
5944
5926
|
status: active
|
|
5945
5927
|
created_by_name: User 1
|
|
5946
5928
|
created_at: "2025-10-02T11:02:09.000Z"
|
|
5929
|
+
updated_at: "2026-02-25T14:25:01.000Z"
|
|
5947
5930
|
display_name: Coinbase Main
|
|
5948
5931
|
balances:
|
|
5949
5932
|
- name: ETH
|
|
@@ -6009,7 +5992,7 @@ paths:
|
|
|
6009
5992
|
schema:
|
|
6010
5993
|
type: string
|
|
6011
5994
|
minLength: 1
|
|
6012
|
-
maxLength:
|
|
5995
|
+
maxLength: 25
|
|
6013
5996
|
responses:
|
|
6014
5997
|
"200":
|
|
6015
5998
|
description: Synced crypto balance object
|
|
@@ -9775,7 +9758,7 @@ paths:
|
|
|
9775
9758
|
|
|
9776
9759
|
You may submit the response from a `GET /tags/{id}` as the request body; however, only certain
|
|
9777
9760
|
properties can be updated using this API. The following system set properties are
|
|
9778
|
-
accepted in the request body but their values will be ignored: `id`, `updated_at`,
|
|
9761
|
+
accepted in the request body but their values will be ignored: `id`, `updated_at`, and `created_at`.<br><br>
|
|
9779
9762
|
|
|
9780
9763
|
It is also possible to provide only the properties to be updated in the
|
|
9781
9764
|
request body, as long as the request includes at least one of the
|
package/package.json
CHANGED
package/version-history.md
CHANGED
|
@@ -10,9 +10,11 @@ The Lunch Money API spec uses a modified version of SEMVER for its versioning me
|
|
|
10
10
|
- Discovering the currently supported currencies for manually managed crypto assets
|
|
11
11
|
- Managing the complete lifecycle of manually managed crypto assets (create, read, update, delete)
|
|
12
12
|
- Viewing the balances for currencies associated with both manually managed crypto assets and those that are synced via a synced crypto account (ie: coinbase, kraken, ethereum wallet)
|
|
13
|
-
deferred.
|
|
14
13
|
- Refreshing synced crypto account balances
|
|
15
14
|
|
|
15
|
+
## v2.9.1 - Apr, 2026
|
|
16
|
+
- You may now set `archived_at` when modifying a category or tag via the `PUT /categories` or `PUT /tags` endpoints.
|
|
17
|
+
|
|
16
18
|
## v2.9.0 - Feb 26, 2026
|
|
17
19
|
- Add initial `/budgets` endpoint support:
|
|
18
20
|
- `GET /budgets/settings` for account budget settings
|