@lunch-money/developer-docs 2.11.0-preview.10 → 2.11.1-preview.1

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 CHANGED
@@ -1,65 +1,17 @@
1
1
  # @lunch-money/developer-docs
2
2
 
3
- Documentation content for the [Lunch Money](https://lunchmoney.app) developer APIs
4
- the guides, v1/v2 reference docs, images, and doc-routing manifest that power the
5
- [Lunch Money developer portal](https://lunchmoney.dev).
3
+ Developer documentation content for Lunch Money APIs.
6
4
 
7
- Most API consumers want the OpenAPI spec instead: **[`@lunch-money/v2-api-spec`](https://www.npmjs.com/package/@lunch-money/v2-api-spec)**
8
- is the canonical machine-readable API contract. This package is the human-facing docs
9
- content, primarily for the docs server that renders the portal.
5
+ This package ships the public `developer-docs` repository content directories at the package root:
10
6
 
11
- ## What's in the package
7
+ - `docs/`
8
+ - `v1/`
9
+ - `v2/`
12
10
 
13
- Shipped verbatim at the package root:
14
-
15
- - `docs/` — version-independent guides (getting started, pagination, rate limiting, …)
16
- - `v1/` — v1 API reference markdown
17
- - `v2/` — v2 guides, images, and a **convenience copy** of the OpenAPI YAML under
18
- `v2/spec/` (non-canonical; the canonical spec is `@lunch-money/v2-api-spec`)
19
- - `manifest.json` — doc routes, redirects, and sidebar structure
20
-
21
- ## Consuming the content
22
-
23
- Resolve the package root, then read content files relative to it:
11
+ The package version tracks the newest API version documented by this content. Server consumers should pin this package explicitly and resolve the package root with:
24
12
 
25
13
  ```js
26
- const path = require('path');
27
- const fs = require('fs');
28
-
29
14
  const docsRoot = path.dirname(require.resolve('@lunch-money/developer-docs/package.json'));
30
- const intro = fs.readFileSync(path.join(docsRoot, 'docs/getting-started.md'), 'utf8');
31
15
  ```
32
16
 
33
- `manifest.json` describes every page the docs server renders:
34
-
35
- ```jsonc
36
- {
37
- "pages": [
38
- {
39
- "path": "/amounts-and-balances", // canonical URL
40
- "file": "docs/amounts-and-balances.md", // path within this package
41
- "title": "Amounts & Balances",
42
- "section": "GUIDES", // sidebar grouping
43
- "type": "markdown", // "markdown" | "html" | "v1-slate"
44
- "aliases": ["/v2/amounts-and-balances"] // legacy URLs → 301 to path
45
- }
46
- ],
47
- "redirects": [ /* { from, to, status } */ ],
48
- "sidebar": { "docs": [ /* … */ ], "v1": [ /* … */ ] }
49
- }
50
- ```
51
-
52
- ## Versioning
53
-
54
- The package version tracks the newest API version this content documents (e.g. `2.11.x`
55
- documents the v2.11 API). Pin an exact version in server deployments so docs are
56
- deterministic.
57
-
58
- ## Contributing
59
-
60
- Guides, spec, and the routing manifest are edited in the public
61
- [`developer-docs` repository](https://github.com/lunch-money/developer-docs) — see its
62
- README for how to add or move a page. This npm package is a published build of that
63
- content.
64
-
65
- _ISC licensed._
17
+ The OpenAPI YAML under `v2/spec/` is included as a convenience copy because the docs tree is shipped verbatim. The canonical v2 API specification package is `@lunch-money/v2-api-spec`.
@@ -2,6 +2,10 @@
2
2
 
3
3
  Welcome to the Lunch Money developer documentation. This site covers the **v2 API** — the current generation of the Lunch Money API — along with guides, a reference for the legacy v1 API, and tools for exploring the API without touching real data.
4
4
 
5
+ > [!WARNING]
6
+ > Alpha Release
7
+ > The v2 API is in open alpha. It is subject to change during this review period and bugs may exist. We strongly encourage using the [mock service](#trying-the-api-without-real-data) or a test budget with sample data as your first step.
8
+
5
9
  ## Getting Started
6
10
 
7
11
  The v2 API is available at:
package/package.json CHANGED
@@ -1,25 +1,22 @@
1
1
  {
2
2
  "name": "@lunch-money/developer-docs",
3
- "version": "2.11.0-preview.10",
3
+ "version": "2.11.1-preview.1",
4
4
  "description": "Developer documentation content for Lunch Money APIs",
5
5
  "exports": {
6
6
  ".": "./package.json",
7
- "./manifest.json": "./manifest.json",
8
7
  "./package.json": "./package.json"
9
8
  },
10
9
  "files": [
11
10
  "docs",
12
11
  "v1",
13
12
  "v2",
14
- "manifest.json",
15
13
  "README.md"
16
14
  ],
17
15
  "publishConfig": {
18
16
  "access": "public"
19
17
  },
20
18
  "scripts": {
21
- "validate:manifest": "node scripts/validate-manifest.js",
22
- "prepack": "node scripts/validate-manifest.js && node scripts/prepack.js",
19
+ "prepack": "node scripts/prepack.js",
23
20
  "postpack": "node scripts/postpack.js"
24
21
  },
25
22
  "keywords": [
@@ -5,6 +5,11 @@ The Lunch Money API spec uses a modified version of SEMVER for its versioning me
5
5
  - The minor version represents the number of main endpoints the current version of the spec supports. For example, a version of the API that supports the /me, /categories, and /transactions endpoints would have a minor version of 3.
6
6
  - The revision number represents the number of updates since the last endpoint was added. For example, each time changes are made to one of the existing three APIs as described above, the revision number will be bumped.
7
7
 
8
+ ## v2.11.1 - TBD
9
+ - Add `GET /me/account/settings` and `PUT /me/account/settings` for account-level settings
10
+ - Add `GET /me/user/settings` and `PUT /me/user/settings` for user-level display and formatting preferences
11
+ - Document `GET /budgets/settings` response schema publicly; change `budget_period_quantity` to integer
12
+
8
13
  ## v2.11.0 - TBD
9
14
  - Add `GET /balance_history`
10
15
  - Add `GET /balance_history/{account_type}/{account_id}`
@@ -2,13 +2,17 @@ openapi: 3.0.2
2
2
  info:
3
3
  title: Lunch Money API - v2
4
4
  description: |-
5
- Welcome to the Lunch Money v2 API reference. This is the **v2.11.0** spec.
5
+ Welcome to the Lunch Money v2 API reference. This is the **v2.11.1** spec. It includes previews of the proposed `/crypto` and `/balance_history` endpoints. Only the mock service works with these endpoints.<br><br>
6
+ The most recent stable version of the API is v2.9.4 and is available at:
7
+ `https://api.lunchmoney.dev/v2`
8
+
9
+ ------------------------------------------------------------------------------------------------
6
10
 
7
11
  ### Introduction
8
12
 
9
- The API is available at `https://lunchmoney.dev/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
13
+ The API is available at `https://api.lunchmoney.dev/v2`. Get your access token from the [Lunch Money developers page](https://my.lunchmoney.app/developers).
10
14
 
11
- API calls can <span class="red-text"><strong>change or delete</strong></span> your data. Any changes you make are <span class="red-text"><strong>permanent</strong></span>, just like they would be if you made changes using the web or mobile app. Please refer to the [Getting Started Guide](https://lunchmoney.dev/v2/getting-started) before using the API.
15
+ <span class="red-text"><strong>The v2 API is in open alpha and is still subject to change. Use the mock server or a test budget when getting started.</strong></span>
12
16
 
13
17
  **Static Mock Server**
14
18
 
@@ -16,37 +20,40 @@ info:
16
20
 
17
21
  **Client Libraries & SDKs**
18
22
 
19
- An official TypeScript SDK is available on [NPM](https://www.npmjs.com/package/@lunch-money/v2-api-spec) and [GitHub](https://github.com/lunch-money/lunch-money-js-v2). For Python or other languages, see [lunchmoney-clients](https://github.com/juftin/lunchmoney-clients) or generate a client from [this OpenAPI spec](/v2/openapi).
23
+ An official TypeScript SDK is available on [NPM](https://www.npmjs.com/package/@lunch-money/v2-api-spec) and [GitHub](https://github.com/lunch-money/lunch-money-js-v2). For Python or other languages, see [lunchmoney-clients](https://github.com/juftin/lunchmoney-clients) or generate a client from this OpenAPI spec.
20
24
 
21
25
  **Migrating from v1**
22
26
 
23
- The v2 API is not backwards compatible with v1. See the [Migration Guide](https://lunchmoney.dev/v2/migration-guide) for details.
27
+ The v2 API is not backwards compatible with v1. See the [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide) for details.
24
28
 
25
29
  **Useful links**
26
- - [Developer Portal](https://lunchmoney.dev/v2/introduction)
27
- - [Getting Started Guide](https://lunchmoney.dev/v2/getting-started)
28
- - [v2 API Overview](https://lunchmoney.dev/v2/overview)
29
- - [Version History](https://lunchmoney.dev/v2/version-history)
30
- - [Migration Guide](https://lunchmoney.dev/v2/migration-guide)
31
- - [Rate Limits](https://lunchmoney.dev/v2/rate-limits)
30
+ - [Developer Portal](https://alpha.lunchmoney.dev/v2/introduction)
31
+ - [Getting Started Guide](https://alpha.lunchmoney.dev/v2/getting-started)
32
+ - [v2 API Overview](https://alpha.lunchmoney.dev/v2/overview)
33
+ - [Version History](https://alpha.lunchmoney.dev/v2/version-history)
34
+ - [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide)
35
+ - [Rate Limits](https://alpha.lunchmoney.dev/v2/rate-limits)
32
36
  termsOfService: https://lunchmoney.dev/#current-status
33
37
  contact:
34
38
  email: devsupport@lunchmoney.app
35
39
  license:
36
40
  name: Apache 2.0
37
41
  url: http://www.apache.org/licenses/LICENSE-2.0.html
38
- version: 2.11.0
42
+ version: 2.11.1
39
43
 
40
44
  servers:
41
45
  - url: https://api.lunchmoney.dev/v2
42
46
  description: v2 Lunch Money API Server - changes will affect real data!
43
- # - url: https://lunchmoney.dev/v2
44
- - url: https://lunchmoney.dev/v2
47
+ # - url: https://mock.lunchmoney.dev/v2
48
+ - url: https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/
45
49
  description: Static mock version of the v2 Lunch Money API Server
46
50
 
47
51
  tags:
48
52
  - name: me
49
- description: View details and settings for the current user and account
53
+ description: View details and settings for the current user and account.<p>
54
+ Use [/me/account/settings](#tag/me/GET/me/account/settings) and
55
+ [/me/user/settings](#tag/me/GET/me/user/settings) for account- and
56
+ user-level preferences.
50
57
  - name: categories
51
58
  description: Work with categories
52
59
  externalDocs:
@@ -143,9 +150,15 @@ components:
143
150
  description: Unique ID for the current budgeting account
144
151
  budget_name:
145
152
  type: string
146
- description: Name of the current budgeting account
153
+ description: Name of the current budgeting account.<p> Also available
154
+ as `display_name` on
155
+ [/me/account/settings](#tag/me/GET/me/account/settings), which is
156
+ the preferred endpoint for reading and updating account settings.
147
157
  primary_currency:
148
- description: Primary currency for the current budgeting account
158
+ description: Primary currency for the current budgeting account.<p>
159
+ Also available on [/me/account/settings](#tag/me/GET/me/account/settings),
160
+ which is the preferred endpoint for reading and updating account
161
+ settings.
149
162
  allOf:
150
163
  - $ref: "#/components/schemas/currencyEnum"
151
164
  api_key_label:
@@ -2933,7 +2946,7 @@ components:
2933
2946
  currency:
2934
2947
  description: Three-letter lowercase currency code of the transaction
2935
2948
  in ISO 4217 format. Must match one of the [supported
2936
- currencies](https://lunchmoney.dev/v2/currencies). If not set
2949
+ currencies](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/currencies). If not set
2937
2950
  defaults to the user account's primary currency.
2938
2951
  allOf:
2939
2952
  - $ref: "#/components/schemas/currencyEnum"
@@ -3669,6 +3682,371 @@ components:
3669
3682
  - budget_income_option
3670
3683
  - budget_rollover_left_to_budget
3671
3684
 
3685
+ weekStartsOnEnum:
3686
+ type: string
3687
+ title: week starts on enum
3688
+ enum:
3689
+ - sunday
3690
+ - monday
3691
+ description: The day on which a calendar week begins.
3692
+
3693
+ monthYearFormatEnum:
3694
+ type: string
3695
+ title: month and year format enum
3696
+ description: Format string for displaying month and year values
3697
+ in the Lunch Money app.
3698
+ enum:
3699
+ - "MMMM YYYY"
3700
+ - "MMM YYYY"
3701
+ - "YYYY MMM"
3702
+ - "MM YYYY"
3703
+ - "MM-YYYY"
3704
+ - "MM.YYYY"
3705
+ - "MM/YYYY"
3706
+ - "M YYYY"
3707
+ - "M-YYYY"
3708
+ - "M.YYYY"
3709
+ - "M/YYYY"
3710
+ - "YYYY M"
3711
+ - "YYYY-M"
3712
+ - "YYYY.M"
3713
+ - "YYYY/M"
3714
+ - "YYYY MM"
3715
+ - "YYYY-MM"
3716
+ - "YYYY.MM"
3717
+ - "YYYY/MM"
3718
+
3719
+ monthDayYearFormatEnum:
3720
+ type: string
3721
+ title: month, day and year format enum
3722
+ description: Format string for displaying full dates in the
3723
+ Lunch Money app.
3724
+ enum:
3725
+ - "MMM D, YYYY"
3726
+ - "D MMM YYYY"
3727
+ - "YYYY MM DD"
3728
+ - "YYYY-MM-DD"
3729
+ - "YYYY.MM.DD"
3730
+ - "YYYY/MM/DD"
3731
+ - "YYYY M DD"
3732
+ - "YYYY-M-DD"
3733
+ - "YYYY.M.DD"
3734
+ - "YYYY/M/DD"
3735
+ - "YYYY MM D"
3736
+ - "YYYY-MM-D"
3737
+ - "YYYY.MM.D"
3738
+ - "YYYY/MM/D"
3739
+ - "YYYY M D"
3740
+ - "YYYY-M-D"
3741
+ - "YYYY.M.D"
3742
+ - "YYYY/M/D"
3743
+ - "DD MM YYYY"
3744
+ - "DD-MM-YYYY"
3745
+ - "DD.MM.YYYY"
3746
+ - "DD/MM/YYYY"
3747
+ - "DD M YYYY"
3748
+ - "DD-M-YYYY"
3749
+ - "DD.M.YYYY"
3750
+ - "DD/M/YYYY"
3751
+ - "D MM YYYY"
3752
+ - "D-MM-YYYY"
3753
+ - "D.MM.YYYY"
3754
+ - "D/MM/YYYY"
3755
+ - "D M YYYY"
3756
+ - "D-M-YYYY"
3757
+ - "D.M.YYYY"
3758
+ - "D/M/YYYY"
3759
+ - "M D YYYY"
3760
+ - "M-D-YYYY"
3761
+ - "M.D.YYYY"
3762
+ - "M/D/YYYY"
3763
+ - "MM D YYYY"
3764
+ - "MM-D-YYYY"
3765
+ - "MM.D.YYYY"
3766
+ - "MM/D/YYYY"
3767
+ - "MM DD YYYY"
3768
+ - "MM-DD-YYYY"
3769
+ - "MM.DD.YYYY"
3770
+ - "MM/DD/YYYY"
3771
+ - "M DD YYYY"
3772
+ - "M-DD-YYYY"
3773
+ - "M.DD.YYYY"
3774
+ - "M/DD/YYYY"
3775
+
3776
+ monthDayFormatEnum:
3777
+ type: string
3778
+ title: month and day format enum
3779
+ description: Format string for displaying month and day values
3780
+ without a year.
3781
+ enum:
3782
+ - "MMM D"
3783
+ - "MMM DD"
3784
+ - "D MMM"
3785
+ - "DD MMM"
3786
+ - "MM D"
3787
+ - "MM-D"
3788
+ - "MM.D"
3789
+ - "MM/D"
3790
+ - "MM DD"
3791
+ - "MM-DD"
3792
+ - "MM.DD"
3793
+ - "MM/DD"
3794
+ - "M D"
3795
+ - "M-D"
3796
+ - "M.D"
3797
+ - "M/D"
3798
+ - "M DD"
3799
+ - "M-DD"
3800
+ - "M.DD"
3801
+ - "M/DD"
3802
+ - "D MM"
3803
+ - "D-MM"
3804
+ - "D.MM"
3805
+ - "D/MM"
3806
+ - "DD MM"
3807
+ - "DD-MM"
3808
+ - "DD.MM"
3809
+ - "DD/MM"
3810
+ - "D M"
3811
+ - "D-M"
3812
+ - "D.M"
3813
+ - "D/M"
3814
+ - "DD M"
3815
+ - "DD-M"
3816
+ - "DD.M"
3817
+ - "DD/M"
3818
+
3819
+ accountSettingsObject:
3820
+ type: object
3821
+ title: account settings object
3822
+ additionalProperties: false
3823
+ description: Account-level settings for the budgeting account
3824
+ associated with the authorized API token.
3825
+ properties:
3826
+ primary_currency:
3827
+ description: Primary currency for the account.
3828
+ allOf:
3829
+ - $ref: "#/components/schemas/currencyEnum"
3830
+ supported_currencies:
3831
+ type: array
3832
+ items:
3833
+ $ref: "#/components/schemas/currencyEnum"
3834
+ description: Currencies available when creating or editing transactions,
3835
+ balances, and other amounts in the Lunch Money app.
3836
+ display_name:
3837
+ type: string
3838
+ nullable: true
3839
+ description: Display name of the budgeting account in the Lunch Money
3840
+ app.
3841
+ locale:
3842
+ type: string
3843
+ description: Locale used for formatting dates and numbers in the
3844
+ Lunch Money app (for example, `en-US`). When no locale is explicitly
3845
+ stored for the account, the effective locale is derived from the
3846
+ `default_locale` associated with `primary_currency` in the
3847
+ currencies table (for example, `usd` → `en-US`, `cad` → `en-CA`,
3848
+ `gbp` → `en-GB`).
3849
+ auto_create_category_rules:
3850
+ type: boolean
3851
+ default: true
3852
+ description: If `true`, category rules are created automatically when
3853
+ categorizing transactions.
3854
+ auto_create_suggested_transaction_rules:
3855
+ type: boolean
3856
+ default: true
3857
+ description: If `true`, suggested transaction rules are created
3858
+ automatically.
3859
+ auto_review_transaction_on_update:
3860
+ type: boolean
3861
+ default: true
3862
+ description: If `true`, transactions are marked as reviewed when
3863
+ updated.
3864
+ auto_review_transaction_on_creation:
3865
+ type: boolean
3866
+ default: true
3867
+ description: If `true`, transactions are marked as reviewed when
3868
+ created.
3869
+ required:
3870
+ - primary_currency
3871
+ - supported_currencies
3872
+ - display_name
3873
+ - locale
3874
+ - auto_create_category_rules
3875
+ - auto_create_suggested_transaction_rules
3876
+ - auto_review_transaction_on_update
3877
+ - auto_review_transaction_on_creation
3878
+
3879
+ updateAccountSettingsRequestObject:
3880
+ x-internal: true
3881
+ type: object
3882
+ additionalProperties: false
3883
+ description: Request body for updating account settings. Include at least
3884
+ one property to update.
3885
+ properties:
3886
+ primary_currency:
3887
+ allOf:
3888
+ - $ref: "#/components/schemas/currencyEnum"
3889
+ description: If set, updates the account's primary currency.
3890
+ x-updatable: true
3891
+ supported_currencies:
3892
+ type: array
3893
+ items:
3894
+ $ref: "#/components/schemas/currencyEnum"
3895
+ description: If set, replaces the list of supported currencies for the
3896
+ account.
3897
+ x-updatable: true
3898
+ display_name:
3899
+ type: string
3900
+ nullable: true
3901
+ description: If set, updates the display name of the budgeting account.
3902
+ x-updatable: true
3903
+ locale:
3904
+ type: string
3905
+ description: If set, updates the locale used for formatting dates and
3906
+ numbers in the Lunch Money app.
3907
+ x-updatable: true
3908
+ auto_create_category_rules:
3909
+ type: boolean
3910
+ description: If set, updates whether category rules are created
3911
+ automatically.
3912
+ x-updatable: true
3913
+ auto_create_suggested_transaction_rules:
3914
+ type: boolean
3915
+ description: If set, updates whether suggested transaction rules are
3916
+ created automatically.
3917
+ x-updatable: true
3918
+ auto_review_transaction_on_update:
3919
+ type: boolean
3920
+ description: If set, updates whether transactions are marked as reviewed
3921
+ when updated.
3922
+ x-updatable: true
3923
+ auto_review_transaction_on_creation:
3924
+ type: boolean
3925
+ description: If set, updates whether transactions are marked as reviewed
3926
+ when created.
3927
+ x-updatable: true
3928
+
3929
+ userSettingsObject:
3930
+ type: object
3931
+ title: user settings object
3932
+ additionalProperties: false
3933
+ description: User-level display and formatting preferences for the user
3934
+ associated with the authorized API token.
3935
+ properties:
3936
+ show_debits_as_negative:
3937
+ type: boolean
3938
+ default: true
3939
+ description: Display preference for how amounts are shown in the Lunch
3940
+ Money app. When `true`, debits are shown as negative values and
3941
+ credits as positive values.<p> This setting does **not** change
3942
+ amount sign conventions in API responses. Amount fields such as
3943
+ `amount` and `to_base` on transaction objects always use positive
3944
+ values for debits and negative values for credits.
3945
+ auto_suggest_payee:
3946
+ type: boolean
3947
+ default: true
3948
+ description: If `true`, payee suggestions are shown when entering
3949
+ transactions in the Lunch Money app.
3950
+ month_year_format:
3951
+ allOf:
3952
+ - $ref: "#/components/schemas/monthYearFormatEnum"
3953
+ default: "MMM YYYY"
3954
+ description: Format string used when displaying month and year values.
3955
+ month_day_year_format:
3956
+ allOf:
3957
+ - $ref: "#/components/schemas/monthDayYearFormatEnum"
3958
+ default: "MMM D, YYYY"
3959
+ description: Format string used when displaying full dates (month, day,
3960
+ and year).
3961
+ month_day_format:
3962
+ allOf:
3963
+ - $ref: "#/components/schemas/monthDayFormatEnum"
3964
+ default: "MMM D"
3965
+ description: Format string used when displaying month and day values
3966
+ without a year.
3967
+ show_am_pm:
3968
+ type: boolean
3969
+ default: true
3970
+ description: If `true`, times are displayed using a 12-hour clock with
3971
+ AM/PM. If `false`, times are displayed using a 24-hour clock.
3972
+ week_starts_on:
3973
+ allOf:
3974
+ - $ref: "#/components/schemas/weekStartsOnEnum"
3975
+ default: sunday
3976
+ description: The day on which a calendar week begins.
3977
+ always_display_year:
3978
+ type: boolean
3979
+ default: false
3980
+ description: If `true`, dates always include the year and
3981
+ `month_day_format` is not used.
3982
+ always_display_weekday:
3983
+ type: boolean
3984
+ default: true
3985
+ description: If `true`, weekday names are included when displaying
3986
+ dates.
3987
+ required:
3988
+ - show_debits_as_negative
3989
+ - auto_suggest_payee
3990
+ - month_year_format
3991
+ - month_day_year_format
3992
+ - month_day_format
3993
+ - show_am_pm
3994
+ - week_starts_on
3995
+ - always_display_year
3996
+ - always_display_weekday
3997
+
3998
+ updateUserSettingsRequestObject:
3999
+ x-internal: true
4000
+ type: object
4001
+ additionalProperties: false
4002
+ description: Request body for updating user settings. Include at least one
4003
+ property to update.
4004
+ properties:
4005
+ show_debits_as_negative:
4006
+ type: boolean
4007
+ description: If set, updates the display preference for amount signs in
4008
+ the Lunch Money app. Does not affect amount sign conventions in API
4009
+ responses.
4010
+ x-updatable: true
4011
+ auto_suggest_payee:
4012
+ type: boolean
4013
+ description: If set, updates whether payee suggestions are shown.
4014
+ x-updatable: true
4015
+ month_year_format:
4016
+ allOf:
4017
+ - $ref: "#/components/schemas/monthYearFormatEnum"
4018
+ description: If set, updates the month and year display format.
4019
+ x-updatable: true
4020
+ month_day_year_format:
4021
+ allOf:
4022
+ - $ref: "#/components/schemas/monthDayYearFormatEnum"
4023
+ description: If set, updates the full date display format.
4024
+ x-updatable: true
4025
+ month_day_format:
4026
+ allOf:
4027
+ - $ref: "#/components/schemas/monthDayFormatEnum"
4028
+ description: If set, updates the month and day display format.
4029
+ x-updatable: true
4030
+ show_am_pm:
4031
+ type: boolean
4032
+ description: If set, updates whether times use a 12-hour (AM/PM) or
4033
+ 24-hour clock.
4034
+ x-updatable: true
4035
+ week_starts_on:
4036
+ allOf:
4037
+ - $ref: "#/components/schemas/weekStartsOnEnum"
4038
+ description: If set, updates the day on which a calendar week begins.
4039
+ x-updatable: true
4040
+ always_display_year:
4041
+ type: boolean
4042
+ description: If set, updates whether dates always include the year.
4043
+ x-updatable: true
4044
+ always_display_weekday:
4045
+ type: boolean
4046
+ description: If set, updates whether weekday names are shown when
4047
+ displaying dates.
4048
+ x-updatable: true
4049
+
3672
4050
  # Summary endpoint response schemas
3673
4051
  summaryResponseObject:
3674
4052
  type: object
@@ -4467,8 +4845,13 @@ paths:
4467
4845
  tags:
4468
4846
  - me
4469
4847
  summary: Get current user
4470
- description: Get details about the user associated with the supplied
4471
- authorization token.
4848
+ description: |-
4849
+ Get details about the user associated with the supplied authorization
4850
+ token.<p> For account- and user-level preferences, prefer
4851
+ [/me/account/settings](#tag/me/GET/me/account/settings) and
4852
+ [/me/user/settings](#tag/me/GET/me/user/settings). Properties such as
4853
+ `primary_currency` and `budget_name` remain on this response for
4854
+ backwards compatibility.
4472
4855
  operationId: getMe
4473
4856
  parameters: []
4474
4857
  responses:
@@ -4492,6 +4875,165 @@ paths:
4492
4875
  $ref: "#/components/responses/rateLimited"
4493
4876
  "500":
4494
4877
  $ref: "#/components/responses/serverError"
4878
+ /me/account/settings:
4879
+ get:
4880
+ tags:
4881
+ - me
4882
+ summary: Get account settings
4883
+ description: Returns account-level settings for the budgeting
4884
+ account associated with the authorized API token.
4885
+ operationId: getAccountSettings
4886
+ responses:
4887
+ "200":
4888
+ description: Account settings for the current budgeting account
4889
+ content:
4890
+ application/json:
4891
+ schema:
4892
+ $ref: "#/components/schemas/accountSettingsObject"
4893
+ example:
4894
+ primary_currency: usd
4895
+ supported_currencies:
4896
+ - usd
4897
+ - cad
4898
+ - jpy
4899
+ display_name: "\U0001F3E0 Family budget"
4900
+ locale: en-US
4901
+ auto_create_category_rules: true
4902
+ auto_create_suggested_transaction_rules: true
4903
+ auto_review_transaction_on_update: true
4904
+ auto_review_transaction_on_creation: true
4905
+ "401":
4906
+ $ref: "#/components/responses/unauthorizedToken"
4907
+ "429":
4908
+ $ref: "#/components/responses/rateLimited"
4909
+ "500":
4910
+ $ref: "#/components/responses/serverError"
4911
+ put:
4912
+ tags:
4913
+ - me
4914
+ summary: Update account settings
4915
+ description: |-
4916
+ Updates account-level settings for the budgeting account
4917
+ associated with the authorized API token.<p> You may submit the response from a
4918
+ `GET /me/account/settings` as the request body; however, only certain
4919
+ properties can be updated.<p> It is also possible to provide only the
4920
+ properties to be updated in the request body, as long as the request
4921
+ includes at least one updatable property.
4922
+ operationId: updateAccountSettings
4923
+ requestBody:
4924
+ required: true
4925
+ content:
4926
+ application/json:
4927
+ schema:
4928
+ $ref: "#/components/schemas/updateAccountSettingsRequestObject"
4929
+ examples:
4930
+ Update display name:
4931
+ value:
4932
+ display_name: "Travel budget"
4933
+ Update automation preferences:
4934
+ value:
4935
+ auto_create_category_rules: false
4936
+ auto_review_transaction_on_creation: false
4937
+ responses:
4938
+ "200":
4939
+ description: Account settings updated successfully
4940
+ content:
4941
+ application/json:
4942
+ schema:
4943
+ $ref: "#/components/schemas/accountSettingsObject"
4944
+ "400":
4945
+ description: Invalid request body
4946
+ content:
4947
+ application/json:
4948
+ schema:
4949
+ $ref: "#/components/schemas/errorResponseObject"
4950
+ "401":
4951
+ $ref: "#/components/responses/unauthorizedToken"
4952
+ "429":
4953
+ $ref: "#/components/responses/rateLimited"
4954
+ "500":
4955
+ $ref: "#/components/responses/serverError"
4956
+ /me/user/settings:
4957
+ get:
4958
+ tags:
4959
+ - me
4960
+ summary: Get user settings
4961
+ description: Returns user-level display and formatting preferences for the
4962
+ user associated with the authorized API token.
4963
+ operationId: getUserSettings
4964
+ responses:
4965
+ "200":
4966
+ description: User settings for the authorized user
4967
+ content:
4968
+ application/json:
4969
+ schema:
4970
+ $ref: "#/components/schemas/userSettingsObject"
4971
+ example:
4972
+ show_debits_as_negative: true
4973
+ auto_suggest_payee: true
4974
+ month_year_format: "MMM YYYY"
4975
+ month_day_year_format: "MMM D, YYYY"
4976
+ month_day_format: "MMM D"
4977
+ show_am_pm: true
4978
+ week_starts_on: sunday
4979
+ always_display_year: false
4980
+ always_display_weekday: true
4981
+ "401":
4982
+ $ref: "#/components/responses/unauthorizedToken"
4983
+ "429":
4984
+ $ref: "#/components/responses/rateLimited"
4985
+ "500":
4986
+ $ref: "#/components/responses/serverError"
4987
+ put:
4988
+ tags:
4989
+ - me
4990
+ summary: Update user settings
4991
+ description: |-
4992
+ Updates user-level display and formatting preferences for the user
4993
+ associated with the authorized API token.<p> You may submit the response
4994
+ from a `GET /me/user/settings` as the request body; however, only
4995
+ certain properties can be updated.<p> It is also possible to provide
4996
+ only the properties to be updated in the request body, as long as the
4997
+ request includes at least one updatable property.<p> Updating
4998
+ `show_debits_as_negative` affects display in the Lunch Money app only.
4999
+ Amount fields in API responses always use positive values for debits and
5000
+ negative values for credits.
5001
+ operationId: updateUserSettings
5002
+ requestBody:
5003
+ required: true
5004
+ content:
5005
+ application/json:
5006
+ schema:
5007
+ $ref: "#/components/schemas/updateUserSettingsRequestObject"
5008
+ examples:
5009
+ Update date formats:
5010
+ value:
5011
+ month_year_format: "YYYY-MM"
5012
+ month_day_year_format: "YYYY-MM-DD"
5013
+ month_day_format: "MM-DD"
5014
+ Use 24-hour time and Monday week start:
5015
+ value:
5016
+ show_am_pm: false
5017
+ week_starts_on: monday
5018
+ responses:
5019
+ "200":
5020
+ description: User settings updated successfully
5021
+ content:
5022
+ application/json:
5023
+ schema:
5024
+ $ref: "#/components/schemas/userSettingsObject"
5025
+ "400":
5026
+ description: Invalid request body
5027
+ content:
5028
+ application/json:
5029
+ schema:
5030
+ $ref: "#/components/schemas/errorResponseObject"
5031
+ "401":
5032
+ $ref: "#/components/responses/unauthorizedToken"
5033
+ "429":
5034
+ $ref: "#/components/responses/rateLimited"
5035
+ "500":
5036
+ $ref: "#/components/responses/serverError"
4495
5037
  /summary:
4496
5038
  get:
4497
5039
  tags:
@@ -8561,19 +9103,19 @@ paths:
8561
9103
  description: Sets the maximum number of transactions to return. If
8562
9104
  more match the filter criteria, the response will include a
8563
9105
  `has_more` attribute set to `true`. See
8564
- [Pagination](https://lunchmoney.dev/v2/pagination)
9106
+ [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
8565
9107
  - name: offset
8566
9108
  in: query
8567
9109
  schema:
8568
9110
  type: integer
8569
9111
  description: Sets the offset for the records returned. This is
8570
9112
  typically set automatically in the header. See
8571
- [Pagination](https://lunchmoney.dev/v2/pagination)
9113
+ [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
8572
9114
  responses:
8573
9115
  "200":
8574
9116
  description: Returns an array of transactions. <br><br>The `has_more`
8575
9117
  property is set to `true` if more transactions are available. See
8576
- [Pagination](https://lunchmoney.dev/v2/pagination)
9118
+ [Pagination](https://lm-v2-api-next-a7fabcab8e9a.herokuapp.com/v2/pagination)
8577
9119
  content:
8578
9120
  application/json:
8579
9121
  schema:
@@ -11620,7 +12162,9 @@ paths:
11620
12162
  description: |-
11621
12163
  Returns budget period and display settings for the budget
11622
12164
  associated with this API token.<p> These control how budget **periods** are calculated
11623
- (granularity, anchor date, rollover, and related options).
12165
+ (granularity, anchor date, rollover, and related options). For general
12166
+ budget preferences such as currency and locale, see
12167
+ [/me/account/settings](#tag/me/GET/me/account/settings).
11624
12168
  operationId: getBudgetSettings
11625
12169
  responses:
11626
12170
  "200":
package/manifest.json DELETED
@@ -1,225 +0,0 @@
1
- {
2
- "$comment": "Doc routing manifest (plans/remove_submodule.md, Phase 2). Pages, redirects, and sidebar for all documentation routes. 'file' paths are relative to the @lunch-money/developer-docs package root. Page 'aliases' are 301 redirects to the page path; 'redirects' entries carry their own status.",
3
- "pages": [
4
- {
5
- "path": "/introduction",
6
- "file": "docs/introduction.md",
7
- "title": "Introduction",
8
- "section": "INTRODUCTION",
9
- "type": "markdown",
10
- "aliases": ["/v2/introduction"]
11
- },
12
- {
13
- "path": "/getting-started",
14
- "file": "docs/getting-started.md",
15
- "title": "Getting Started",
16
- "section": "GUIDES",
17
- "type": "markdown",
18
- "aliases": ["/v2/getting-started"]
19
- },
20
- {
21
- "path": "/pagination",
22
- "file": "docs/pagination.md",
23
- "title": "Pagination",
24
- "section": "GUIDES",
25
- "type": "markdown",
26
- "aliases": ["/v2/pagination"]
27
- },
28
- {
29
- "path": "/rate-limits",
30
- "file": "docs/rate-limiting.md",
31
- "title": "Rate Limiting",
32
- "section": "GUIDES",
33
- "type": "markdown",
34
- "aliases": ["/v2/rate-limits"]
35
- },
36
- {
37
- "path": "/currencies",
38
- "file": "docs/currencies.md",
39
- "title": "Supported Currencies",
40
- "section": "GUIDES",
41
- "type": "markdown",
42
- "aliases": ["/v2/currencies"]
43
- },
44
- {
45
- "path": "/amounts-and-balances",
46
- "file": "docs/amounts-and-balances.md",
47
- "title": "Amounts & Balances",
48
- "section": "GUIDES",
49
- "type": "markdown",
50
- "aliases": ["/v2/amounts-and-balances"]
51
- },
52
- {
53
- "path": "/using-with-ai",
54
- "file": "docs/using-with-ai.md",
55
- "title": "Using the API with AI",
56
- "section": "GUIDES",
57
- "type": "markdown",
58
- "aliases": ["/v2/using-with-ai"]
59
- },
60
- {
61
- "path": "/v2/overview",
62
- "file": "v2/docs/intro-to-v2.md",
63
- "title": "v2 API Overview",
64
- "section": "REFERENCE",
65
- "type": "markdown"
66
- },
67
- {
68
- "path": "/v2/changelog",
69
- "file": "v2/docs/version-history.md",
70
- "title": "v2 API Changelog",
71
- "section": "REFERENCE",
72
- "type": "markdown",
73
- "aliases": ["/v2/version-history"]
74
- },
75
- {
76
- "path": "/v2/migration-guide",
77
- "file": "v2/docs/migration-guide.md",
78
- "title": "Migrating v1 to v2",
79
- "section": "LEGACY APIs",
80
- "type": "markdown"
81
- },
82
- {
83
- "path": "/v2/changelog-visual",
84
- "file": "v2/docs/changelog-visual.html",
85
- "title": "v2 API Visual Changelog",
86
- "section": "REFERENCE",
87
- "type": "html"
88
- },
89
- {
90
- "path": "/v1/changelog",
91
- "file": "v1/_changelog.md",
92
- "title": "v1 Changelog",
93
- "section": "V1 API REFERENCE",
94
- "type": "v1-slate",
95
- "aliases": ["/v1/reference/changelog"]
96
- },
97
- {
98
- "path": "/v1/user",
99
- "file": "v1/_user.md",
100
- "title": "v1 User",
101
- "section": "V1 API REFERENCE",
102
- "type": "v1-slate",
103
- "aliases": ["/v1/reference/user"]
104
- },
105
- {
106
- "path": "/v1/categories",
107
- "file": "v1/_categories.md",
108
- "title": "v1 Categories",
109
- "section": "V1 API REFERENCE",
110
- "type": "v1-slate",
111
- "aliases": ["/v1/reference/categories"]
112
- },
113
- {
114
- "path": "/v1/tags",
115
- "file": "v1/_tags.md",
116
- "title": "v1 Tags",
117
- "section": "V1 API REFERENCE",
118
- "type": "v1-slate",
119
- "aliases": ["/v1/reference/tags"]
120
- },
121
- {
122
- "path": "/v1/transactions",
123
- "file": "v1/_transactions.md",
124
- "title": "v1 Transactions",
125
- "section": "V1 API REFERENCE",
126
- "type": "v1-slate",
127
- "aliases": ["/v1/reference/transactions"]
128
- },
129
- {
130
- "path": "/v1/recurring-expenses",
131
- "file": "v1/_recurring_expenses.md",
132
- "title": "v1 Recurring Expenses",
133
- "section": "V1 API REFERENCE",
134
- "type": "v1-slate",
135
- "aliases": ["/v1/reference/recurring-expenses"]
136
- },
137
- {
138
- "path": "/v1/recurring-items",
139
- "file": "v1/_recurring_items.md",
140
- "title": "v1 Recurring Items",
141
- "section": "V1 API REFERENCE",
142
- "type": "v1-slate",
143
- "aliases": ["/v1/reference/recurring-items"]
144
- },
145
- {
146
- "path": "/v1/budget",
147
- "file": "v1/_budget.md",
148
- "title": "v1 Budget",
149
- "section": "V1 API REFERENCE",
150
- "type": "v1-slate",
151
- "aliases": ["/v1/reference/budget"]
152
- },
153
- {
154
- "path": "/v1/assets",
155
- "file": "v1/_assets.md",
156
- "title": "v1 Assets",
157
- "section": "V1 API REFERENCE",
158
- "type": "v1-slate",
159
- "aliases": ["/v1/reference/assets"]
160
- },
161
- {
162
- "path": "/v1/plaid-accounts",
163
- "file": "v1/_plaid_accounts.md",
164
- "title": "v1 Plaid Accounts",
165
- "section": "V1 API REFERENCE",
166
- "type": "v1-slate",
167
- "aliases": ["/v1/reference/plaid-accounts"]
168
- },
169
- {
170
- "path": "/v1/crypto",
171
- "file": "v1/_crypto.md",
172
- "title": "v1 Crypto",
173
- "section": "V1 API REFERENCE",
174
- "type": "v1-slate",
175
- "aliases": ["/v1/reference/crypto"]
176
- }
177
- ],
178
- "redirects": [
179
- { "from": "/", "to": "/introduction", "status": 302 },
180
- { "from": "/v2", "to": "/introduction", "status": 302 },
181
- { "from": "/v2/", "to": "/introduction", "status": 302 },
182
- { "from": "/v1", "to": "/v1/user", "status": 302 },
183
- { "from": "/v1/docs", "to": "/v1/user", "status": 301 }
184
- ],
185
- "sidebar": {
186
- "docs": [
187
- { "label": "Introduction", "path": "/introduction" },
188
- { "section": "GUIDES", "items": [
189
- { "label": "Getting Started", "path": "/getting-started" },
190
- { "label": "Amounts & Balances", "path": "/amounts-and-balances" },
191
- { "label": "Pagination", "path": "/pagination" },
192
- { "label": "Rate Limiting", "path": "/rate-limits" },
193
- { "label": "Supported Currencies", "path": "/currencies" },
194
- { "label": "Using the API with AI", "path": "/using-with-ai" }
195
- ]},
196
- { "section": "REFERENCE", "items": [
197
- { "label": "v2 API Overview", "path": "/v2/overview" },
198
- { "label": "v2 API Reference", "path": "/v2/docs", "external": true },
199
- { "label": "v2 API Changelog", "path": "/v2/changelog" }
200
- ]},
201
- { "section": "LEGACY APIs", "items": [
202
- { "label": "Migrating v1 → v2", "path": "/v2/migration-guide" },
203
- { "label": "v1 API Reference", "path": "/v1/user", "external": true },
204
- { "label": "v1 API Changelog", "path": "/v1/changelog" },
205
- { "label": "Legacy v1 docs", "path": "https://v1.lunchmoney.dev/", "external": true }
206
- ]}
207
- ],
208
- "v1": [
209
- { "section": "V1 API REFERENCE", "items": [
210
- { "label": "User", "path": "/v1/user" },
211
- { "label": "Categories", "path": "/v1/categories" },
212
- { "label": "Tags", "path": "/v1/tags" },
213
- { "label": "Transactions", "path": "/v1/transactions" },
214
- { "label": "Recurring Expenses", "path": "/v1/recurring-expenses" },
215
- { "label": "Recurring Items", "path": "/v1/recurring-items" },
216
- { "label": "Budget", "path": "/v1/budget" },
217
- { "label": "Assets", "path": "/v1/assets" },
218
- { "label": "Plaid Accounts", "path": "/v1/plaid-accounts" },
219
- { "label": "Crypto", "path": "/v1/crypto" }
220
- ]},
221
- { "label": "v1 API Changelog", "path": "/v1/changelog" },
222
- { "label": "Legacy v1 docs", "path": "https://v1.lunchmoney.dev/", "external": true }
223
- ]
224
- }
225
- }