Short Rate Bond Option Pricing
curl --request POST \
--url https://api.fincept.in/quantlib/models/short-rate/bond-option \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"model": "vasicek",
"kappa": 0.12,
"theta": 0.05,
"sigma": 0.015,
"r0": 0.04,
"T": 0.5
}
'import requests
url = "https://api.fincept.in/quantlib/models/short-rate/bond-option"
payload = {
"model": "vasicek",
"kappa": 0.12,
"theta": 0.05,
"sigma": 0.015,
"r0": 0.04,
"T": 0.5
}
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({model: 'vasicek', kappa: 0.12, theta: 0.05, sigma: 0.015, r0: 0.04, T: 0.5})
};
fetch('https://api.fincept.in/quantlib/models/short-rate/bond-option', 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/models/short-rate/bond-option",
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([
'model' => 'vasicek',
'kappa' => 0.12,
'theta' => 0.05,
'sigma' => 0.015,
'r0' => 0.04,
'T' => 0.5
]),
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/models/short-rate/bond-option"
payload := strings.NewReader("{\n \"model\": \"vasicek\",\n \"kappa\": 0.12,\n \"theta\": 0.05,\n \"sigma\": 0.015,\n \"r0\": 0.04,\n \"T\": 0.5\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/models/short-rate/bond-option")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"vasicek\",\n \"kappa\": 0.12,\n \"theta\": 0.05,\n \"sigma\": 0.015,\n \"r0\": 0.04,\n \"T\": 0.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/models/short-rate/bond-option")
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 \"model\": \"vasicek\",\n \"kappa\": 0.12,\n \"theta\": 0.05,\n \"sigma\": 0.015,\n \"r0\": 0.04,\n \"T\": 0.5\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"call_price": 1.23,
"put_price": 0.87,
"model": "vasicek"
}
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient credits. This endpoint requires 5 credits. Current balance: 2 credits."
}{
"detail": [
{
"loc": [
"body",
"kappa"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}quantlib-models
Short Rate Bond Option Pricing
Price European call and put options on zero-coupon bonds using short rate models. Bond options are fundamental building blocks for swaptions, callable bonds, and other interest rate derivatives. The model provides analytical pricing for both calls and puts, useful for hedging bond portfolios or speculating on rate movements. [Tier: ENTERPRISE, Credits: 10]
POST
/
quantlib
/
models
/
short-rate
/
bond-option
Short Rate Bond Option Pricing
curl --request POST \
--url https://api.fincept.in/quantlib/models/short-rate/bond-option \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"model": "vasicek",
"kappa": 0.12,
"theta": 0.05,
"sigma": 0.015,
"r0": 0.04,
"T": 0.5
}
'import requests
url = "https://api.fincept.in/quantlib/models/short-rate/bond-option"
payload = {
"model": "vasicek",
"kappa": 0.12,
"theta": 0.05,
"sigma": 0.015,
"r0": 0.04,
"T": 0.5
}
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({model: 'vasicek', kappa: 0.12, theta: 0.05, sigma: 0.015, r0: 0.04, T: 0.5})
};
fetch('https://api.fincept.in/quantlib/models/short-rate/bond-option', 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/models/short-rate/bond-option",
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([
'model' => 'vasicek',
'kappa' => 0.12,
'theta' => 0.05,
'sigma' => 0.015,
'r0' => 0.04,
'T' => 0.5
]),
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/models/short-rate/bond-option"
payload := strings.NewReader("{\n \"model\": \"vasicek\",\n \"kappa\": 0.12,\n \"theta\": 0.05,\n \"sigma\": 0.015,\n \"r0\": 0.04,\n \"T\": 0.5\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/models/short-rate/bond-option")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"vasicek\",\n \"kappa\": 0.12,\n \"theta\": 0.05,\n \"sigma\": 0.015,\n \"r0\": 0.04,\n \"T\": 0.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/models/short-rate/bond-option")
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 \"model\": \"vasicek\",\n \"kappa\": 0.12,\n \"theta\": 0.05,\n \"sigma\": 0.015,\n \"r0\": 0.04,\n \"T\": 0.5\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"call_price": 1.23,
"put_price": 0.87,
"model": "vasicek"
}
}{
"detail": "Invalid API key"
}{
"detail": "Insufficient credits. This endpoint requires 5 credits. Current balance: 2 credits."
}{
"detail": [
{
"loc": [
"body",
"kappa"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}Authorizations
API key for authentication. Get your key at https://api.fincept.in/auth/register
Body
application/json
Short rate model for option pricing
Available options:
vasicek, cir Mean reversion speed
Long-term mean rate
Rate volatility
Initial short rate
Option maturity in years. The option expires at time T, giving the right to buy/sell a bond maturing at T+1
⌘I
