finance-dl is a Python toolkit that automates downloading personal financial data from banks, credit card issuers, brokerages, and other financial services. It handles login flows, multi-factor authentication, and data extraction so you can keep your financial records up to date without manual effort. It is specifically designed to work alongside beancount-import for double-entry bookkeeping.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jbms/finance-dl/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Install finance-dl from PyPI and set up ChromeDriver for browser-based scrapers.
Quickstart
Create your first configuration file and run your first scraper in minutes.
Configuration
Learn how to write config functions, manage credentials, and set output directories.
Update Tool
Run all your scrapers in parallel and track when each one last succeeded.
What finance-dl Does
finance-dl connects to financial institutions through two mechanisms: direct OFX protocol connections (no browser required) and Selenium-based web scraping using ChromeDriver. Each scraper is configured with a simple Python function and writes downloaded data to a local directory.OFX Protocol
Direct connections to Vanguard, Fidelity, Chase, Discover, and any OFX-compatible institution.
Banking & Payments
Venmo, PayPal, US Bank, Radius Bank, and Discover web scraping.
Investments
Charles Schwab, Morgan Stanley StockPlanConnect, Gemini, and HealthEquity.
Shopping & Receipts
Amazon order invoices, Google Purchases history, and WaveApps receipts.
Bills & Insurance
PG&E, Comcast, EBMUD water bills, and Anthem insurance EOBs.
Aggregators
Mint.com transaction history and Google/Ultipro payroll statements.
How It Works
Install the package
Install finance-dl from PyPI with
pip install finance-dl. ChromeDriver is bundled via the chromedriver-binary package.Write a config module
Create a Python file with
CONFIG_<name>() functions — one per financial account. Each function returns a dict specifying the scraper module, credentials, and output directory.Run a scraper
Execute
python -m finance_dl.cli --config-module my_config --config mybank to download data for one account. Files are saved to your specified output directory.finance-dl is designed to integrate with beancount-import. The output files — OFX, CSV, JSON, PDF, and HTML — are formatted to be consumed by beancount-import importers for automated double-entry bookkeeping.