# Cricsheet Cricket Match Data Scraper (`parseforge/cricsheet-scraper`) Actor

Scrape cricket match data from Cricsheet including Test, ODI, T20I, IPL, BBL, PSL, CPL, The Hundred and more. Returns structured match metadata: teams, winner, venue, toss, player-of-match. No API key required.

- **URL**: https://apify.com/parseforge/cricsheet-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** News, Business, Automation
- **Stats:** 4 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $30.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/main/banners/banner-default.jpg?raw=true)

## 🏏 Cricsheet Cricket Match Data Scraper

> 🚀 **Export cricket match data in seconds.** Pull match summaries or **per-ball delivery records** for **15,000+ matches** across Test, ODI, T20I, IPL, BBL, PSL, CPL, The Hundred, WPL, and World Cups. No sign-up needed.

The **Cricsheet Scraper** pulls structured match records from Cricsheet, the open-source cricket data archive used by analysts, fantasy-cricket developers, and academics worldwide. Two modes share a single input form: **matches** (one row per match with summary plus aggregate stats) or **deliveries** (one row per ball with batter, bowler, runs, and wicket info, the format that makes Cricsheet uniquely valuable).

Coverage spans **15,000+ matches across 16 formats and leagues**: Tests, ODIs, T20Is, IPL, BBL, PSL, CPL, The Hundred, WBBL, WPL, SA20, ILT20, World Cups (men and women), other multi-day, and other one-day cricket. Filter by team, season, gender, or venue and download as CSV, Excel, JSON, or XML in under three minutes.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Fantasy-cricket developers, sports analysts, betting modellers, academic researchers, broadcasters, app developers, podcast statisticians | Player performance modelling, ball-by-ball replay generators, T20 win-probability models, fantasy scoring engines, historical archive apps |

### 📋 What the Cricsheet Scraper does

Six filtering inputs combine in a single run:

- 📊 **Output mode.** Match summaries (one row per match) or per-ball deliveries (one row per ball, the headline value of Cricsheet).
- 🏆 **Match type / league.** Tests, ODIs, T20Is, IPL, BBL, PSL, CPL, The Hundred, WBBL, WPL, SA20, ILT20, multi-day, one-day, World Cups, or "recently added" for the latest 30.
- 🏏 **Team filter.** Case-insensitive substring match on team name.
- 📅 **Season filter.** Restrict to a specific season or year (e.g. `2024`, `2023/24`).
- 🚹 **Gender filter.** Men's, women's, or both.
- 🏟️ **Venue filter.** Case-insensitive substring match on venue (e.g. `Eden Gardens`).

Match-summary records carry teams, winner, win margin (runs/wickets/innings), result, toss winner and decision, player of the match, total runs scored across innings, total wickets, and run rate per over. Per-ball delivery records carry batter, bowler, non-striker, runs scored, extras type, boundary flag, wicket flag, dismissal kind, and player out.

> 💡 **Why it matters:** Cricsheet's per-ball data unlocks ball-by-ball win-probability models, fantasy scoring engines, and replay generators. Building this pipeline yourself means downloading per-format archives, unpacking JSONs, and writing per-format parsers. This Actor handles it all on every run.

### 📊 Data fields

Each record includes: `balls_per_over`, `city`, `eliminator`, `event_group`, `event_match_number`, `event_name`, `gender`, `match_date`, `match_dates`, `match_id`, `match_type`, `match_type_number`, `method`, `overs`, `player_of_match`, `result`, `runRatePerOver`, `scrapedAt`, `season`, `team_type`, `teams`, `toss_decision`, `toss_winner`, `totalRunsScored`, `totalWickets`, `url`, `venue`, `win_by_runs`, `win_by_wickets`, `winner`. All 30 field names come from a real production run, so what you see here is what lands in your dataset.

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the Cricsheet Scraper page on the Apify Store.
3. 🎯 **Set input.** Pick a mode (matches or deliveries), choose a format/league, optionally filter by team or season.
4. 🚀 **Run it.** Click **Start** and let the Actor collect your cricket data.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from sign-up to downloaded dataset: **3-5 minutes.** No coding required.

### 🔗 Recommended Actors

- [**⚽ Football Stats Scraper**](https://apify.com/parseforge/football-stats-scraper) - Live and historical football match data
- [**🏀 NBA Stats Scraper**](https://apify.com/parseforge/nba-stats-scraper) - NBA player and team statistics
- [**🎾 ATP Tennis Scraper**](https://apify.com/parseforge/atp-tennis-scraper) - Professional tennis match results
- [**📊 ESPN Stats Scraper**](https://apify.com/parseforge/espn-stats-scraper) - Multi-sport stats and scores
- [**🏟️ Sportradar Scraper**](https://apify.com/parseforge/sportradar-scraper) - Comprehensive sports data feeds

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more reference-data scrapers.

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Cricsheet, the BCCI, ICC, or any cricket league or governing body. All trademarks mentioned are the property of their respective owners. Only publicly available open cricket data is collected.

### 🆘 Need Help?

If you hit a bug, have questions about setup, or need a scraper we haven't built yet, open our [contact form](https://tally.so/r/BzdKgA) or write to parseforge@protonmail.com. We also take on paid custom data projects.

For faster answers, join our [Discord](https://parseforge.co/discord). It's the best place to get support and suggest new actors.

# Actor input Schema

## `mode` (type: `string`):

matches = one row per match (summary + aggregate stats). deliveries = one row per ball with batter, bowler, runs, wicket info — Cricsheet's main value.

## `matchType` (type: `string`):

Cricket format or league. 'Recently added' returns the most recent ~30 matches across all formats.

## `team` (type: `string`):

Only return matches where this team played (case-insensitive, partial allowed). Leave empty for all.

## `season` (type: `string`):

Only return matches from this season/year (e.g. 2024, 2023/24). Leave empty for all.

## `gender` (type: `string`):

Limit to men's or women's matches.

## `venue` (type: `string`):

Substring match against venue name (case-insensitive). Example: 'Eden Gardens'. Leave empty for all venues.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "mode": "matches",
  "matchType": "recently_added_30",
  "gender": "",
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of scraped data

## `fullData` (type: `string`):

Complete dataset

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "matches",
    "matchType": "recently_added_30",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/cricsheet-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "matches",
    "matchType": "recently_added_30",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/cricsheet-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "matches",
  "matchType": "recently_added_30",
  "maxItems": 10
}' |
apify call parseforge/cricsheet-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/cricsheet-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/OAxFOwHu1ReFr1VdF/builds/iwq35yedW3k0VgCIm/openapi.json
