Skip to main content

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.

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.

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

1

Install the package

Install finance-dl from PyPI with pip install finance-dl. ChromeDriver is bundled via the chromedriver-binary package.
2

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.
3

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.
4

Automate everything

Use python -m finance_dl.update to run all configurations in parallel, skip recently-updated ones, and log results to files for review.
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.

Build docs developers (and LLMs) love