Play Pitch Cricket Data API — v1
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.
https://login.playproskill.fun/cricket-api/v1Every request must include your API key as a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_TOKEN
You can also pass the key via the X-API-Key header as an alternative.
curl "https://login.playproskill.fun/cricket-api/v1/matches" \
-H "Authorization: Bearer YOUR_API_TOKEN"
const res = await fetch('https://login.playproskill.fun/cricket-api/v1/matches', {
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN'
}
});
const data = await res.json();
$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);
Limits are applied per day and reset at midnight (server time). Every response includes rate limit headers:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Your daily request allowance |
| X-RateLimit-Used | Requests used today (including this request) |
| X-RateLimit-Remaining | Requests left for today |
| X-RateLimit-Reset | Unix timestamp when the limit resets (midnight) |
{"status":false,"error":"Daily request limit reached..."}All errors return {"status": false, "error": "message"}
| HTTP Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — missing or invalid parameter |
| 401 | Unauthorized — missing or invalid API key |
| 403 | Forbidden — account suspended or token expired |
| 404 | Resource not found |
| 429 | Daily rate limit exceeded |
Check if the API is alive and verify your token is valid. Good for health checks.
GET https://login.playproskill.fun/cricket-api/v1/status Authorization: Bearer YOUR_API_TOKEN
{
"status": true,
"data": {
"api": "Play Pitch Cricket Data API",
"version": "v1",
"user": "Your Name",
"plan": "Pro",
"quota": { "limit": 5000, "used_today": 42, "remaining": 4958 }
}
}
List all matches with optional filters.
| Parameter | Type | Description |
|---|---|---|
| status optional | string | upcoming | live | completed |
| page optional | int | Page number (default: 1) |
| per_page optional | int | Results per page (max: 100, default: 20) |
curl "https://login.playproskill.fun/cricket-api/v1/matches?status=live" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"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 full details of a single match including live scores.
curl "https://login.playproskill.fun/cricket-api/v1/matches/1" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"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
}
}
| Field | Type | Description |
|---|---|---|
| rates.crr | float | Current Run Rate of the batting team this innings |
| rates.rrr | float | Required Run Rate to win — present only in 2nd innings |
| rates.target | int | Target score for chasing team — present only in 2nd innings |
Full batting and bowling scorecard for both innings.
curl "https://login.playproskill.fun/cricket-api/v1/matches/1/scorecard" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"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": [ "..." ]
}
]
}
}
| Field | Type | Description |
|---|---|---|
| crr | float | Current Run Rate — runs scored per over in this innings |
| rrr | float | Required Run Rate — runs needed per over to win (innings 2 only) |
| target | int | Target score for the chasing team (innings 2 only) |
| overs_faced | float | Overs completed in this innings (e.g. 13.2 = 13 overs 2 balls) |
Delivery-by-delivery log for the match. Supports pagination.
| Parameter | Type | Description |
|---|---|---|
| innings optional | int | 1 or 2 — filter by innings |
| page optional | int | Page number |
| per_page optional | int | Deliveries per page (max 100) |
curl "https://login.playproskill.fun/cricket-api/v1/matches/1/ball-by-ball?innings=2" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"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 }
}
| Parameter | Type | Description |
|---|---|---|
| search optional | string | Search by name |
| page optional | int | Page number |
curl "https://login.playproskill.fun/cricket-api/v1/players?search=Rohit" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"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 a single player's full profile.
curl "https://login.playproskill.fun/cricket-api/v1/players/5" \
-H "Authorization: Bearer YOUR_API_TOKEN"
List all teams.
curl "https://login.playproskill.fun/cricket-api/v1/teams" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"status": true,
"data": [
{ "id": 1, "name": "Chennai Super Kings", "short_name": "CSK", "logo": "https://..." },
{ "id": 2, "name": "Mumbai Indians", "short_name": "MI", "logo": "https://..." }
]
}
curl "https://login.playproskill.fun/cricket-api/v1/venues" \
-H "Authorization: Bearer YOUR_API_TOKEN"
{
"status": true,
"data": [
{ "id": 1, "name": "MA Chidambaram Stadium", "city": "Chennai", "country": "India", "capacity": 50000 }
]
}
All responses are JSON with a consistent structure:
{ "status": true, "data": { ... }, "meta": { ... } }
{ "status": false, "error": "Description of the error" }
The meta field appears only on paginated list endpoints.
List endpoints support pagination via page and per_page query parameters.
| Field | Description |
|---|---|
| meta.total | Total number of records |
| meta.page | Current page number |
| meta.per_page | Records per page |
| meta.pages | Total number of pages |
GET https://login.playproskill.fun/cricket-api/v1/matches?page=2&per_page=10