API Docs
Login Get API Key

API Documentation

Play Pitch Cricket Data API — v1

Get API Key
Register for an API key to see your token pre-filled in all code examples.

Overview

The Play Pitch Cricket Data API gives you access to live and historical cricket match data including live scores, ball-by-ball commentary, player statistics, teams, and venues.

Base URL
https://login.playproskill.fun/cricket-api/v1
Version
v1
Format
JSON
Methods
GET only

Authentication

Every request must include your API key as a Bearer token in the Authorization header.

HTTP Header
Authorization: Bearer YOUR_API_TOKEN

You can also pass the key via the X-API-Key header as an alternative.

Example — cURL

cURL
curl "https://login.playproskill.fun/cricket-api/v1/matches" \
     -H "Authorization: Bearer YOUR_API_TOKEN"

Example — JavaScript (fetch)

JavaScript
const res = await fetch('https://login.playproskill.fun/cricket-api/v1/matches', {
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN'
  }
});
const data = await res.json();

Example — PHP

PHP
$ch = curl_init('https://login.playproskill.fun/cricket-api/v1/matches');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = json_decode(curl_exec($ch), true);

Rate Limits

Limits are applied per day and reset at midnight (server time). Every response includes rate limit headers:

HeaderDescription
X-RateLimit-LimitYour daily request allowance
X-RateLimit-UsedRequests used today (including this request)
X-RateLimit-RemainingRequests left for today
X-RateLimit-ResetUnix timestamp when the limit resets (midnight)
When you exceed the daily limit the API returns HTTP 429 with {"status":false,"error":"Daily request limit reached..."}
Plan Limits
Starter
1,000/day
5,000/mo
Pro
5,000/day
10,000/mo
Business
10,000/day
20,000/mo
Unlimited
Unlimited
100,000/mo

Errors

All errors return {"status": false, "error": "message"}

HTTP CodeMeaning
200Success
400Bad request — missing or invalid parameter
401Unauthorized — missing or invalid API key
403Forbidden — account suspended or token expired
404Resource not found
429Daily rate limit exceeded

API Status

GET /status

Check if the API is alive and verify your token is valid. Good for health checks.

Request
GET https://login.playproskill.fun/cricket-api/v1/status
Authorization: Bearer YOUR_API_TOKEN
Response 200
{
  "status": true,
  "data": {
    "api":     "Play Pitch Cricket Data API",
    "version": "v1",
    "user":    "Your Name",
    "plan":    "Pro",
    "quota":   { "limit": 5000, "used_today": 42, "remaining": 4958 }
  }
}

Matches

GET /matches

List all matches with optional filters.

ParameterTypeDescription
status optionalstringupcoming | live | completed
page optionalintPage number (default: 1)
per_page optionalintResults per page (max: 100, default: 20)
cURL
curl "https://login.playproskill.fun/cricket-api/v1/matches?status=live" \
     -H "Authorization: Bearer YOUR_API_TOKEN"
Response 200
{
  "status": true,
  "data": [
    {
      "id":           1,
      "title":        "CSK vs MI - Match 14",
      "team1":        { "id": 1, "name": "Chennai Super Kings", "short": "CSK" },
      "team2":        { "id": 2, "name": "Mumbai Indians",      "short": "MI"  },
      "venue":        { "id": 3, "name": "Wankhede Stadium", "city": "Mumbai" },
      "match_date":   "2025-04-10",
      "match_time":   "19:30:00",
      "status":       "live",
      "result_text":  null
    }
  ],
  "meta": { "total": 48, "page": 1, "per_page": 20, "pages": 3 }
}

GET /matches/{id}

Get full details of a single match including live scores.

cURL
curl "https://login.playproskill.fun/cricket-api/v1/matches/1" \
     -H "Authorization: Bearer YOUR_API_TOKEN"
Response 200
{
  "status": true,
  "data": {
    "id":          1,
    "title":       "CSK vs MI - Match 14",
    "team1":       { "id": 1, "name": "Chennai Super Kings", "short": "CSK", "logo": "https://..." },
    "team2":       { "id": 2, "name": "Mumbai Indians", "short": "MI", "logo": "https://..." },
    "venue":       { "id": 3, "name": "Wankhede Stadium", "city": "Mumbai" },
    "match_date":  "2025-04-10",
    "match_time":  "19:30:00",
    "status":      "live",
    "current_innings": 2,
    "current_over":    13,
    "current_ball":    2,
    "on_strike":       "Virat Kohli",
    "non_striker":     "KL Rahul",
    "bowler":          "Jasprit Bumrah",
    "team_a": { "id": 1, "name": "CSK", "short": "CSK", "score": 185, "wickets": 6, "overs": 20.0 },
    "team_b": { "id": 2, "name": "MI",  "short": "MI",  "score": 102, "wickets": 4, "overs": 13.2 },
    "rates": {
      "crr":    7.73,
      "rrr":    10.46,
      "target": 186
    },
    "result_text": null,
    "winner":      null
  }
}
FieldTypeDescription
rates.crrfloatCurrent Run Rate of the batting team this innings
rates.rrrfloatRequired Run Rate to win — present only in 2nd innings
rates.targetintTarget score for chasing team — present only in 2nd innings

Scorecard

GET /matches/{id}/scorecard

Full batting and bowling scorecard for both innings.

cURL
curl "https://login.playproskill.fun/cricket-api/v1/matches/1/scorecard" \
     -H "Authorization: Bearer YOUR_API_TOKEN"
Response 200
{
  "status": true,
  "data": {
    "innings": [
      {
        "innings":        1,
        "total_runs":     185,
        "total_wickets":  6,
        "overs_faced":    20.0,
        "crr":            9.25,
        "overs": [
          {
            "over": 1,
            "balls": [
              { "ball": 1, "batsman": "Ruturaj Gaikwad", "bowler": "Bumrah", "runs": 1,
                "is_wicket": false, "is_wide": false, "is_no_ball": false,
                "is_four": false, "is_six": false, "is_dot": false, "outcome": "1", "commentary": null }
            ]
          }
        ]
      },
      {
        "innings":        2,
        "total_runs":     102,
        "total_wickets":  4,
        "overs_faced":    13.2,
        "crr":            7.73,
        "target":         186,
        "rrr":            10.46,
        "overs": [ "..." ]
      }
    ]
  }
}
FieldTypeDescription
crrfloatCurrent Run Rate — runs scored per over in this innings
rrrfloatRequired Run Rate — runs needed per over to win (innings 2 only)
targetintTarget score for the chasing team (innings 2 only)
overs_facedfloatOvers completed in this innings (e.g. 13.2 = 13 overs 2 balls)

Ball by Ball

GET /matches/{id}/ball-by-ball

Delivery-by-delivery log for the match. Supports pagination.

ParameterTypeDescription
innings optionalint1 or 2 — filter by innings
page optionalintPage number
per_page optionalintDeliveries per page (max 100)
cURL
curl "https://login.playproskill.fun/cricket-api/v1/matches/1/ball-by-ball?innings=2" \
     -H "Authorization: Bearer YOUR_API_TOKEN"
Response 200
{
  "status": true,
  "data": [
    {
      "over":        13,
      "ball":        3,
      "runs":        4,
      "is_wicket":   false,
      "is_wide":     false,
      "is_no_ball":  false,
      "batsman":     "Rohit Sharma",
      "bowler":      "Deepak Chahar",
      "commentary":  "Rohit drives through covers for FOUR!",
      "score_after": "MI 102/4 (13.3)"
    }
  ],
  "meta": { "total": 82, "page": 1, "per_page": 20, "pages": 5 }
}

Players

GET /players

ParameterTypeDescription
search optionalstringSearch by name
page optionalintPage number
cURL
curl "https://login.playproskill.fun/cricket-api/v1/players?search=Rohit" \
     -H "Authorization: Bearer YOUR_API_TOKEN"
Response 200
{
  "status": true,
  "data": [
    {
      "id":         5,
      "name":       "Rohit Sharma",
      "role":       "Batsman",
      "batting_style": "Right-hand bat",
      "bowling_style": "Right-arm offbreak",
      "nationality": "India",
      "photo":      "https://..."
    }
  ]
}

GET /players/{id}

Get a single player's full profile.

cURL
curl "https://login.playproskill.fun/cricket-api/v1/players/5" \
     -H "Authorization: Bearer YOUR_API_TOKEN"

Teams

GET /teams

List all teams.

cURL
curl "https://login.playproskill.fun/cricket-api/v1/teams" \
     -H "Authorization: Bearer YOUR_API_TOKEN"
Response 200
{
  "status": true,
  "data": [
    { "id": 1, "name": "Chennai Super Kings", "short_name": "CSK", "logo": "https://..." },
    { "id": 2, "name": "Mumbai Indians",       "short_name": "MI",  "logo": "https://..." }
  ]
}

Venues

GET /venues

cURL
curl "https://login.playproskill.fun/cricket-api/v1/venues" \
     -H "Authorization: Bearer YOUR_API_TOKEN"
Response 200
{
  "status": true,
  "data": [
    { "id": 1, "name": "MA Chidambaram Stadium", "city": "Chennai", "country": "India", "capacity": 50000 }
  ]
}

Response Format

All responses are JSON with a consistent structure:

Success
{ "status": true, "data": { ... }, "meta": { ... } }
Error
{ "status": false, "error": "Description of the error" }

The meta field appears only on paginated list endpoints.