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.

This page walks through every step needed to get finance-dl running on your machine — from the initial pip install to verifying that ChromeDriver and Chrome are correctly matched for browser-based scrapers. finance-dl requires Python 3.5 or later and installs two CLI entry points you can invoke directly from your terminal.
1

Install finance-dl

From PyPI (recommended):Install the latest published release directly with pip:
pip install finance-dl
From a repository clone:If you want to use an unreleased version or contribute to the project, clone the repository and install from the local source:
git clone https://github.com/jbms/finance-dl.git
cd finance-dl

# Standard install
pip install .

# Editable/development install (changes to source are reflected immediately)
pip install -e .
2

Verify the CLI entry points

The package installs two console scripts that are available on your PATH after installation:
CommandDescription
finance-dlMain CLI entry point; equivalent to running python -m finance_dl.cli
finance-dl-chromedriver-wrapperWrapper that launches ChromeDriver with the correct environment for finance-dl
Confirm the install succeeded:
finance-dl --help
3

Understand key dependencies

pip resolves and installs all dependencies automatically. The table below describes what each major dependency does inside finance-dl:
PackagePurpose
seleniumBrowser automation for Selenium-based scrapers
chromedriver-binaryBundles a ChromeDriver binary for use with Selenium
selenium-requestsExtends Selenium sessions with requests-style HTTP calls
ofxclientOFX Direct Connect protocol client
mintapi >= 1.31Mint.com API client used by finance_dl.mint
bs4HTML parsing (BeautifulSoup 4)
beancount >= 2.1.2Output format support for beancount-import integration
ipythonPowers the interactive debugging shell (-i flag)
atomicwrites >= 1.3.0Safe atomic file writes to prevent data corruption
jsonschemaConfiguration validation
python-dateutilFlexible date parsing across scrapers
4

Configure ChromeDriver for browser-based scrapers

Selenium-based scrapers (Amazon, Mint, Venmo, and others) require Google Chrome and ChromeDriver to be correctly matched.
ChromeDriver and Chrome are tightly coupled — their major version numbers must match. The chromedriver-binary Python package bundles its own ChromeDriver binary, but by default it uses your system’s installed Chrome. If the versions differ, you will see an error like:
selenium.common.exceptions.SessionNotCreatedException: Message: session not created:
This version of ChromeDriver only supports Chrome version 97
Current browser version is 96.0.4664.45 with binary path /usr/bin/google-chrome
You have three options to resolve version mismatches:Option 1 — Pin the chromedriver-binary package to a version matching your installed Chrome:
pip install "chromedriver-binary==97.*"
Option 2 — Manage your Chrome installation to match the version bundled by chromedriver-binary. Check the bundled version with:
python -c "import chromedriver_binary; print(chromedriver_binary.chromedriver_filename)"
Option 3 — Set CHROMEDRIVER_CHROME_BINARY to point to a specific Chrome binary that matches the bundled ChromeDriver. You can set this system-wide or from within your config file:
export CHROMEDRIVER_CHROME_BINARY=/usr/bin/google-chrome-beta
Or directly in your finance_dl_config.py:
import os
os.environ["CHROMEDRIVER_CHROME_BINARY"] = "/usr/bin/google-chrome-beta"

Next Steps

With finance-dl installed, create your configuration module and run your first scrape:

Quickstart

Write a config function and download your first batch of financial data in under 5 minutes.

Build docs developers (and LLMs) love