Calculate Internal Rate of Return (IRR)
curl --request POST \
--url https://api.fincept.in/quantlib/solver/finance/irr \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"cashflows": [
-100000,
30000,
35000,
40000,
45000
],
"times": [
0,
1,
2,
3,
4
],
"guess": 0.1
}
'import requests
url = "https://api.fincept.in/quantlib/solver/finance/irr"
payload = {
"cashflows": [-100000, 30000, 35000, 40000, 45000],
"times": [0, 1, 2, 3, 4],
"guess": 0.1
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cashflows: [-100000, 30000, 35000, 40000, 45000],
times: [0, 1, 2, 3, 4],
guess: 0.1
})
};
fetch('https://api.fincept.in/quantlib/solver/finance/irr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/solver/finance/irr",
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([
'cashflows' => [
-100000,
30000,
35000,
40000,
45000
],
'times' => [
0,
1,
2,
3,
4
],
'guess' => 0.1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/solver/finance/irr"
payload := strings.NewReader("{\n \"cashflows\": [\n -100000,\n 30000,\n 35000,\n 40000,\n 45000\n ],\n \"times\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"guess\": 0.1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/solver/finance/irr")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cashflows\": [\n -100000,\n 30000,\n 35000,\n 40000,\n 45000\n ],\n \"times\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"guess\": 0.1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/solver/finance/irr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cashflows\": [\n -100000,\n 30000,\n 35000,\n 40000,\n 45000\n ],\n \"times\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"guess\": 0.1\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"irr": 0.1867
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}{
"detail": [
{}
]
}quantlib-solver
Calculate Internal Rate of Return (IRR)
Calculate the Internal Rate of Return - the discount rate that makes the net present value of all cash flows equal to zero. IRR is widely used in capital budgeting, project evaluation, and investment analysis to assess the profitability of potential investments. It represents the effective annualized rate of return. For evenly-spaced cash flows, optionally provide times array; otherwise, assumes annual periods. [Tier: STANDARD, Credits: 2]
POST
/
quantlib
/
solver
/
finance
/
irr
Calculate Internal Rate of Return (IRR)
curl --request POST \
--url https://api.fincept.in/quantlib/solver/finance/irr \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"cashflows": [
-100000,
30000,
35000,
40000,
45000
],
"times": [
0,
1,
2,
3,
4
],
"guess": 0.1
}
'import requests
url = "https://api.fincept.in/quantlib/solver/finance/irr"
payload = {
"cashflows": [-100000, 30000, 35000, 40000, 45000],
"times": [0, 1, 2, 3, 4],
"guess": 0.1
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
cashflows: [-100000, 30000, 35000, 40000, 45000],
times: [0, 1, 2, 3, 4],
guess: 0.1
})
};
fetch('https://api.fincept.in/quantlib/solver/finance/irr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/solver/finance/irr",
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([
'cashflows' => [
-100000,
30000,
35000,
40000,
45000
],
'times' => [
0,
1,
2,
3,
4
],
'guess' => 0.1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/solver/finance/irr"
payload := strings.NewReader("{\n \"cashflows\": [\n -100000,\n 30000,\n 35000,\n 40000,\n 45000\n ],\n \"times\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"guess\": 0.1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/solver/finance/irr")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"cashflows\": [\n -100000,\n 30000,\n 35000,\n 40000,\n 45000\n ],\n \"times\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"guess\": 0.1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/solver/finance/irr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"cashflows\": [\n -100000,\n 30000,\n 35000,\n 40000,\n 45000\n ],\n \"times\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"guess\": 0.1\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"irr": 0.1867
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}{
"detail": [
{}
]
}Authorizations
API key for authentication. Get your key at https://api.fincept.in/auth/register
Body
application/json
Array of cash flows (negative for outflows, positive for inflows)
Example:
[-100000, 30000, 35000, 40000, 45000]
Optional array of times in years for each cash flow (if not provided, assumes annual periods starting at 0)
Example:
[0, 1, 2, 3, 4]
Initial guess for the IRR solver
Example:
0.1
⌘I
