The Full Cricket Database Is Now Downloadable. Test, ODI and T20 Ball by Ball, in Parquet, CSV, DuckDB or SQLite.
Published: August 28, 2026
The full cricket database is now downloadable. Test, ODI and T20 ball by ball, 6,900+ matches from 2001 onwards and 3.8 million+ deliveries. Refreshed twice daily.
Available as:
- One table at a time in Parquet or CSV
- Or the whole database as a single DuckDB or SQLite file
- Download manually
- Or download via a single API call
The files are the same either way. The download files are regenerated immediately as soon as the data is refreshed on the API.
The live SQL access stays as it is. Postgres or DuckDB, REST API or MCP server, same endpoints as before.
Free, no signup, no key.
- for you: tigzig.com/apis/database
- for your agent: db-mcp.tigzig.com/openapi.json
Compliance note, data source: Cricsheet (cricsheet.org), Open Data Commons Attribution License 1.0. TigZig is not affiliated with or endorsed by Cricsheet.
The schema, for anyone going straight to the files
Four tables. Three ball-by-ball tables, one per format, and match_info with the venue, dates, teams, toss, result and officials. They join on match_id.
The columns and the field definitions are Cricsheet's. We add two of our own to the ball-by-ball tables, over_no and delivery_in_over, both whole numbers.
The original ball column packs the over and the delivery into one decimal, so the tenth delivery of an over reads 1.10, which as a decimal is the same value as 1.1, the first delivery. Sort by it inside a long over and the tenth ball comes out in the wrong place. ball is still there and is fine for everything else.
For a key on one delivery use match_id, innings, over_no and delivery_in_over together. actual_delivery looks like it would do that job and does not, since it counts only legal deliveries, so a wide shares its number with the ball that eventually counts.
Full column list and the field definitions, with links back to Cricsheet: db-mcp.tigzig.com/redoc
Refresh, the SQL API, the licence and coverage
On the refresh. Files are rebuilt twice a day. Each one is written under a temporary name and swapped in atomically, so you never download a half-written file. They mirror to Cloudflare R2 and the edge cache is purged on upload, so the new bytes reach you within a few minutes of a rebuild. Downloads are served from Cloudflare R2, from whichever location is closest to you. The manifest publishes the generation time and the exact byte size of every file.
The SQL API stays free and open, on DuckDB and Postgres, and you can go fairly deep with it, CTEs included. There is an allowed set of functions and a cap on query length, so a few things are refused. If you want none of that, download the file and run it locally.
The licence travels with the file, in the parquet footer and in a README beside the database, so it stays attached when a file gets passed on. The canonical copy sits on the page, in the compliance note and at db-mcp.tigzig.com/terms.
Cricsheet withholds matches featuring the Afghanistan men's team and the Afghanistan Premier League. That exclusion is inherited here.

Working on something similar? How I work covers the rates, the availability and what I take on.
The cricket dataset linked here is from Cricsheet, published under the Open Data Commons Attribution License 1.0 (ODC-BY). If you redistribute it, keep the attribution and the licence with it.