For the complete documentation index, see llms.txt.
Estimate monthly auto lease payment from cap cost, residual value, money factor, tax, and fees.
One POST adds Car Lease Calculator to your app, site, workflow, or agent — formula, validation, edge cases, and docs already handled.
prefer a UI? Open the Car Lease Calculator on miniwebtool.com →
POST https://api.miniwebtool.com/v1/tools/car-lease-calculator/run
| Field | Type | Req. |
|---|---|---|
vehicle_price
|
float |
✓ |
residual_value
|
float |
✓ |
residual_mode
percent | amount
|
str |
— |
money_factor
|
float |
— |
lease_term
|
int |
— |
down_payment
|
float |
— |
tax_rate
|
float |
— |
fees
|
float |
— |
65536 bytes.hash_only{
"request_id": "01K...",
"tool": "car-lease-calculator",
"tool_version": "2026-04-22",
"credits_used": 2,
"result": { ... }
}
This endpoint starts on Starter ($29/mo) — Start Starter →. A free key still covers 1,000 calls/mo on free-tier endpoints.
curl -X POST https://api.miniwebtool.com/v1/tools/car-lease-calculator/run \
-H 'Authorization: Bearer mwt_live_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"vehicle_price":42000,"residual_value":58,"residual_mode":"percent","money_factor":0.00185,"lease_term":36,"down_payment":3000,"tax_rate":7.5,"fees":895}'
import requests
resp = requests.post(
'https://api.miniwebtool.com/v1/tools/car-lease-calculator/run',
headers={'Authorization': 'Bearer mwt_live_YOUR_KEY'},
json={'vehicle_price': 42000, 'residual_value': 58, 'residual_mode': 'percent', 'money_factor': 0.00185, 'lease_term': 36, 'down_payment': 3000, 'tax_rate': 7.5, 'fees': 895},
)
resp.raise_for_status()
data = resp.json()
print(data)
result = data['result']
chart_data = result.get('chart_data', {})
balance_series = (
chart_data.get('balance_over_time')
or chart_data.get('minimum_payment_balance_over_time')
or chart_data.get('series')
or chart_data.get('points')
or []
)
breakdown = (
chart_data.get('payment_breakdown')
or chart_data.get('monthly_payment_breakdown')
or chart_data.get('total_cost_breakdown')
or chart_data.get('breakdown')
or chart_data.get('comparison')
or []
)
strategy_series = chart_data.get('payment_strategy_comparison', [])
def chart_label(point):
return point.get('label') or point.get('month') or point.get('year') or point.get('n') or point.get('x')
def chart_value(point):
return point.get('value') or point.get('ending_balance') or point.get('y') or point.get('total_interest')
print('chart labels:', [chart_label(point) for point in balance_series])
print('chart values:', [chart_value(point) for point in balance_series])
print('breakdown:', breakdown)
print('strategy interest:', [(item['label'], item['total_interest']) for item in strategy_series])
const resp = await fetch(
'https://api.miniwebtool.com/v1/tools/car-lease-calculator/run',
{
method: 'POST',
headers: {
'Authorization': 'Bearer mwt_live_YOUR_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({"vehicle_price":42000,"residual_value":58,"residual_mode":"percent","money_factor":0.00185,"lease_term":36,"down_payment":3000,"tax_rate":7.5,"fees":895}),
}
);
const data = await resp.json();
console.log(data);
const result = data.result;
const chartData = result.chart_data ?? {};
const balanceSeries =
chartData.balance_over_time ??
chartData.minimum_payment_balance_over_time ??
chartData.series ??
chartData.points ??
[];
const breakdown =
chartData.payment_breakdown ??
chartData.monthly_payment_breakdown ??
chartData.total_cost_breakdown ??
chartData.breakdown ??
chartData.comparison ??
[];
// Pass these arrays to Chart.js, Recharts, ECharts, etc.
const chartLabel = (item) =>
item.label ?? item.month ?? item.year ?? item.n ?? item.x;
const chartValue = (item) =>
item.value ?? item.ending_balance ?? item.y ?? item.total_interest;
const balanceChart = {
labels: balanceSeries.map(chartLabel),
values: balanceSeries.map(chartValue),
};
const breakdownChart = {
labels: breakdown.map(chartLabel),
values: breakdown.map(chartValue),
};
const strategySeries = chartData.payment_strategy_comparison ?? [];
const strategyChart = {
labels: strategySeries.map((item) => item.label),
values: strategySeries.map((item) => item.total_interest),
};
console.log({ balanceChart, breakdownChart, strategyChart });
<?php
$ch = curl_init('https://api.miniwebtool.com/v1/tools/car-lease-calculator/run');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer mwt_live_YOUR_KEY',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'vehicle_price' => 42000,
'residual_value' => 58,
'residual_mode' => 'percent',
'money_factor' => 0.00185,
'lease_term' => 36,
'down_payment' => 3000,
'tax_rate' => 7.5,
'fees' => 895
]),
]);
$resp = curl_exec($ch);
curl_close($ch);
print_r(json_decode($resp, true));
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.miniwebtool.com/v1/tools/car-lease-calculator/run')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = (uri.scheme == 'https')
req = Net::HTTP::Post.new(uri)
req['Authorization'] = 'Bearer mwt_live_YOUR_KEY'
req['Content-Type'] = 'application/json'
req.body = {
'vehicle_price' => 42000,
'residual_value' => 58,
'residual_mode' => 'percent',
'money_factor' => 0.00185,
'lease_term' => 36,
'down_payment' => 3000,
'tax_rate' => 7.5,
'fees' => 895
}.to_json
resp = http.request(req)
puts JSON.parse(resp.body).inspect
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]interface{}{
"vehicle_price": 42000,
"residual_value": 58,
"residual_mode": "percent",
"money_factor": 0.00185,
"lease_term": 36,
"down_payment": 3000,
"tax_rate": 7.5,
"fees": 895,
})
req, _ := http.NewRequest("POST", "https://api.miniwebtool.com/v1/tools/car-lease-calculator/run", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer mwt_live_YOUR_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}
import java.net.URI;
import java.net.http.*;
var client = HttpClient.newHttpClient();
var req = HttpRequest.newBuilder()
.uri(URI.create("https://api.miniwebtool.com/v1/tools/car-lease-calculator/run"))
.header("Authorization", "Bearer mwt_live_YOUR_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"vehicle_price\":42000,\"residual_value\":58,\"residual_mode\":\"percent\",\"money_factor\":0.00185,\"lease_term\":36,\"down_payment\":3000,\"tax_rate\":7.5,\"fees\":895}"))
.build();
var resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
vehicle_price, residual_value, . See the Request body table above for the full schema.
https://api.miniwebtool.com/v1/tools/car-lease-calculator/run
Authorization: Bearer <key> and Content-Type: application/json. Copy-paste snippets in 7 languages are under Code examples.
{request_id, tool, tool_version, credits_used, result}. The typed output lives in result.
Estimate monthly auto lease payment from cap cost, residual value, money factor, tax, and fees. Use it to add this utility without rebuilding formulas, validation, examples, and documentation.
2 credits per successful call. Failed calls (validation errors, 5xx) don't bill.
Required fields: vehicle_price, residual_value. Full schema at /v1/openapi.json.
Yes — same input, same output, forever. Tool version 2026-04-22; output shape is stable within a major version.
Yes. Successful responses include `result.chart_data` with compact arrays for line or bar charts, so clients can render visuals with Chart.js, Recharts, ECharts, SVG, or canvas without requesting an image.
Yes. Connect to https://api.miniwebtool.com/v1/mcp over the Model Context Protocol. The agent discovers `car-lease-calculator` with its JSON Schema automatically, so the model can plan while MiniWebtool handles the exact tool result.
JSON with a stable envelope: `{request_id, tool, tool_version, credits_used, result}`. Errors are RFC 7807 `application/problem+json`.
Every endpoint on this site is also exposed via the
Model Context Protocol at
https://api.miniwebtool.com/v1/mcp.
Claude, Cursor, and any MCP-capable agent can discover this tool
(car-lease-calculator)
and its JSON Schema automatically — no client codegen.
# List tools the agent can call
curl -s https://api.miniwebtool.com/v1/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
| jq '.result.tools[] | select(.name=="car-lease-calculator")'