I wasn’t sure where to ask this, so please feel free to direct me to a different community if there’s a good one for this question.
Are there any US banks that allow their clients programmatic access to their own data? As far as I’m aware, that’s not really a thing in the US, but I might be willing to switch banks if there are any that provide access.
Many 3rd party services such as “Mint Financial” (part of Intuit) offer the ability to connect to a vast number of US banking and financial institutions to ingest your transaction information as it happens, so I assume there must be APIs they are using for it. The number of institutions they support is greater than the number of institutions they don’t.
Unfortunately, my understanding is that they mostly use screen-scraping.
Giving your account username/password to anyone but your bank is usually a breach of ToS, and they can use it to deny you compensation if something goes wrong and someone cleans out your bank account using internet banking.
They also get to datamine everything.
Mint uses an OAuth token (I think through Plaid). This is not the same thing as sharing a username/password, and is authorized by your bank, since they provide the OAuth flow; otherwise OAuth wouldn’t work in the first place.
I believe Mint uses Plaid’s API and a login token from your bank to connect to your account; they’re not doing web scraping or actually logging in with your account credentials.
Plaid just settled a $58 million class action lawsuit for a) collecting people’s usernames and passwords then b) scraping their transaction history without their consent and selling it to data brokers.
From the complaint:
- First, Plaid induces consumers to hand over their private bank login credentials to Plaid by making it appear those credentials are being communicated directly to consumers’ banks. Consumers are informed the connection is “private” and “secure,” and their banking credentials will “never be made accessible” to the app. They are then directed to a login screen that looks like it is coming from their bank, complete with the bank’s logo and branding. In reality, however, though Plaid does not disclose this, the login screen is created by, controlled by, and connected to Plaid. Plaid executives have acknowledged this process was “optimized” to increase “user conversions”—in other words, to provide a false sense of comfort to consumers by concealing Plaid’s role as an unaffiliated third party.
- Second, Plaid uses consumers’ login credentials to obtain direct and full access to consumers’ personal financial banking information for Plaid’s own commercial purposes wholly unrelated to consumers’ use of the apps. For each consumer, Plaid downloads years’ worth of transaction history for every single account they have connected to that bank (such as checking, savings, credit card, and brokerage accounts), regardless of whether the data in any of the accounts bears any relationship to the app for which the consumer signed up. Thus, a consumer who makes a single mobile payment on an app from a checking account unwittingly gives Plaid years’ worth of private, granular financial information from every account the consumer maintains with the bank, including accounts maintained for others such as relatives and children. To date, Plaid has amassed this trove of data from over 200 million distinct financial accounts.
- Plaid exploits its ill-gotten information in a variety of ways, including marketing the data to its app customers, analyzing the data to derive insights into consumer behavior, and, most recently, selling its collection of data to Visa as part of a multi-billion dollar acquisition. Plaid has unfairly benefited from the personal information of millions of Americans and wrongfully intruded upon their private financial affairs.
I, too, looked high and low for this. Switching credit unions every year or so when they’d stop offering access. I finally gave up and started using Plaid. They grab all transactions from all my various accounts for $2.16/mo and shove them into Moneydance. Not what you asked for, but it works.
I’m currently having my accounts send me alerts on as many transactions as possible and then programmatically reading them from my email. It works, basically, but it’s not perfect.
I’m hoping someone gives you a better answer, but in case no one does, here’s one potential path depending on how much work you’re willing to put into it.
For decades there has been a Personal Finance software package call Quicken. Even before online banking existed, Quicken offered a way for banks to export transaction and balance data for people to manage their finances. Rich online banking came along and largely negated this need for most folks, but the Quicken links and exports were already implemented in thousands of banks across the USA. Now, I imagine some have given up supporting Quicken exports, but a quick Google search shows there are Quicken users doing exports even today in 2023, so apparently its still a thing.
So to programmatic access:
I don’t know of any banks that have a straight up REST API you can hit, but with Quicken the linkage is there for exports you’d just have to wrap your own controls around it. Here’s one conversation about some advance end users (not programmers) doing basic automation. In one search I saw some references to some python packages, so maybe that’s path less kludgy.
Some banks support the open financial exchange (OFX) protocol for fetching information: https://en.m.wikipedia.org/wiki/Open_Financial_Exchange
This is a list of some of the banks that are known to support it and their connection information from GnuCash, but it might be out if date:
https://wiki.gnucash.org/wiki/Talk:Setting_up_OFXDirectConnect
My bank, bunq, allows that. I do remember people talking about using it as a US citizen. Might be worth looking into.
This looks really cool. Just spent a bunch of time looking into it and finally found this, though:
All personal plans are available in Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Italy, Lichtenstein, Luxembourg, Malta, the Netherlands, Norway, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Ukraine.
Doesn’t look like it’s available in the US.
Edit: Looks like they’re working on coming to the US, though! https://www.bunq.com/us
Signing up for updates. Thanks for the heads up!