API FUNDAMENTALS

Cricket Data API Guide: Scorecards, Deliveries and Match Context

A cricket data API turns matches, innings, overs and deliveries into structured responses that software can use. The HTTP request is the easy part. The hard part is choosing data whose coverage, identifiers, depth and licence fit the product you want to build.

What does a cricket data API provide?

At minimum, a cricket API gives you competitions, teams, matches and results. A useful one also gives you the full scorecard: every batter's runs, balls and dismissal, and every bowler's overs, runs and wickets.

Cricket is unusual because the scorecard is a summary of a much richer record. Every delivery has a batter, a bowler, runs, extras and sometimes a wicket. With that record you can rebuild the scorecard and much more: over-by-over charts, partnerships, phase splits and batter-versus-bowler history.

  • Matches: teams, toss, venue, officials and result.
  • Scorecards: batting, bowling, extras and fall of wickets.
  • Deliveries: one record per ball, including wides and no-balls.
  • Derived context: overs, partnerships, powerplay and death-over splits.
  • Metadata: source and licence on every response.

Formats change the shape of the data

A Test has up to four innings over five days. A T20 has two innings of 20 overs. The Hundred counts balls, not overs. A good API keeps one schema for all of them and makes the differences explicit, for example a balls-per-over field and an innings number.

Check how an API handles declarations, follow-ons, super overs, rain-reduced matches and no results before you depend on it.

Identity is the hidden problem

The same player can appear as "V Kohli", "Virat Kohli" and "Kohli" across sources. OpenCricket uses the Cricsheet registry, which gives each person one stable identifier. Player IDs in responses look like player_cs_ followed by that registry ID.

EntityID patternExample
Matchmatch_cs_{cricsheet id}match_cs_1535465
Playerplayer_cs_{registry id}player_cs_ba607b88
Teamteam_cs_{slug}team_cs_royal-challengers-bengaluru
Competitioncomp_{slug}comp_indian-premier-league

Frequently asked questions

Is ball-by-ball data the same as live data?

No. Ball-by-ball describes the depth of the record. Live describes how fast it arrives. OpenCricket currently serves complete ball-by-ball history, not a live feed.

Sources and further reading

Product descriptions and examples were checked against the OpenCricketAPI v1 contract on 5 October 2026.