# 🚀 Cricbuzz Ball-by-Ball Scraper · 5,000 Free Balls/Month (`omkar-cloud/cricbuzz-ball-by-ball-scraper`) Actor

Cricbuzz Ball-by-Ball Scraper gets you every delivery ⚡ fast, 🎯 100% accurate and 🔍 ridiculously detailed — runs, wickets, boundaries, batter & bowler figures at that ball and the commentary, for any match. 💰 $1 per 1,000 deliveries, no start fee. Scrape your first 5,000 balls free every month 🚀

- **URL**: https://apify.com/omkar-cloud/cricbuzz-ball-by-ball-scraper.md
- **Developed by:** [Omkar Cloud](https://apify.com/omkar-cloud) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 delivery scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Cricbuzz Ball-by-Ball Scraper

Cricbuzz Ball-by-Ball Scraper by Omkar Cloud gets you 🎯 accurate, 🔍 detailed Cricbuzz ball-by-ball data.

Every run reads Cricbuzz live — so you get every delivery of any match, in the order it was bowled, with runs, wickets, boundaries, the batter's and bowler's figures at that ball and the commentary, one row per delivery, and can successfully complete your project.

**$1 per 1,000 deliveries.** And with Apify's free plan you get $5 of credit every month, so your first **5,000 balls each month are free** — about 20 T20 matches.

This is an excellent Actor made by Omkar Cloud, which is Rated Excellent — [4.7 based on 30 reviews on Trustpilot](https://www.trustpilot.com/review/omkar.cloud).

👉 [**Try Cricbuzz Ball-by-Ball Scraper free**](https://apify.com/omkar-cloud/cricbuzz-ball-by-ball-scraper) — your first 5,000 balls are Free.

### What can I get

- 🏏 **Every delivery of every innings** — about 250 rows for a T20, 600 for an ODI and well over 1,000 for a Test, in bowling order, wides and no-balls included
- 🎯 **What happened on the ball** — runs, runs off the bat, the team score after it, and flags for wickets, fours and sixes, plus milestones and DRS reviews
- 📈 **Live player figures** — the batter's runs, balls, fours, sixes and strike rate, and the bowler's overs, runs, wickets and economy, as they stood at that ball
- 🗣️ **The commentary** — Cricbuzz's text for every delivery
- 🧾 **Match context on every row** — match, format, both teams, series, venue and the result, so rows from many matches join cleanly

### Why Cricbuzz Ball-by-Ball Scraper

Most other cricket scrapers fail you in one of four ways:

- 🧩 **Scorecards, not balls** — none of the other Cricbuzz Actors returns ball-by-ball data
- 💸 **Five times the price** — the only other ball-by-ball Actor charges $5 per 1,000 deliveries
- 🔢 **Numbers without context** — no batter or bowler figures at the ball, no commentary
- 🪦 **Works today, breaks next month** — nobody maintains it

Cricbuzz Ball-by-Ball Scraper is read live on every run, priced honestly with no start fee, and actively maintained.

### Input

| Field | What it does |
|---|---|
| **Matches** | Cricbuzz match ids (`155409`) or cricbuzz.com match URLs — every delivery becomes a row |
| **Max Deliveries** | Cost control for the whole run — 1,000 deliveries = $1 |

### Example: The Ball That Won IPL 2026

```json
{
  "source_input": "155409",
  "match": {
    "id": 155409,
    "description": "Final",
    "format": "T20",
    "status": "Royal Challengers Bengaluru won by 5 wkts",
    "team1": {
      "id": 59,
      "name": "Royal Challengers Bengaluru",
      "short_name": "RCB"
    },
    "team2": {
      "id": 971,
      "name": "Gujarat Titans",
      "short_name": "GT"
    },
    "series": {
      "id": 9241,
      "name": "Indian Premier League 2026"
    },
    "venue": {
      "name": "Narendra Modi Stadium",
      "city": "Ahmedabad"
    }
  },
  "innings_id": 2,
  "batting_team": "RCB",
  "over": 17.6,
  "ball_number": 108,
  "runs": 6,
  "legal_runs": 6,
  "team_score": 161,
  "is_wicket": false,
  "is_four": false,
  "is_six": true,
  "events": [
    "over-break",
    "six"
  ],
  "batter": {
    "id": 1413,
    "name": "Virat Kohli",
    "runs": 75,
    "balls": 42,
    "fours": 9,
    "sixes": 3,
    "dots": 10,
    "minutes": 94,
    "strike_rate": 178.57
  },
  "bowler": {
    "id": 18637,
    "name": "Arshad Khan",
    "overs": 4,
    "maidens": 0,
    "runs": 32,
    "wickets": 1,
    "economy": 8,
    "wides": 0,
    "no_balls": 0
  },
  "text": "Arshad Khan to Virat Kohli, SIX, Kohli fittingly hits the winning runs! It's a maximum to wrap up the proceedings from RCB's poster boy. Full and in the slot, Kohli brings his bottom hand into play to thump it over long-on. RCB win by 5 wickets and claim their second IPL title. Ee Sala Kooda Cup Namdu!",
  "time": "2026-05-31T17:56:11Z"
}
```

### Get Started with 5,000 Free Balls

1. [Open Cricbuzz Ball-by-Ball Scraper](https://apify.com/omkar-cloud/cricbuzz-ball-by-ball-scraper) — the form comes pre-filled with the IPL 2026 final.
2. Add your own matches and click **Start**.
3. Download the results as JSON, CSV or Excel 😎.

### Pricing

**$1 per 1,000 deliveries. No start fee.** You pay for the rows you get, nothing else.

| What you scrape | Price |
|---|---|
| Delivery row — runs, events, batter and bowler figures, commentary, match context | **$0.001** each — $1 per 1,000 |
| Actor start | **$0** |

Apify's free plan gives you $5 of credit every month, so **5,000 deliveries are free every month**. A full T20 costs about $0.25 and an ODI about $0.60; a Test is billed by the balls actually bowled, so rarely more than $2.70.

### Run It from Code

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('omkar-cloud/cricbuzz-ball-by-ball-scraper').call({
    matches: ['155409'],               // the IPL 2026 final
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((ball) => ball.is_six).length, 'sixes');
```

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("omkar-cloud/cricbuzz-ball-by-ball-scraper").call(run_input={
    "matches": ["https://www.cricbuzz.com/live-cricket-scores/155409/rcb-vs-gt-final-indian-premier-league-2026"],
})

for ball in client.dataset(run["defaultDatasetId"]).iterate_items():
    if ball["is_wicket"]:
        print(ball["over"], ball["text"])
```

### FAQ

**Which matches can I scrape?**
Any match Cricbuzz covers ball by ball — Tests, ODIs, T20Is, the IPL and other leagues, domestic and women's cricket.

**What does a run cost?**
$1 per 1,000 deliveries and no start fee. Set **Max Deliveries** to cap any run.

**Does it work on live matches?**
Yes. A live match returns every ball bowled so far; run it again later for the rest.

**Are wides and no-balls included?**
Yes. Every delivery is a row, so a wide and the re-bowled ball are two rows in the order they happened.

**Do I need proxies or a Cricbuzz account?**
No. The Actor handles everything.

**What if a match has not started?**
It returns no deliveries, and you are not charged for it.

### Popular Actors by Omkar Cloud

- [**Cricbuzz Scraper**](https://apify.com/omkar-cloud/cricbuzz-scraper) — live scores, results, fixtures & full scorecards
- [**Cricbuzz Players Scraper**](https://apify.com/omkar-cloud/cricbuzz-players-scraper) — player profiles with career stats and ICC rankings
- [**Sofascore Scraper**](https://apify.com/omkar-cloud/sofascore-scraper) — live scores, fixtures & results for 26 sports
- [**Transfermarkt Scraper**](https://apify.com/omkar-cloud/transfermarkt-scraper) — football players with market values & transfers
- [**IMDb Scraper**](https://apify.com/omkar-cloud/imdb-scraper) — titles, ratings, cast & box office

### 💬 Have Questions? We Have Answers.

You're a developer — we know how hard completing a project can be. So we offer full support: just message us and we'll reply ✅ with a solution within 1 working day.

[![Message Us on WhatsApp](https://raw.githubusercontent.com/omkarcloud/assets/master/images/whatsapp-us.png)](https://api.whatsapp.com/send?phone=918178804274\&text=I%20need%20help%20with%20using%20the%20Cricbuzz%20Ball-by-Ball%20Scraper%20Actor.)

[![Ask Us on Email](https://raw.githubusercontent.com/omkarcloud/assets/master/images/ask-on-email.png)](mailto:happy.to.help@omkar.cloud?subject=Help%20with%20Cricbuzz%20Ball-by-Ball%20Scraper%20Actor\&body=I%20need%20help%20with%20using%20the%20Cricbuzz%20Ball-by-Ball%20Scraper%20Actor.)

You are important to us — just message us and we will solve your problem ✅ within 1 working day. 🩷 Pinky Promise 🤙!

# Actor input Schema

## `matches` (type: `array`):

Cricbuzz match ids like `155409` (the IPL 2026 final) or pasted cricbuzz.com match URLs like `https://www.cricbuzz.com/live-cricket-scores/155409/rcb-vs-gt-final-indian-premier-league-2026` — the form is auto-detected.

## `maxResults` (type: `integer`):

Maximum number of deliveries to scrape in the whole run. Use this to control your cost (1,000 deliveries = $1).

## Actor input object example

```json
{
  "matches": [
    "155409"
  ],
  "maxResults": 1000
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "matches": [
        "155409"
    ],
    "maxResults": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("omkar-cloud/cricbuzz-ball-by-ball-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 = {
    "matches": ["155409"],
    "maxResults": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("omkar-cloud/cricbuzz-ball-by-ball-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "matches": [
    "155409"
  ],
  "maxResults": 1000
}' |
apify call omkar-cloud/cricbuzz-ball-by-ball-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,omkar-cloud/cricbuzz-ball-by-ball-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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