I use mint.com, but I really have a problem with the method of how they receive data. I believe banks should provide API keys for their customers which allows read-only access to their accounts.
Unfortunately, their is zero interest within banks to build this.
Edit: I do too many transactions to use something like this or Toshl.
I had a few problems with Mint which is why I decided to build this: 1. It wasn't available in my country and 2. I didn't want to connect my bank account, just because I wasn't comfortable with giving them that info. The API key would be awesome, but with banks being such large organisations that deal with so much data I feel like this would be almost impossible to implement with their current systems.
I work for a big bank, and I tried pushing the idea around a bit, but to no avail.
It really comes down to "business need" - the department responsible for the online services would need to be convinced that there is a desire and a benefit to providing an API key. I imagine they would see it negative for two ways - added risk by having sites/programs connect to their application, and they won't see the added benefit to customers, and vice-versa - customers wouldn't really know what to do with the key.
It would take a player like Mint to make that case - they could do branding with a major bank such that they are the first to safely share data, but then recommend products, etc.
Unfortunately, their is zero interest within banks to build this.
Edit: I do too many transactions to use something like this or Toshl.