A Python application to download, parse, and export transactions from Quicken Simplifi. This tool allows you to programmatically access your financial data over specific time ranges and export it to CSV or JSON formats.
- Authentication: Secure login to Quicken Simplifi with token-based authentication
- Transaction Download: Download transactions over custom date ranges
- Flexible Filtering: Filter by amount, category, merchant, description, and account
- Multiple Export Formats: Export to CSV or JSON
- Summary Statistics: Generate financial summaries and breakdowns
- Account Management: List all accounts and categories
- Date Range Options: Download by specific dates or last N days
- Web Interface: Modern web dashboard for easy access to all features
For the easiest experience, use the web interface instead of the command-line tools!
- Run the setup script (creates venv and installs dependencies):
./setup.sh- Edit
.envwith your Simplifi credentials:
nano .env- Start the web application:
./run_webapp.sh- Open your browser to: http://localhost:8000
The run_webapp.sh script automatically activates the virtual environment for you.
The web interface provides a beautiful, user-friendly dashboard with:
- One-Click Login: Easy authentication with optional headless mode
- Visual Dashboard: All features accessible from a single page
- Account Explorer: Browse all your accounts with one click
- Category Browser: View all transaction categories
- Advanced Filtering: Filter transactions by date, amount, category, merchant, and more
- Export Options: Download as JSON or CSV directly from the browser
- Summary Statistics: Get instant financial summaries and breakdowns
- No Command Line: Everything through an intuitive web interface
The web app includes:
- Clean, modern design with gradient styling
- Responsive layout that works on mobile and desktop
- Real-time status updates and error handling
- Loading indicators for all operations
- JSON preview in the browser or CSV downloads
The web app also provides automatic API documentation at: http://localhost:8000/docs
You can use the API endpoints programmatically if needed.
- Python 3.7 or higher
- Quicken Simplifi account
The easiest way to install is using the provided setup script, which creates a virtual environment and installs all dependencies:
# Clone the repository
git clone <repository-url>
cd simplifi-tool
# Run the setup script
./setup.shThe setup script will:
- Create a Python virtual environment (
venv/) - Install all Python dependencies inside the venv
- Install Playwright browsers
- Create a
.envfile from the template
After running setup, edit the .env file with your credentials:
nano .env # or use your preferred editorAdd your Simplifi credentials:
SIMPLIFI_EMAIL=your_email@example.com
SIMPLIFI_PASSWORD=your_password_here
If you prefer to set up manually:
- Clone the repository:
git clone <repository-url>
cd simplifi-tool- Create a virtual environment:
python3 -m venv venv- Activate the virtual environment:
# On Linux/Mac:
source venv/bin/activate
# On Windows:
venv\Scripts\activate- Install dependencies:
pip install --upgrade pip
pip install -r requirements.txt- Install Playwright browsers:
playwright install chromium- Configure your credentials:
cp .env.example .env
# Edit .env and add your credentialsImportant Notes:
- The
.envfile is gitignored to protect your credentials - Always activate the virtual environment before running the application
- The virtual environment isolates dependencies from your system Python
This application uses Playwright for browser automation to interact with Quicken Simplifi. All code is self-contained with no third-party API dependencies - the app simply automates a real browser just like you would use manually. This gives you complete control and transparency over how your data is accessed.
Recommended: Use the web interface (see Web Application section above) for the easiest experience!
For command-line usage, continue below:
First, activate the virtual environment:
source venv/bin/activateDownload last 30 days of transactions to CSV:
python main.py --output transactions.csvFor 2FA accounts: Use --show-browser to see the browser window and complete 2FA manually:
python main.py --show-browser --output transactions.csvWhen done, you can deactivate the virtual environment:
deactivateDownload transactions for a specific date range:
python main.py --start-date 2024-01-01 --end-date 2024-12-31 --format jsonDownload last 90 days:
python main.py --days 90Filter by minimum amount:
python main.py --min-amount 100 --output large_transactions.csvFilter by category:
python main.py --category "Groceries" --days 30Filter by merchant:
python main.py --merchant "Amazon" --days 60Combine multiple filters:
python main.py --days 30 --min-amount 50 --max-amount 500 --category "Dining"List all accounts:
python main.py --list-accountsDownload from specific account:
python main.py --account-id 12345 --days 60List all categories:
python main.py --list-categoriesGet transaction summary with statistics:
python main.py --summary --days 30Output includes:
- Total transactions count
- Total amount
- Average, median, min, max amounts
- Breakdown by category
Export to CSV (default):
python main.py --days 30 --format csv --output my_transactions.csvExport to JSON with pretty printing:
python main.py --days 30 --format json --pretty --output my_transactions.jsonDownload all transactions from 2024, filter for amounts over $1000, and generate summary:
python main.py --start-date 2024-01-01 --end-date 2024-12-31 \
--min-amount 1000 --summary --format json --prettyDownload last 7 days from specific account with category filter:
python main.py --days 7 --account-id 12345 --category "Shopping" \
--output weekly_shopping.csv--email: Simplifi account email (or set SIMPLIFI_EMAIL env var)--password: Simplifi account password (or set SIMPLIFI_PASSWORD env var)--show-browser: Show browser window (useful for debugging and completing 2FA)--headless: Run browser in headless mode (default: True)
--start-date: Start date in YYYY-MM-DD format--end-date: End date in YYYY-MM-DD format (defaults to today)--days: Download transactions from the last N days
--account-id: Filter by specific account ID--min-amount: Minimum transaction amount--max-amount: Maximum transaction amount--category: Filter by category name--merchant: Filter by merchant name--description: Filter by description (partial match)--limit: Maximum number of transactions to retrieve
--output: Output filename (auto-generated if not specified)--format: Output format - csv or json (default: csv)--pretty: Pretty print JSON output
--list-accounts: List all accounts and exit--list-categories: List all categories and exit--summary: Display transaction summary statistics
.
├── webapp.py # FastAPI web application (recommended)
├── run_webapp.sh # Web app startup script
├── main.py # CLI entry point
├── simplifi_client.py # Quicken Simplifi API client
├── transaction_downloader.py # Transaction download and parsing logic
├── example_usage.py # Usage examples
├── requirements.txt # Python dependencies
├── setup.sh # Setup script
├── .env.example # Example environment configuration
├── .gitignore # Git ignore rules
└── README.md # This file
-
SimplifiClient (
simplifi_client.py):- Handles authentication with Quicken Simplifi
- Manages API requests for accounts, transactions, categories, and tags
- Maintains session state and authentication tokens
-
TransactionDownloader (
transaction_downloader.py):- Downloads transactions using the SimplifiClient
- Filters transactions based on various criteria
- Parses transactions into pandas DataFrames
- Exports data to CSV or JSON formats
- Generates summary statistics
-
Main CLI (
main.py):- Command-line interface for easy interaction
- Orchestrates authentication, download, filtering, and export operations
- Provides user-friendly output and error handling
This application uses Playwright browser automation to interact with Quicken Simplifi:
- No unofficial APIs: The app controls a real Chromium browser to access Simplifi
- Complete transparency: All code is self-contained - no hidden third-party dependencies
- Same as manual access: The automation does exactly what you would do manually
- Security: Your credentials are only used to log in through the official Simplifi login page
- Headless mode: Runs without showing the browser window by default (use
--show-browserto see it)
Note: Since this automates the web interface, functionality may change if Quicken updates their website layout. The HTML selectors may need adjustment.
- Never commit your
.envfile - it contains your credentials - Store credentials securely and use environment variables
- Consider using a dedicated application password if your account supports it
- The application uses HTTPS for all API communications
- Tokens are stored only in memory during execution
- Verify your email and password in
.env - If 2FA is enabled, use
--show-browserto complete verification manually - Ensure you have an active Quicken Simplifi subscription
- Make sure Playwright browsers are installed:
playwright install chromium
- Verify the date range includes transactions
- Check if the account ID is correct
- Try without filters first to see all available data
- The web interface may have changed - selectors may need updating
- Network issues may cause timeouts - try again
- Use
--show-browserto see what's happening in the browser - Take screenshots for debugging: the app can save screenshots during execution
- This is an unofficial tool not endorsed by Quicken
- Web interface selectors may need updates if Quicken changes their site
- Two-factor authentication requires
--show-browserfor manual completion - HTML parsing depends on Simplifi's current page structure
- Slower than a direct API (but no third-party dependencies!)
- Requires Playwright browsers to be installed
Contributions are welcome! Please feel free to submit issues or pull requests.
This project is provided as-is for personal use. Please respect Quicken Simplifi's Terms of Service when using this tool.
This is an unofficial tool and is not affiliated with, endorsed by, or connected to Quicken Inc. or Simplifi. Use at your own risk. The authors are not responsible for any issues that may arise from using this tool, including but not limited to account access issues or data loss.
Potential features for future development:
- Auto-detect and update HTML selectors
- Session caching to avoid repeated logins
- Transaction categorization and analysis
- Budget tracking and alerts
- Multi-account reconciliation
- Recurring transaction detection
- Spending trend visualization with charts
- Export to other formats (Excel, PDF)
- Parallel account processing
- Smart selector fallbacks
- Enhanced web interface with charts and graphs
- Real-time transaction monitoring
- Automated reporting and scheduled exports
For issues, questions, or feature requests, please open an issue in the repository.