# Cricket Sabermetrics API — Jenko Analytics (`jenko_systems/cricket-sabermetrics`) Actor

Modern cricket analytics beyond batting average. 9 analysis modes covering Tests, ODIs, T20Is, IPL, BBL, SA20 and more — with head-to-head, venue masters, pressure situations, era comparison and JTM match prediction.

- **URL**: https://apify.com/jenko\_systems/cricket-sabermetrics.md
- **Developed by:** [Jenko Systems](https://apify.com/jenko_systems) (community)
- **Categories:** Integrations, Automation
- **Stats:** 1 total users, 0 monthly users, 93.8% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.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.

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

## 🏏 Cricket Sabermetrics — Jenko Analytics Cricket Edition v1.0

**Modern cricket analytics that goes far beyond batting average.** Powered by Cricsheet's ball-by-ball ODC-BY data and **12 Jenko proprietary metrics** designed to measure the "invisible greatness" traditional stats miss.

***

### 🇬🇧 English

#### What you get

9 analysis modes, all calibrated with **12 Jenko proprietary metrics**:

| # | Metric | Measures |
|---|--------|----------|
| 1 | **JBI** | Jenko Batting Impact — composite batting greatness (format-aware) |
| 2 | **JBO** | Jenko Bowling Opposition — composite bowling greatness |
| 3 | **JCG** | Jenko Crease Generalship — the "Williamson/Dravid effect" |
| 4 | **JPI** | Jenko Pressure Index — performance under high stakes |
| 5 | **JOM** | Jenko Opposition Mastery — performance vs elite teams |
| 6 | **JEA** | Jenko Era-Adjusted — player vs era median |
| 7 | **JCM** | Jenko Conditions Mastery — venue/conditions specialist |
| 8 | **JTR** | Jenko Transfer Rating — bowler-fatigue created |
| 9 | **JWP** | Jenko Win Probability — contribution to team wins |
| 10 | **JCC** | Jenko Career Curve — sustained-excellence trajectory |
| 11 | **JCH** | Jenko Captaincy Halo — performance differential as captain |
| 12 | **JTM** | Jenko Team Matchup — A vs B win probability |

**Every metric inline:** formula, weighted breakdown, verdict scale, real benchmarks.

#### Modes available

| Mode | Metric(s) | Use case |
|------|-----------|----------|
| `player_jenko_profile` | JBI, JBO, JCG, JCC, JPI, JOM | Complete player report card |
| `player_h2h_jenko` | JBI comparison | Side-by-side two players |
| `match_jenko_breakdown` | JBI/JBO per innings | Full scorecard with metrics |
| `team_jenko_strength` | JBI/JBO on depth/firepower | Team analysis |
| `era_compare` | JEA leaderboard | Compare players across eras |
| `tournament_analytics` | JBI/JBO on leaders | Tournament-wide leaders |
| `pressure_situations_analysis` | JPI leaderboard | Clutch performers |
| `conditions_specialist_finder` | JCM | Venue/conditions masters |
| `match_predictor` | JTM | Team A vs B win probability |

#### Coverage (modern era, Cricsheet)

| Competition | Volume |
|------------|--------|
| Test Matches (M + F) | 877 matches, Dec 2001+ |
| ODIs (M + F) | 2,530 matches, Jun 2002+ |
| T20Is (M + F) | Entire era 2005+ |
| IPL | 1,219 matches, 2008+ |
| WPL, BBL, WBBL, SA20, CSA T20, T20 Blast, The Hundred | Complete |

#### Quick examples

**V Kohli's IPL profile with all metrics:**

```json
{"mode": "player_jenko_profile", "player_name": "V Kohli", "tournament": "ipl"}
```

**Mumbai Indians vs CSK at Wankhede:**

```json
{"mode": "match_predictor", "team_name": "Mumbai Indians", "team_name_b": "Chennai Super Kings", "venue": "Wankhede", "tournament": "ipl"}
```

**Who masters Wankhede:**

```json
{"mode": "conditions_specialist_finder", "venue": "Wankhede", "tournament": "ipl", "min_innings": 10}
```

#### Pricing

**US$ 5 / 1,000 records returned.** No subscription, no minimum.

#### Attribution

Underlying data from **Cricsheet** (cricsheet.org), maintained by Stephen Rushe, under **ODC-BY 1.0**. This actor adds value through Jenko Systems' proprietary analytics.

***

### 🇧🇷 Português

#### O que você ganha

9 modos de análise com **12 métricas Jenko proprietárias**:

| # | Métrica | O que mede |
|---|---------|------------|
| 1 | **JBI** | Jenko Batting Impact — grandeza completa do batter (sensível ao formato) |
| 2 | **JBO** | Jenko Bowling Opposition — grandeza completa do bowler |
| 3 | **JCG** | Jenko Crease Generalship — o "efeito Williamson/Dravid" |
| 4 | **JPI** | Jenko Pressure Index — performance sob alta pressão |
| 5 | **JOM** | Jenko Opposition Mastery — performance vs times elite |
| 6 | **JEA** | Jenko Era-Adjusted — jogador vs mediana da era |
| 7 | **JCM** | Jenko Conditions Mastery — especialista em venue/condições |
| 8 | **JTR** | Jenko Transfer Rating — cansaço de bowler criado |
| 9 | **JWP** | Jenko Win Probability — contribuição pra vitórias |
| 10 | **JCC** | Jenko Career Curve — trajetória de excelência sustentada |
| 11 | **JCH** | Jenko Captaincy Halo — diferencial como capitão |
| 12 | **JTM** | Jenko Team Matchup — probabilidade A vs B |

**Cada métrica inline:** fórmula, breakdown ponderado, escala de veredicto, benchmarks reais.

#### Preço

**US$ 5 / 1.000 records retornados.** Sem mensalidade, sem mínimo.

#### Atribuição

Dados via **Cricsheet** (cricsheet.org), sob licença **ODC-BY 1.0**. Esta API agrega valor através das análises proprietárias da Jenko Systems.

***

### 🛠️ Local development

```bash
pip install -r requirements.txt
echo '{"mode": "player_jenko_profile", "player_name": "V Kohli", "tournament": "ipl"}' > input.json
python -m src.main
```

ZIPs are cached at `~/.cache/cricsheet/` to speed iteration.

***

Built by [Jenko Systems](https://jenkosystems.com). Source code proprietary. Data ODC-BY 1.0.

# Actor input Schema

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

Which analysis to run. Each mode has its own required fields below.

## `tournament` (type: `string`):

Which competition to load. Specifying a single one is much faster than 'all'.

## `format` (type: `string`):

Optional: restrict to a format when tournament='all'.

## `player_name` (type: `string`):

Used by player\_jenko\_profile and player\_h2h\_jenko. Cricsheet uses initial+surname format (e.g., 'V Kohli', 'SR Tendulkar'). Fuzzy match supported.

## `player_name_b` (type: `string`):

Used by player\_h2h\_jenko mode only.

## `team_name` (type: `string`):

Used by team\_jenko\_strength and match\_predictor. Examples: 'India', 'Mumbai Indians', 'Chennai Super Kings'.

## `team_name_b` (type: `string`):

Used by match\_predictor mode only.

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

Used by conditions\_specialist\_finder and match\_predictor. Partial match accepted (e.g., 'Wankhede', 'Chinnaswamy').

## `match_id` (type: `string`):

Used by match\_jenko\_breakdown. Example: '335982' (first IPL match ever).

## `min_innings` (type: `integer`):

Used by leaderboard-style modes to filter out small samples. Default varies by mode.

## `date_from` (type: `string`):

Used by tournament\_analytics to restrict to a date range. ISO format: YYYY-MM-DD.

## `date_to` (type: `string`):

Used by tournament\_analytics to restrict to a date range. ISO format: YYYY-MM-DD.

## Actor input object example

```json
{
  "mode": "player_jenko_profile",
  "tournament": "ipl",
  "format": "all",
  "player_name": "V Kohli",
  "player_name_b": "RG Sharma",
  "team_name": "Mumbai Indians",
  "team_name_b": "Chennai Super Kings",
  "venue": "Wankhede",
  "match_id": "335982",
  "min_innings": 10,
  "date_from": "2020-01-01",
  "date_to": "2024-12-31"
}
```

# Actor output Schema

## `dataset_url` (type: `string`):

Link to the dataset with all analysis records

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jenko_systems/cricket-sabermetrics").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("jenko_systems/cricket-sabermetrics").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 '{}' |
apify call jenko_systems/cricket-sabermetrics --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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