Runs and balls left, current and required run rate in a chase
Calculates the current and required run rate in a chase, and runs and balls remaining.
Request
POSThttps://sports-tools.p.apihiver.com/v1/cricket/required-run-rate
JSON object. Required: target, runs, overs_bowled.
Request Body
Edit the values below to test different scenarios.
Parameters and body structure are inherited from this endpoint's definition. Changes here only apply to this test run.
Language
Client
1curl --request POST \
2 --url https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate \
3 --header 'Accept: application/json' \
4 --header 'Content-Type: application/json' \
5 --header 'X-API-Key: YOUR_API_KEY' \
6 --data '{
7 "runs": 90,
8 "target": 180,
9 "overs_bowled": 10
10}'Runs and balls left, current and required run rate in a chase: Sports & Cricket Tools API reference
Calculates the current and required run rate in a chase, and runs and balls remaining. This endpoint is part of the Sports & Cricket Tools API: Tournament fixtures, league tables, Elo ratings and cricket net run rate / required run rate calculators.
Runs and balls left, current and required run rate in a chase: example requests in every language
POST /v1/cricket/required-run-rate in Shell (cURL)
curl --request POST \
--url https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{
"runs": 90,
"target": 180,
"overs_bowled": 10
}'POST /v1/cricket/required-run-rate in Shell (HTTPie)
echo '{
"runs": 90,
"target": 180,
"overs_bowled": 10
}' | \
http POST https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate \
Accept:application/json \
Content-Type:application/json \
X-API-Key:YOUR_API_KEYPOST /v1/cricket/required-run-rate in Shell (Wget)
wget --quiet \
--method POST \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--body-data '{\n "runs": 90,\n "target": 180,\n "overs_bowled": 10\n}' \
--output-document \
- https://sports-tools.p.apihiver.com/v1/cricket/required-run-ratePOST /v1/cricket/required-run-rate in Node.js (http)
const http = require('https');
const options = {
method: 'POST',
hostname: 'sports-tools.p.apihiver.com',
port: null,
path: '/v1/cricket/required-run-rate',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
}
};
const req = http.request(options, function (res) {
const chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
const body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write(JSON.stringify({runs: 90, target: 180, overs_bowled: 10}));
req.end();POST /v1/cricket/required-run-rate in Node.js (Request)
const request = require('request');
const options = {
method: 'POST',
url: 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
},
body: {runs: 90, target: 180, overs_bowled: 10},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});POST /v1/cricket/required-run-rate in Node.js (Unirest)
const unirest = require('unirest');
const req = unirest('POST', 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate');
req.headers({
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
});
req.type('json');
req.send({
runs: 90,
target: 180,
overs_bowled: 10
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});POST /v1/cricket/required-run-rate in Node.js (Axios)
const axios = require('axios').default;
const options = {
method: 'POST',
url: 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
},
data: {runs: 90, target: 180, overs_bowled: 10}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}POST /v1/cricket/required-run-rate in Node.js (Fetch)
const fetch = require('node-fetch');
const url = 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
},
body: '{"runs":90,"target":180,"overs_bowled":10}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}POST /v1/cricket/required-run-rate in JavaScript (XMLHttpRequest)
const data = JSON.stringify({
runs: 90,
target: 180,
overs_bowled: 10
});
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('POST', 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('X-API-Key', 'YOUR_API_KEY');
xhr.send(data);POST /v1/cricket/required-run-rate in JavaScript (Axios)
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
},
data: {runs: 90, target: 180, overs_bowled: 10}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}POST /v1/cricket/required-run-rate in JavaScript (Fetch)
const url = 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
},
body: '{"runs":90,"target":180,"overs_bowled":10}'
};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}POST /v1/cricket/required-run-rate in JavaScript (jQuery)
const settings = {
async: true,
crossDomain: true,
url: 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate',
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
'X-API-Key': 'YOUR_API_KEY'
},
processData: false,
data: '{\n "runs": 90,\n "target": 180,\n "overs_bowled": 10\n}'
};
$.ajax(settings).done(function (response) {
console.log(response);
});POST /v1/cricket/required-run-rate in Python (http.client)
import http.client
conn = http.client.HTTPSConnection("sports-tools.p.apihiver.com")
payload = "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}"
headers = {
'Content-Type': "application/json",
'Accept': "application/json",
'X-API-Key': "YOUR_API_KEY"
}
conn.request("POST", "/v1/cricket/required-run-rate", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))POST /v1/cricket/required-run-rate in Python (Requests)
import requests
url = "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate"
payload = {
"runs": 90,
"target": 180,
"overs_bowled": 10
}
headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())POST /v1/cricket/required-run-rate in PHP (cURL)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'runs' => 90,
'target' => 180,
'overs_bowled' => 10
]),
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Content-Type: application/json",
"X-API-Key: YOUR_API_KEY"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}POST /v1/cricket/required-run-rate in PHP (Guzzle)
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate', [
'body' => '{
"runs": 90,
"target": 180,
"overs_bowled": 10
}',
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY',
],
]);
echo $response->getBody();POST /v1/cricket/required-run-rate in PHP (PECL HTTP v1)
<?php
$request = new HttpRequest();
$request->setUrl('https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders([
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY'
]);
$request->setContentType('application/json');
$request->setBody(json_encode([
'runs' => 90,
'target' => 180,
'overs_bowled' => 10
]));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}POST /v1/cricket/required-run-rate in PHP (PECL HTTP v2)
<?php
$client = new http\Client;
$request = new http\Client\Request;
$body = new http\Message\Body;
$body->append(json_encode([
'runs' => 90,
'target' => 180,
'overs_bowled' => 10
]));
$request->setRequestUrl('https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'X-API-Key' => 'YOUR_API_KEY'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();POST /v1/cricket/required-run-rate in Java (AsyncHttp)
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("POST", "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate")
.setHeader("Content-Type", "application/json")
.setHeader("Accept", "application/json")
.setHeader("X-API-Key", "YOUR_API_KEY")
.setBody("{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();POST /v1/cricket/required-run-rate in Java (java.net.http)
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate"))
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.method("POST", HttpRequest.BodyPublishers.ofString("{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}"))
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());POST /v1/cricket/required-run-rate in Java (OkHttp)
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}");
Request request = new Request.Builder()
.url("https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.addHeader("X-API-Key", "YOUR_API_KEY")
.build();
Response response = client.newCall(request).execute();POST /v1/cricket/required-run-rate in Java (Unirest)
HttpResponse<String> response = Unirest.post("https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.body("{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}")
.asString();POST /v1/cricket/required-run-rate in C# (HttpClient)
using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate"),
Headers =
{
{ "Accept", "application/json" },
{ "X-API-Key", "YOUR_API_KEY" },
},
Content = new StringContent("{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}POST /v1/cricket/required-run-rate in C# (RestSharp)
var client = new RestClient("https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate");
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
request.AddHeader("X-API-Key", "YOUR_API_KEY");
request.AddParameter("application/json", "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}", ParameterType.RequestBody);
var response = client.Execute(request);POST /v1/cricket/required-run-rate in Go (NewRequest)
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate"
payload := strings.NewReader("{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Add("X-API-Key", "YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}POST /v1/cricket/required-run-rate in Ruby (net::http)
require 'uri'
require 'net/http'
url = URI("https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Accept"] = 'application/json'
request["X-API-Key"] = 'YOUR_API_KEY'
request.body = "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}"
response = http.request(request)
puts response.read_bodyPOST /v1/cricket/required-run-rate in Swift (NSURLSession)
import Foundation
let headers = [
"Content-Type": "application/json",
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY"
]
let parameters = [
"runs": 90,
"target": 180,
"overs_bowled": 10
] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()POST /v1/cricket/required-run-rate in Objective-C (NSURLSession)
#import <Foundation/Foundation.h>
NSDictionary *headers = @{ @"Content-Type": @"application/json",
@"Accept": @"application/json",
@"X-API-Key": @"YOUR_API_KEY" };
NSDictionary *parameters = @{ @"runs": @90,
@"target": @180,
@"overs_bowled": @10 };
NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];POST /v1/cricket/required-run-rate in Kotlin (OkHttp)
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}")
val request = Request.Builder()
.url("https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Accept", "application/json")
.addHeader("X-API-Key", "YOUR_API_KEY")
.build()
val response = client.newCall(request).execute()POST /v1/cricket/required-run-rate in C (libcurl)
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "X-API-Key: YOUR_API_KEY");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}");
CURLcode ret = curl_easy_perform(hnd);POST /v1/cricket/required-run-rate in Clojure (clj-http)
(require '[clj-http.client :as client])
(client/post "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate" {:headers {:X-API-Key "YOUR_API_KEY"}
:content-type :json
:form-params {:runs 90
:target 180
:overs_bowled 10}
:accept :json})POST /v1/cricket/required-run-rate in OCaml (CoHTTP)
open Cohttp_lwt_unix
open Cohttp
open Lwt
let uri = Uri.of_string "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate" in
let headers = Header.add_list (Header.init ()) [
("Content-Type", "application/json");
("Accept", "application/json");
("X-API-Key", "YOUR_API_KEY");
] in
let body = Cohttp_lwt_body.of_string "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}" in
Client.call ~headers ~body `POST uri
>>= fun (res, body_stream) ->
(* Do stuff with the result *)POST /v1/cricket/required-run-rate in R (httr)
library(httr)
url <- "https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate"
payload <- "{\n \"runs\": 90,\n \"target\": 180,\n \"overs_bowled\": 10\n}"
encode <- "json"
response <- VERB("POST", url, body = payload, add_headers('X-API-Key' = 'YOUR_API_KEY'), content_type("application/json"), accept("application/json"), encode = encode)
content(response, "text")POST /v1/cricket/required-run-rate in PowerShell (Invoke-WebRequest)
$headers=@{}
$headers.Add("Content-Type", "application/json")
$headers.Add("Accept", "application/json")
$headers.Add("X-API-Key", "YOUR_API_KEY")
$response = Invoke-WebRequest -Uri 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"runs": 90,
"target": 180,
"overs_bowled": 10
}'POST /v1/cricket/required-run-rate in PowerShell (Invoke-RestMethod)
$headers=@{}
$headers.Add("Content-Type", "application/json")
$headers.Add("Accept", "application/json")
$headers.Add("X-API-Key", "YOUR_API_KEY")
$response = Invoke-RestMethod -Uri 'https://sports-tools.p.apihiver.com/v1/cricket/required-run-rate' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"runs": 90,
"target": 180,
"overs_bowled": 10
}'POST /v1/cricket/required-run-rate in HTTP (HTTP/1.1)
POST /v1/cricket/required-run-rate HTTP/1.1
Content-Type: application/json
Accept: application/json
X-Api-Key: YOUR_API_KEY
Host: sports-tools.p.apihiver.com
Content-Length: 55
{
"runs": 90,
"target": 180,
"overs_bowled": 10
}Example response (200, application/json)
Success.
1{
2 "status": "in progress",
3 "balls_left": 60,
4 "runs_needed": 90,
5 "current_run_rate": 9,
6 "required_run_rate": 9
7}Errors
- 400 — A required parameter is missing or a value has the wrong format.
1{ 2 "error": { 3 "code": "INVALID_INPUT", 4 "message": "target: Field required" 5 } 6}
Gateway errors (missing key, no subscription, rate limits) are listed in Error codes.
Other Sports & Cricket Tools API endpoints
- POSTRound-robin fixture schedule (each team plays once per round)
- POSTLeague points table from match results
- POSTElo rating update after a game
- POSTCricket net run rate (NRR) for a tournament
Sports & Cricket Tools API pricing →·Sports & Cricket Tools API overview →