### 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
```