Test Cricket Is Now Live in the Tigzig Open Cricket Database, Alongside T20 and ODI. 3.8 Million Deliveries.
Published: August 25, 2026
Test cricket is now live in the Tigzig open cricket database, along with T20 and ODI, ball by ball, DuckDB and Postgres, read only SQL access via API and MCP. ~6,900 matches, 25 yrs+, 3.8 million deliveries. Sourced from Cricsheet.
REST API + MCP server.
Data is refreshed twice a day.
Test goes back to 2001, ODI to 2002, T20 to 2005.
No key, no auth and free.
Docs
Credit: data source Cricsheet, ODC-BY 1.0.
What is in there
Three ball-by-ball tables, one per format, plus a match_info table that carries venue, dates, teams, toss and result. They all join on match_id. Every delivery has the striker, the non-striker, the bowler, the runs off the bat, the extras broken out, and the wicket if there was one.
Because it is ball by ball and not pre-aggregated, anything you can write in SQL over deliveries is open to you. Strike rate against pace versus spin, run rates through the death overs, how a particular ground behaves batting first, head to head between two teams over a decade.
One thing I added with Test
There are now over_no and delivery_in_over columns, both plain whole numbers. The older ball column packs the over and the delivery into one decimal, and it has a catch: the tenth delivery of an over is written 1.10 at the source, which as a decimal is the same value as 1.1, the first delivery. So in long overs two rows share a value and sorting by it puts them in the wrong order. The new columns cannot run into that. Order by innings, over_no, delivery_in_over and you get the innings as it was bowled.
An over goes past six deliveries more often than you would think, because a wide or a no-ball has to be bowled again. Eight and ten ball overs are ordinary, and the longest in this data ran to 15.