Nemo's Personal Finance Stack

If you want to build a personal finance application to track expenses and investments of an urban indian resident, this page is for you.

What

A bunch of APIs, datasets to help personal finance management. Feel free to use these to build an application. I prefer using non-proprietary identifiers, such as ISINs and ISO codes, and permissive licenses.

Why

I’ve seen lots of attempts at Personal Finance apps over time, and these typically use:

  1. Parsing SMS for transactions.
  2. Scraping emails for transaction history.
  3. Hooking into GMail (and only GMail) for automatically fetching Credit Card bills.
  4. Triggering a new CAS export, and asking users to forward the email. See: Kuvera
  5. Asking users for Netbanking credentials to fetch statements and parse them.

While some of these work, my personal thesis is to always track transactions as close to the source as possible to get more visibility.

As an example, Amazon sells a lot of items, including Groceries, and roll up multiple orders into a single transaction, so a single line item in your credit card statement might include an Electronics and Grocery purchase. Unless you peek into the Amazon Order History, parsing a CC Statement doesn’t give you a clear insight as to where your spends are.

Not everything can be tracked at source (such as dining out), but a huge chunk of my transactions (Bills, Investments, Amazon, Uber, Grocery Apps) can be tracked at source.

How

Over time, I’ve made a bunch of datasets, and APIs to help solve this problem piece by piece. This is a page listing all these efforts, along with other similar efforts.

mf.captnemo.in

  1. An API that gives you the latest NAVs of all mutual funds.
  2. API to provide Mutual Fund information (redirects to Kuvera)
  3. 🚧 API to provide historical NAV of all Mutual Funds, as per any date.

historical-mf-data

A SQLite dataset, automatically updated that maintains historical NAVs of all mutual funds in India.

india-isin-data

Comprehensive dataset containing information of all ISINs in India, tracking their status and changes over time.

isin.captnemo.in 🚧

An API that gives you information about all ISIN in India.

Kuvera OpenAPI Specification

Note: :lock: features require a logged in user.

  1. NIFTY50 Historical Value
  2. List of AMCs
  3. List of Mutual Fund Plans
  4. Categories of Mutual Funds, along with returns for various time ranges.
  5. Details about a specific Mutual Fund Plan(s)
  6. Top bought, sold, and watched funds on Kuvera
  7. Fixed Deposit Plans
  8. Crypto Tokens (in INR)
  9. Gold rates, both hisorical and latest
  10. Exchange rate for USD
  11. :lock: User Profile information
  12. 🚧 :lock: User Portfolio
  13. 🚧 :lock: User Transactions

Simpl OpenAPI Specification

  1. :lock: Get Transaction History
  2. 🚧 Pay bills programatically

Swiggy OpenAPI Specification

  1. Login to Swiggy using OTP
  2. :lock: Get Swiggy Order History
  3. :lock: Get list of Instamart Orders
  4. :lock: Get specific Swiggy Order Details

casparser by Sandeep Somasekharan

Source: https://github.com/codereverser/casparser

  1. Parse Consolidated Account Statement (CAS) PDF files generated from CAMS/KFINTECH
  2. summary- print portfolio summary
  3. (BETA) gains - Print capital gains report (summary and detailed) with option to generate csv files for ITR in schedule 112A format

Sandeep also has a bunch of other related projects: https://github.com/codereverser?tab=repositories

Statement Parsers

I’ve used some of these in the past, but I can’t vouch for their quality.

  1. https://github.com/santosh1994/hdfc-creditcard-statement-parser
  2. https://github.com/xaneem/hdfc-credit-card-statement-parser
  3. https://github.com/me-heer/hdfc_to_google_sheets_sync

Splitwise API

If you use Splitwise for daily finances, or even for one-off groups for trips - this can provide a lot of information.