Built and run by one person.
Point Your AI Agent at api.tigzig.com. 40 Million Rows of Public Data, and Half the Bytes Are One File

Point Your AI Agent at api.tigzig.com. 40 Million Rows of Public Data, and Half the Bytes Are One File

Published: September 18, 2026

Point your AI agent at api.tigzig.com and it works out which dataset it needs and pulls the file itself. Over 40 million rows across Indian mutual funds, cricket, global macro and India company filings. Refreshed daily. Free, no signup, no key.

Cricket is the addition since I last wrote about this. Every delivery in Tests, ODIs, T20s and the IPL, men's and women's, around 5 million balls from December 2001 onward, with the full match and player tables beside it.

Over the last seven days the surface served more than 110,000 API calls and more than 1,700 file downloads, about 40 GB in all.

One file accounts for more than half of those bytes. The complete mutual fund NAV history in Parquet was pulled 135 times, and at 178 MB a copy that single file is over 23 GB of the total. People are taking the entire database in one go and querying it on their own machine.

That is the part I did not expect when I started publishing these files. I assumed the API would carry the load and the downloads would be occasional. The bytes say the opposite.

Four ways in. Call the REST API. Point an MCP client at it. Run SQL against the cricket endpoint. Or take a whole table as CSV, Parquet, SQLite or DuckDB and work offline.

For you: tigzig.com/apis

For your agent: api.tigzig.com

What sits behind those four names

Mutual fund NAVs, every Indian scheme AMFI has published since April 2006, about 3.74 crore rows including matured and merged schemes.

Cricket, ball by ball, every delivery in men's and women's internationals plus the IPL, with match info, playing elevens and a person registry.

Macro, credit and markets, 300+ indicators covering US and India macro, credit stress, valuation and currencies, each carrying its own notes on annualisation and sign conventions.

India company signals, the filings side, credit ratings, insider trades, promoter pledge, encumbrance, takeover and SAST, surveillance flags and related party transactions.

Every table has a downloads manifest with row counts and a generated_at stamp, so a script can check whether anything changed before pulling again.

If you are going to take the files

Two practical notes for anyone pulling the bulk files.

Read the manifest first. It carries the row count, the byte size and a generated_at stamp for every file, so your job can decide whether to download at all. The files also honour If-None-Match and If-Modified-Since and return 304 when nothing has changed.

Pick the format for the job. Parquet is the smallest and DuckDB and Polars can query it remotely with range requests, so you can pull a few columns without the whole file. SQLite and DuckDB come as a single database if you want every table in one place. CSV is there when something downstream insists on it.

The refresh runs every day, so a daily job and one file gets you the same data a few thousand API calls would.


Working on something similar? How I work covers the rates, the availability and what I take on.