### API Overview: Lunch Money API - v2 Source: https://alpha.lunchmoney.dev/v2/openapi Welcome to the Lunch Money v2 API. 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). ### Introduction The v2 API is in open alpha and is still subject to change. Use the mock server or a test budget when getting started. **Static Mock Server** Explore the API without an access token or risk to real data. Select **"Static Mock v2 Lunch Money API Server"** from the Server dropdown, then set your Bearer token to any string with 11 or more characters. **Migrating from v1** The v2 API is not backwards compatible with v1. See the [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide) for details. **Useful links** - [Developer Portal](https://lunchmoney.dev/v2/introduction) - [Getting Started Guide](https://lunchmoney.dev/v2/getting-started) - [v2 API Overview](https://lunchmoney.dev/v2/overview) - [v2 API Changelog](https://lunchmoney.dev/v2/changelog) - [Migration Guide](https://lunchmoney.dev/v2/migration-guide) - [Rate Limits](https://lunchmoney.dev/v2/rate-limits) ```yaml # Lunch Money API - v2 # Version: 2.9.4 Welcome to the Lunch Money v2 API. 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). ### Introduction The v2 API is in open alpha and is still subject to change. Use the mock server or a test budget when getting started. **Static Mock Server** Explore the API without an access token or risk to real data. Select **"Static Mock v2 Lunch Money API Server"** from the Server dropdown, then set your Bearer token to any string with 11 or more characters. **Migrating from v1** The v2 API is not backwards compatible with v1. See the [Migration Guide](https://alpha.lunchmoney.dev/v2/migration-guide) for details. **Useful links** - [Developer Portal](https://lunchmoney.dev/v2/introduction) - [Getting Started Guide](https://lunchmoney.dev/v2/getting-started) - [v2 API Overview](https://lunchmoney.dev/v2/overview) - [v2 API Changelog](https://lunchmoney.dev/v2/changelog) - [Migration Guide](https://lunchmoney.dev/v2/migration-guide) - [Rate Limits](https://lunchmoney.dev/v2/rate-limits) # Base URL: https://api.lunchmoney.dev/v2 ``` -------------------------------- ### GET /budgets/settings Source: https://alpha.lunchmoney.dev/v2/openapi Returns the budget-related settings for the user's account. ```markdown ### Responses #### 200 - Budget settings for the account **budgetSettingsResponseObject** - **budget_period_granularity** (string (day|week|month|year|twice a month)) (required): Budget period granularity ("day"|"week"|"month"|"year"|"twice a month") - **budget_period_quantity** (number (double)) (required): The number of `granularity` units that make up a single budgeting period. - **budget_period_anchor_date** (string (date)) (required): The date from which the budgeting period is calculated. All future (and past) periods are derived by applying `quantity` × `granularity` forward and backward from this date. - **budget_hide_no_activity** (boolean) (required): The display preference for hiding categories in budget view that have no activity and no budgeted value - **budget_use_last_day_of_month** (boolean) (required): The display preference for using the last day of the month as the period end for monthly periods - **budget_income_option** (string (max|budgeted|activity)) (required): Determines which income value is used as the base when calculating available funds for a budgeting period ("max"|"budgeted"|"activity") - **budget_rollover_left_to_budget** (boolean) (required): Determines whether the remaining unallocated funds (“Left to Budget”) at the end of a budgeting period are carried forward to the next period #### 401 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 429 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 500 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. ### Example Usage ```bash curl -X GET "https://api.lunchmoney.dev/v2/budgets/settings" ``` ``` -------------------------------- ### PUT /budgets Source: https://alpha.lunchmoney.dev/v2/openapi Create or update a budget for a category and period.

If a budget already exists for the specified `start_date` and `category_id`, the `amount` (and optional `currency` and `notes`) are updated; otherwise a new budget entry is created.

Note that `start_date` **must** be a valid budget period start for the account (based on the account's budget period settings). If an invalid `start_date` is provided, the request will fail with an error that indicates what the previous and next valid start dates are.

Use the [budgets/settings](#tag/budgets/GET/budgets/settings) endpoint to view the account's budget settings.
To view existing budgets details use the [summary](#tag/summary) endpoint. ```markdown ### Request Body **Content-Type:** application/json - **start_date** (string (date)) (required): Start date of the budget period in ISO 8601 date format (YYYY-MM-DD). Must be a valid budget period start for the account. - **category_id** (integer (int32)) (required): Category ID for the budget - **amount** (number (double)) (required) - **currency** (string (aed|afn|all|amd|ang|aoa|ars|aud|awg|azn|bam|bbd|bdt|bgn|bhd|bif|bmd|bnd|bob|brl|bsd|btc|btn|bwp|byn|bzd|cad|cdf|chf|clf|clp|cny|cop|crc|cuc|cup|cve|czk|djf|dkk|dop|dzd|egp|ern|etb|eth|eur|fjd|fkp|gbp|gel|ggp|ghs|gip|gmd|gnf|gtq|gyd|hkd|hnl|hrk|htg|huf|idr|ils|imp|inr|iqd|irr|isk|jep|jmd|jod|jpy|kes|kgs|khr|kmf|kpw|krw|kwd|kyd|kzt|lak|lbp|lkr|lrd|lsl|ltl|lvl|lyd|mad|mdl|mga|mkd|mmk|mnt|mop|mro|mur|mvr|mwk|mxn|myr|mzn|nad|ngn|nio|nok|npr|nzd|omr|pab|pen|pgk|php|pkr|pln|pyg|qar|ron|rsd|rub|rwf|sar|sbd|scr|sdg|sek|sgd|shp|sll|sos|srd|std|svc|syp|szl|thb|tjs|tmt|tnd|top|try|ttd|twd|tzs|uah|ugx|usd|uyu|uzs|vef|ves|vnd|vuv|wst|xaf|xag|xau|xcd|xof|xpf|yer|zar|zmw|zwl)) ("aed"|"afn"|"all"|"amd"|"ang"|"aoa"|"ars"|"aud"|"awg"|"azn"|"bam"|"bbd"|"bdt"|"bgn"|"bhd"|"bif"|"bmd"|"bnd"|"bob"|"brl"|"bsd"|"btc"|"btn"|"bwp"|"byn"|"bzd"|"cad"|"cdf"|"chf"|"clf"|"clp"|"cny"|"cop"|"crc"|"cuc"|"cup"|"cve"|"czk"|"djf"|"dkk"|"dop"|"dzd"|"egp"|"ern"|"etb"|"eth"|"eur"|"fjd"|"fkp"|"gbp"|"gel"|"ggp"|"ghs"|"gip"|"gmd"|"gnf"|"gtq"|"gyd"|"hkd"|"hnl"|"hrk"|"htg"|"huf"|"idr"|"ils"|"imp"|"inr"|"iqd"|"irr"|"isk"|"jep"|"jmd"|"jod"|"jpy"|"kes"|"kgs"|"khr"|"kmf"|"kpw"|"krw"|"kwd"|"kyd"|"kzt"|"lak"|"lbp"|"lkr"|"lrd"|"lsl"|"ltl"|"lvl"|"lyd"|"mad"|"mdl"|"mga"|"mkd"|"mmk"|"mnt"|"mop"|"mro"|"mur"|"mvr"|"mwk"|"mxn"|"myr"|"mzn"|"nad"|"ngn"|"nio"|"nok"|"npr"|"nzd"|"omr"|"pab"|"pen"|"pgk"|"php"|"pkr"|"pln"|"pyg"|"qar"|"ron"|"rsd"|"rub"|"rwf"|"sar"|"sbd"|"scr"|"sdg"|"sek"|"sgd"|"shp"|"sll"|"sos"|"srd"|"std"|"svc"|"syp"|"szl"|"thb"|"tjs"|"tmt"|"tnd"|"top"|"try"|"ttd"|"twd"|"tzs"|"uah"|"ugx"|"usd"|"uyu"|"uzs"|"vef"|"ves"|"vnd"|"vuv"|"wst"|"xaf"|"xag"|"xau"|"xcd"|"xof"|"xpf"|"yer"|"zar"|"zmw"|"zwl") - **notes** (string): Optional notes for the budget period ### Responses #### 200 - Budget upserted successfully **budgetUpsertResponseObject** - **category_id** (integer (int32)): Category ID - **start_date** (string (date)): Start date of the budget period - **amount** (string): Budget amount in the stored currency (string for consistency with other amount fields in the API) - **currency** (string): Currency code for the budget - **to_base** (number (float)): Amount converted to the user's primary currency - **notes** (string): Notes for the budget period #### 400 - Bad Request (invalid period start, invalid category, or validation failure) - **message** (string) (required): Overall error message (e.g. Invalid Request) - **requested_start_date** (string (date)) (required): The start_date value that was rejected - **previous_valid_start_date** (string (date)): The previous valid budget period start date before the requested date - **next_valid_start_date** (string (date)): The next valid budget period start date after the requested date - **errMsg** (string) (required): Human-readable error message #### 401 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 429 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 500 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. ### Example Usage ```bash curl -X PUT "https://api.lunchmoney.dev/v2/budgets" \ -H "Content-Type: application/json" \ -d '{ "start_date": "2023-01-01", "category_id": "0", "amount": "value", "currency": "value", "notes": "string" }' ``` ``` -------------------------------- ### GET /recurring_items Source: https://alpha.lunchmoney.dev/v2/openapi Get info about the recurring items for a specified time frame ```markdown ### Parameters - **start_date** (string (date), query, optional): Denotes the beginning of the range used to populate the `matching` object in the recurring items. If omitted, the current month will be used as the range.
Required if end_date exists. - **end_date** (string (date), query, optional): Denotes the end of the range used to populate the `matching` object in the recurring items. Required if start_date exists. - **include_suggested** (boolean, query, optional) ### Responses #### 200 - A list of recurring items - **recurring_items** (array (recurringObject)) Array items: - **id** (integer (int32)) (required): The unique identifier of this recurring item - **description** (string) (required): An optional description of this recurring item. - **status** (string (suggested|reviewed)) (required): The status of this recurring item. `suggested` recurring items are generated by Lunch Money, but only `reviewed` recurring items will be applied to matching transactions. ("suggested"|"reviewed") - **transaction_criteria** (object) (required): The set of properties used to identify matching transactions. - **start_date** (string (date)) (required): The beginning of the date range for matching transactions. If `null`, any transactions before end_date may be considered. - **end_date** (string (date)) (required): The end of the date range for matching transactions. If `null`, any transactions after start_date may be considered. - **granularity** (string (day|week|month|year)) (required): The unit of time used to define the cadence of the recurring item. ("day"|"week"|"month"|"year") - **quantity** (integer) (required): The number of granularity units between each recurrence. - **anchor_date** (string (date)) (required): The date used in conjunction with the `quantity` and `granularity` properties to calculate expected occurrences of recurring transactions. - **payee** (string) (required): If set, represents the original transaction payee name that triggered this recurring item's creation. - **amount** (string) (required): The expected amount for a transaction that will match this recurring item. For recurring items that have a flexible amount this is the average of the specified min and max amounts. - **to_base** (number) (required): The amount converted to the user's primary currency - **currency** (string) (required): Three-letter lowercase currency code of the recurring item. - **plaid_account_id** (integer (int64)) (required): The Plaid account ID associated with the recurring item, if any. - **manual_account_id** (integer (int64)) (required): The manual account ID associated with the recurring item, if any. - **overrides** (object) (required): The values that will be applied to matching transactions. - **payee** (string): If present, the payee name that will be displayed for any matching transactions. - **notes** (string): If present, the notes that will be displayed for any matching transactions. - **category_id** (integer): If present, the ID of the category that matching transactions will be assigned to. - **matches** (object) (required): Details on expected, found and missing transactions for the specified range. This will be `null` for recurring items with a `status` of `suggested`. - **request_start_date** (string (date)): The beginning of the date range that this request used to find matching transactions. - **request_end_date** (string (date)): The beginning of the date range that this request used to find matching transactions. - **expected_occurrence_dates** (array (string (date))): A list of dates within the specified range where a recurring transactions is expected. - **found_transactions** (array (object)): A list with the dates and IDs of matching transactions. Array items: - **date** (string (date)): The date for a matching transaction within the specified range. - **transaction_id** (integer): The ID of a matching transaction within the specified range. - **missing_transaction_dates** (array (string (date))): A list of dates within the range of where a recurring transaction was expected but none was found. - **created_by** (integer) (required): The ID of the user who created the recurring item. - **created_at** (string (date-time)) (required): Date/time the recurring item was created in ISO 8601 extended format. - **updated_at** (string (date-time)) (required): Date/time the recurring item was updated in ISO 8601 extended format. - **source** (string (manual|transaction|system)) (required): This can be one of four values: - `manual`: User created this recurring item manually from the Recurring Items page - `transaction`: User created this by converting a transaction from the Transactions page - `system`: Recurring item was created by the system on transaction import - `null`: Some older recurring items may not have a source. ("manual"|"transaction"|"system") #### 400 - Bad Request **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 401 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 404 - Not Found **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 429 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 500 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. ### Example Usage ```bash curl -X GET "https://api.lunchmoney.dev/v2/recurring_items?start_date=2023-01-01&end_date=2023-01-01&include_suggested=true" ``` ``` -------------------------------- ### POST /manual_accounts Source: https://alpha.lunchmoney.dev/v2/openapi Create a new manually-managed account. ```markdown ### Request Body **Content-Type:** application/json - **name** (string) (required): Name of the manual account (example: "My Savings Account") - **institution_name** (string): Name of institution holding the manual account (example: "Bank of the West") - **display_name** (string): Display name of the manual account as set by user or derived from the `institution_name` and `name` if not explicitly set.
This must be unique for the budgeting account. (example: "Savings") - **type** (string (cash|credit|cryptocurrency|employee compensation|investment|loan|other liability|other asset|real estate|vehicle)) (required) ("cash"|"credit"|"cryptocurrency"|"employee compensation"|"investment"|"loan"|"other liability"|"other asset"|"real estate"|"vehicle") - **subtype** (string): An optional manual account subtype. Examples include
- retirement - checking - savings - prepaid credit card (example: "prepaid credit card") - **balance** (number (double)) (required) - **balance_as_of** (unknown) - **currency** (string (aed|afn|all|amd|ang|aoa|ars|aud|awg|azn|bam|bbd|bdt|bgn|bhd|bif|bmd|bnd|bob|brl|bsd|btc|btn|bwp|byn|bzd|cad|cdf|chf|clf|clp|cny|cop|crc|cuc|cup|cve|czk|djf|dkk|dop|dzd|egp|ern|etb|eth|eur|fjd|fkp|gbp|gel|ggp|ghs|gip|gmd|gnf|gtq|gyd|hkd|hnl|hrk|htg|huf|idr|ils|imp|inr|iqd|irr|isk|jep|jmd|jod|jpy|kes|kgs|khr|kmf|kpw|krw|kwd|kyd|kzt|lak|lbp|lkr|lrd|lsl|ltl|lvl|lyd|mad|mdl|mga|mkd|mmk|mnt|mop|mro|mur|mvr|mwk|mxn|myr|mzn|nad|ngn|nio|nok|npr|nzd|omr|pab|pen|pgk|php|pkr|pln|pyg|qar|ron|rsd|rub|rwf|sar|sbd|scr|sdg|sek|sgd|shp|sll|sos|srd|std|svc|syp|szl|thb|tjs|tmt|tnd|top|try|ttd|twd|tzs|uah|ugx|usd|uyu|uzs|vef|ves|vnd|vuv|wst|xaf|xag|xau|xcd|xof|xpf|yer|zar|zmw|zwl)) ("aed"|"afn"|"all"|"amd"|"ang"|"aoa"|"ars"|"aud"|"awg"|"azn"|"bam"|"bbd"|"bdt"|"bgn"|"bhd"|"bif"|"bmd"|"bnd"|"bob"|"brl"|"bsd"|"btc"|"btn"|"bwp"|"byn"|"bzd"|"cad"|"cdf"|"chf"|"clf"|"clp"|"cny"|"cop"|"crc"|"cuc"|"cup"|"cve"|"czk"|"djf"|"dkk"|"dop"|"dzd"|"egp"|"ern"|"etb"|"eth"|"eur"|"fjd"|"fkp"|"gbp"|"gel"|"ggp"|"ghs"|"gip"|"gmd"|"gnf"|"gtq"|"gyd"|"hkd"|"hnl"|"hrk"|"htg"|"huf"|"idr"|"ils"|"imp"|"inr"|"iqd"|"irr"|"isk"|"jep"|"jmd"|"jod"|"jpy"|"kes"|"kgs"|"khr"|"kmf"|"kpw"|"krw"|"kwd"|"kyd"|"kzt"|"lak"|"lbp"|"lkr"|"lrd"|"lsl"|"ltl"|"lvl"|"lyd"|"mad"|"mdl"|"mga"|"mkd"|"mmk"|"mnt"|"mop"|"mro"|"mur"|"mvr"|"mwk"|"mxn"|"myr"|"mzn"|"nad"|"ngn"|"nio"|"nok"|"npr"|"nzd"|"omr"|"pab"|"pen"|"pgk"|"php"|"pkr"|"pln"|"pyg"|"qar"|"ron"|"rsd"|"rub"|"rwf"|"sar"|"sbd"|"scr"|"sdg"|"sek"|"sgd"|"shp"|"sll"|"sos"|"srd"|"std"|"svc"|"syp"|"szl"|"thb"|"tjs"|"tmt"|"tnd"|"top"|"try"|"ttd"|"twd"|"tzs"|"uah"|"ugx"|"usd"|"uyu"|"uzs"|"vef"|"ves"|"vnd"|"vuv"|"wst"|"xaf"|"xag"|"xau"|"xcd"|"xof"|"xpf"|"yer"|"zar"|"zmw"|"zwl") - **status** (string (active|closed)): The status of the account ("active"|"closed") - **closed_on** (string (date)) - **external_id** (string): An optional user-defined ID for the manual account - **custom_metadata** (object): An optional JSON object that includes additional data related to this account. This must be a valid JSON object and, when stringified, must not exceed 4096 characters. - **exclude_from_transactions** (boolean): If `true`, transactions may not be assigned to this manual account ### Responses #### 201 - Successfully created manual account **manualAccountObject** - **id** (integer (int32)) (required): The unique identifier of this account - **name** (string) (required): Name of the account - **institution_name** (string) (required): Name of institution holding the account - **display_name** (string) (required): Optional display name for the account as set by the user or derived from the `institution_name` and `name` if not explicitly set. - **type** (string (cash|credit|cryptocurrency|employee compensation|investment|loan|other liability|other asset|real estate|vehicle)) (required) ("cash"|"credit"|"cryptocurrency"|"employee compensation"|"investment"|"loan"|"other liability"|"other asset"|"real estate"|"vehicle") - **subtype** (string) (required): Optional account subtype. Examples include
- retirement - checking - savings - prepaid credit card - **balance** (string) (required): Current balance of the account in numeric format to 4 decimal places - **currency** (string) (required): Three-letter lowercase currency code of the account balance - **to_base** (number) (required): The balance converted to the user's primary currency - **balance_as_of** (string (date-time)) (required): Date balance was last updated in ISO 8601 extended format, can be in date or date-time format - **status** (string (active|closed)) (required): The status of the account ("active"|"closed") - **closed_on** (string (date)) (required): The date this account was closed in YYYY-MM-DD format. Will be null if the account has not been marked as closed. - **external_id** (string) (required): An optional external_id that may be set or updated via the API - **custom_metadata** (object): User defined JSON data that can be set or cleared via the API - **exclude_from_transactions** (boolean) (required): If true, this account will not show up as an option for assignment when creating transactions manually - **created_by_name** (string) (required): The name of the user who created the account - **created_at** (string (date-time)) (required): Date/time the account was created in ISO 8601 extended format - **updated_at** (string (date-time)) (required): Date/time the account was created in ISO 8601 extended format #### 400 - Invalid request body **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 401 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 429 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 500 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. ### Example Usage ```bash curl -X POST "https://api.lunchmoney.dev/v2/manual_accounts" \ -H "Content-Type: application/json" \ -d '{ "name": "My Savings Account", "institution_name": "Bank of the West", "display_name": "Savings", "type": "value", "subtype": "prepaid credit card", "balance": "195.50", "balance_as_of": "2024-09-15", "currency": "value", "status": "active", "closed_on": "2024-10-01", "external_id": "string", "custom_metadata": "value", "exclude_from_transactions": "false" }' ``` ``` -------------------------------- ### GET /me Source: https://alpha.lunchmoney.dev/v2/openapi Get details about the user associated with the supplied authorization token. ```markdown ### Responses #### 200 - The User Object associated with the authorized token. **userObject** - **name** (string) (required): The user's name - **email** (string) (required): The user's email - **id** (integer (int32)) (required): Unique ID for the user - **account_id** (integer (int64)) (required): Unique ID for the linked budgeting account - **budget_name** (string) (required): Name of the linked budgeting account - **primary_currency** (string (aed|afn|all|amd|ang|aoa|ars|aud|awg|azn|bam|bbd|bdt|bgn|bhd|bif|bmd|bnd|bob|brl|bsd|btc|btn|bwp|byn|bzd|cad|cdf|chf|clf|clp|cny|cop|crc|cuc|cup|cve|czk|djf|dkk|dop|dzd|egp|ern|etb|eth|eur|fjd|fkp|gbp|gel|ggp|ghs|gip|gmd|gnf|gtq|gyd|hkd|hnl|hrk|htg|huf|idr|ils|imp|inr|iqd|irr|isk|jep|jmd|jod|jpy|kes|kgs|khr|kmf|kpw|krw|kwd|kyd|kzt|lak|lbp|lkr|lrd|lsl|ltl|lvl|lyd|mad|mdl|mga|mkd|mmk|mnt|mop|mro|mur|mvr|mwk|mxn|myr|mzn|nad|ngn|nio|nok|npr|nzd|omr|pab|pen|pgk|php|pkr|pln|pyg|qar|ron|rsd|rub|rwf|sar|sbd|scr|sdg|sek|sgd|shp|sll|sos|srd|std|svc|syp|szl|thb|tjs|tmt|tnd|top|try|ttd|twd|tzs|uah|ugx|usd|uyu|uzs|vef|ves|vnd|vuv|wst|xaf|xag|xau|xcd|xof|xpf|yer|zar|zmw|zwl)) (required) ("aed"|"afn"|"all"|"amd"|"ang"|"aoa"|"ars"|"aud"|"awg"|"azn"|"bam"|"bbd"|"bdt"|"bgn"|"bhd"|"bif"|"bmd"|"bnd"|"bob"|"brl"|"bsd"|"btc"|"btn"|"bwp"|"byn"|"bzd"|"cad"|"cdf"|"chf"|"clf"|"clp"|"cny"|"cop"|"crc"|"cuc"|"cup"|"cve"|"czk"|"djf"|"dkk"|"dop"|"dzd"|"egp"|"ern"|"etb"|"eth"|"eur"|"fjd"|"fkp"|"gbp"|"gel"|"ggp"|"ghs"|"gip"|"gmd"|"gnf"|"gtq"|"gyd"|"hkd"|"hnl"|"hrk"|"htg"|"huf"|"idr"|"ils"|"imp"|"inr"|"iqd"|"irr"|"isk"|"jep"|"jmd"|"jod"|"jpy"|"kes"|"kgs"|"khr"|"kmf"|"kpw"|"krw"|"kwd"|"kyd"|"kzt"|"lak"|"lbp"|"lkr"|"lrd"|"lsl"|"ltl"|"lvl"|"lyd"|"mad"|"mdl"|"mga"|"mkd"|"mmk"|"mnt"|"mop"|"mro"|"mur"|"mvr"|"mwk"|"mxn"|"myr"|"mzn"|"nad"|"ngn"|"nio"|"nok"|"npr"|"nzd"|"omr"|"pab"|"pen"|"pgk"|"php"|"pkr"|"pln"|"pyg"|"qar"|"ron"|"rsd"|"rub"|"rwf"|"sar"|"sbd"|"scr"|"sdg"|"sek"|"sgd"|"shp"|"sll"|"sos"|"srd"|"std"|"svc"|"syp"|"szl"|"thb"|"tjs"|"tmt"|"tnd"|"top"|"try"|"ttd"|"twd"|"tzs"|"uah"|"ugx"|"usd"|"uyu"|"uzs"|"vef"|"ves"|"vnd"|"vuv"|"wst"|"xaf"|"xag"|"xau"|"xcd"|"xof"|"xpf"|"yer"|"zar"|"zmw"|"zwl") - **api_key_label** (string) (required): Label assigned by the user to the API key being used. Returns null if no label is set #### 401 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 429 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. #### 500 - response **errorResponseObject** - **message** (string) (required): High level error type, for example 'Not Found' or 'Request Validation Failure' - **errors** (array (object)) (required): An list of objects that describe the errors encountered while processing the request.
If multiple errors were encountered, the list will contain multiple objects.
Each `error` object is guaranteed to have an `errMsg`, but it may also contain other error specific properties. Array items: - **errMsg** (string) (required): A message to help the developer determine the problem with the request. ### Example Usage ```bash curl -X GET "https://api.lunchmoney.dev/v2/me" ``` ``` -------------------------------- ### Schema: budgetSettingsResponseObject Source: https://alpha.lunchmoney.dev/v2/openapi Budget period and display settings ```markdown ## Schema: budgetSettingsResponseObject Budget period and display settings **Type:** object - **budget_period_granularity** (string (day|week|month|year|twice a month)) (required): Budget period granularity ("day"|"week"|"month"|"year"|"twice a month") - **budget_period_quantity** (number (double)) (required): The number of `granularity` units that make up a single budgeting period. - **budget_period_anchor_date** (string (date)) (required): The date from which the budgeting period is calculated. All future (and past) periods are derived by applying `quantity` × `granularity` forward and backward from this date. - **budget_hide_no_activity** (boolean) (required): The display preference for hiding categories in budget view that have no activity and no budgeted value - **budget_use_last_day_of_month** (boolean) (required): The display preference for using the last day of the month as the period end for monthly periods - **budget_income_option** (string (max|budgeted|activity)) (required): Determines which income value is used as the base when calculating available funds for a budgeting period ("max"|"budgeted"|"activity") - **budget_rollover_left_to_budget** (boolean) (required): Determines whether the remaining unallocated funds (“Left to Budget”) at the end of a budgeting period are carried forward to the next period ```