Skip to main content

Monarch Money API for Python

Project description

Monarch Money

Python library for accessing Monarch Money data.

Installation

From Source Code

Clone this repository from Git

git clone https://github.com/hammem/monarchmoney.git

Via pip

pip install monarchmoney

Instantiate & Login

There are two ways to use this library: interactive and non-interactive.

Interactive

If you're using this library in something like iPython or Jupyter, you can run an interactive-login which supports multi-factor authentication:

mm = MonarchMoney()
await mm.interactive_login()

This will prompt you for the email, password and, if needed, the multi-factor token.

Non-interactive

For a non-interactive session, you'll need to create an instance and login:

mm = MonarchMoney()
mm.login(email, password)

This may throw a RequireMFAException. If it does, you'll need to get a multi-factor token and call the following method:

mm.multi_factor_authenticate(email, password, multi_factor_code)

Alternatively, you can provide the MFA Secret Key. The MFA Secret Key is found when setting up the MFA in Monarch Money by going to Settings -> Security -> Enable MFA -> and copy the "Two-factor text code". Then provide it in the login() method:

await mm.login(
        email=email,
        password=password,
        save_session=False,
        use_saved_session=False,
        mfa_secret_key=mfa_secret_key,
    )

Accessing Data

As of writing this README, the following methods are supported:

Non-Mutating Methods

  • get_accounts - gets all the accounts linked to Monarch Money
  • get_account_holdings - gets all of the securities in a brokerage or similar type of account
  • get_budgets — all the budgets and the corresponding actual amounts
  • get_subscription_details - gets the Monarch Money account's status (e.g. paid or trial)
  • get_transactions - gets transaction data, defaults to returning the last 100 transactions; can also be searched by date range
  • get_transaction_categories - gets all of the categories configured in the account
  • get_transaction_tags - gets all of the tags configured in the account
  • get_cashflow - gets cashflow data (by category, category group, merchant and a summary)
  • get_cashflow_summary - gets cashflow summary (income, expense, savings, savings rate)
  • is_accounts_refresh_complete - gets the status of a running account refresh

Mutating Methods

  • request_accounts_refresh - requests a syncronization / refresh of all accounts linked to Monarch Money. This is a non-blocking call. If the user wants to check on the status afterwards, they must call is_accounts_refresh_complete.
  • request_accounts_refresh_and_waid - requests a syncronization / refresh of all accounts linked to Monarch Money. This is a blocking call and will not return until the refresh is complete or no longer running.
  • create_transaction - creates a transaction with the given attributes
  • set_budget_amount - sets a budget's value to the given amount (date allowed, will only apply to month specified by default). A zero amount value will "unset" or "clear" the budget for the given category.

Contributing

Any and all contributions -- code, documentation, feature requests, feedback -- are welcome!

If you plan to submit up a pull request, you can expect a timely review. There aren't any strict requirements around the environment you need to configure aside from using Black to auto-format the code. An action is configured in this repo to run against all PRs and merges and will block them from being committed.

FAQ

How do I use this API if I login to Monarch via Google?

If you currently use Google or 'Continue with Google' to access your Monarch account, you'll need to set a password to leverage this API. You can set a password on your Monarch account by going to your security settings.

Don't forget to use a password unique to your Monarch account and to enable multi-factor authentication!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

monarchmoney-0.1.7.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

monarchmoney-0.1.7-py2.py3-none-any.whl (13.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file monarchmoney-0.1.7.tar.gz.

File metadata

  • Download URL: monarchmoney-0.1.7.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for monarchmoney-0.1.7.tar.gz
Algorithm Hash digest
SHA256 1143717190836a9599a81ff5531d31d32af099f95536f734cfe5b30dd50dd356
MD5 04f2705de34841726276a5d9f7b4998b
BLAKE2b-256 aa5f476ee10928c56fb20f5e07cb51aeed4c0b0638b50c6fa45d89b6da565c61

See more details on using hashes here.

File details

Details for the file monarchmoney-0.1.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for monarchmoney-0.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee47a20068e2a1873799f052c74d16b540d0174009adfe26f066faf6f9b8a31b
MD5 c79f61c79ef3e478f9da23172995c6fa
BLAKE2b-256 765f90531ceeea236ae3aab16aa128388e01a85233acfbe3e2bd8b457ac51d7f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page