Evaluate Cubic Spline at Multiple Points
curl --request POST \
--url https://api.fincept.in/quantlib/numerical/interpolation/spline-curve \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"x_data": [
0,
1,
2,
3,
4
],
"y_data": [
0,
1,
0.5,
0.75,
1.5
],
"xi": [
0.5,
1.5,
2.5,
3.5
],
"bc_type": "natural"
}
'import requests
url = "https://api.fincept.in/quantlib/numerical/interpolation/spline-curve"
payload = {
"x_data": [0, 1, 2, 3, 4],
"y_data": [0, 1, 0.5, 0.75, 1.5],
"xi": [0.5, 1.5, 2.5, 3.5],
"bc_type": "natural"
}
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({
x_data: [0, 1, 2, 3, 4],
y_data: [0, 1, 0.5, 0.75, 1.5],
xi: [0.5, 1.5, 2.5, 3.5],
bc_type: 'natural'
})
};
fetch('https://api.fincept.in/quantlib/numerical/interpolation/spline-curve', 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/numerical/interpolation/spline-curve",
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([
'x_data' => [
0,
1,
2,
3,
4
],
'y_data' => [
0,
1,
0.5,
0.75,
1.5
],
'xi' => [
0.5,
1.5,
2.5,
3.5
],
'bc_type' => 'natural'
]),
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/numerical/interpolation/spline-curve"
payload := strings.NewReader("{\n \"x_data\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"y_data\": [\n 0,\n 1,\n 0.5,\n 0.75,\n 1.5\n ],\n \"xi\": [\n 0.5,\n 1.5,\n 2.5,\n 3.5\n ],\n \"bc_type\": \"natural\"\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/numerical/interpolation/spline-curve")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"x_data\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"y_data\": [\n 0,\n 1,\n 0.5,\n 0.75,\n 1.5\n ],\n \"xi\": [\n 0.5,\n 1.5,\n 2.5,\n 3.5\n ],\n \"bc_type\": \"natural\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/numerical/interpolation/spline-curve")
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 \"x_data\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"y_data\": [\n 0,\n 1,\n 0.5,\n 0.75,\n 1.5\n ],\n \"xi\": [\n 0.5,\n 1.5,\n 2.5,\n 3.5\n ],\n \"bc_type\": \"natural\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"points": [
{
"xi": 0.5,
"value": 0.531
},
{
"xi": 1.5,
"value": 0.828
},
{
"xi": 2.5,
"value": 0.594
},
{
"xi": 3.5,
"value": 1.078
}
],
"bc_type": "natural"
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}quantlib-numerical
Evaluate Cubic Spline at Multiple Points
Construct a cubic spline from data points and evaluate it at multiple query points. Cubic splines provide C2 continuity (smooth first and second derivatives) and are widely used in computer graphics, curve fitting, and financial modeling. Supports different boundary conditions: natural (second derivative = 0 at endpoints), clamped, or periodic. [Tier: BASIC, Credits: 1]
POST
/
quantlib
/
numerical
/
interpolation
/
spline-curve
Evaluate Cubic Spline at Multiple Points
curl --request POST \
--url https://api.fincept.in/quantlib/numerical/interpolation/spline-curve \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"x_data": [
0,
1,
2,
3,
4
],
"y_data": [
0,
1,
0.5,
0.75,
1.5
],
"xi": [
0.5,
1.5,
2.5,
3.5
],
"bc_type": "natural"
}
'import requests
url = "https://api.fincept.in/quantlib/numerical/interpolation/spline-curve"
payload = {
"x_data": [0, 1, 2, 3, 4],
"y_data": [0, 1, 0.5, 0.75, 1.5],
"xi": [0.5, 1.5, 2.5, 3.5],
"bc_type": "natural"
}
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({
x_data: [0, 1, 2, 3, 4],
y_data: [0, 1, 0.5, 0.75, 1.5],
xi: [0.5, 1.5, 2.5, 3.5],
bc_type: 'natural'
})
};
fetch('https://api.fincept.in/quantlib/numerical/interpolation/spline-curve', 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/numerical/interpolation/spline-curve",
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([
'x_data' => [
0,
1,
2,
3,
4
],
'y_data' => [
0,
1,
0.5,
0.75,
1.5
],
'xi' => [
0.5,
1.5,
2.5,
3.5
],
'bc_type' => 'natural'
]),
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/numerical/interpolation/spline-curve"
payload := strings.NewReader("{\n \"x_data\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"y_data\": [\n 0,\n 1,\n 0.5,\n 0.75,\n 1.5\n ],\n \"xi\": [\n 0.5,\n 1.5,\n 2.5,\n 3.5\n ],\n \"bc_type\": \"natural\"\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/numerical/interpolation/spline-curve")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"x_data\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"y_data\": [\n 0,\n 1,\n 0.5,\n 0.75,\n 1.5\n ],\n \"xi\": [\n 0.5,\n 1.5,\n 2.5,\n 3.5\n ],\n \"bc_type\": \"natural\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/numerical/interpolation/spline-curve")
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 \"x_data\": [\n 0,\n 1,\n 2,\n 3,\n 4\n ],\n \"y_data\": [\n 0,\n 1,\n 0.5,\n 0.75,\n 1.5\n ],\n \"xi\": [\n 0.5,\n 1.5,\n 2.5,\n 3.5\n ],\n \"bc_type\": \"natural\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"points": [
{
"xi": 0.5,
"value": 0.531
},
{
"xi": 1.5,
"value": 0.828
},
{
"xi": 2.5,
"value": 0.594
},
{
"xi": 3.5,
"value": 1.078
}
],
"bc_type": "natural"
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}Authorizations
API key for authentication. Get your key at https://api.fincept.in/auth/register
Body
application/json
X coordinates of data points
Example:
[0, 1, 2, 3, 4]
Y coordinates of data points
Example:
[0, 1, 0.5, 0.75, 1.5]
Points at which to evaluate the spline
Example:
[0.5, 1.5, 2.5, 3.5]
Boundary condition type
Available options:
natural, clamped, periodic Example:
"natural"
⌘I
