Integrate 465+ calculators into your app with a single POST request. Finance, health, tax, math, conversions, and more — all free, no API key needed.
/api/calculate/{category}/{slug}Run a calculation. Pass your inputs as a JSON object and receive the computed results. Inputs are validated against the GET schema (required, finite numbers, min/max, allowed options). Fields the schema does not list are ignored and named in ignoredInputs.
Request body
{
"inputs": {
"fieldName": value,
...
}
}Success response
{
"success": true,
"results": {
"fieldName": value,
...
}
}/api/calculate/{category}/{slug}Schema discovery — returns the calculator's full input/output specification so you know exactly what fields to send.
curl -X POST https://www.biggestcalculatorhub.com/api/calculate/finance/mortgage \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"homePrice": 360000,
"downPayment": 60000,
"interestRate": 6.5,
"loanTerm": 30
}
}'const response = await fetch(
'https://www.biggestcalculatorhub.com/api/calculate/finance/mortgage',
{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
inputs: {
homePrice: 360000,
downPayment: 60000,
interestRate: 6.5,
loanTerm: 30,
},
}),
}
);
const data = await response.json();
// data.results:
// {
// monthlyPayment: 1896.2,
// loanAmount: 300000,
// totalInterest: 382632,
// principalAndInterest: 1896.2,
// ...
// }import requests
response = requests.post(
'https://www.biggestcalculatorhub.com/api/calculate/finance/mortgage',
json={
'inputs': {
'homePrice': 360000,
'downPayment': 60000,
'interestRate': 6.5,
'loanTerm': 30,
}
}
)
data = response.json()
print(data['results'])
# {
# 'monthlyPayment': 1896.2,
# 'loanAmount': 300000,
# 'totalInterest': 382632,
# ...
# }Not sure what inputs a calculator needs? Send a GET request to get the full schema — all fields, types, defaults, and constraints.
# GET request — returns the calculator's input/output schema
curl https://www.biggestcalculatorhub.com/api/calculate/finance/mortgage
# Response
{
"success": true,
"calculator": {
"id": "mortgage",
"title": "Mortgage Calculator",
"inputs": [
{ "name": "homePrice", "label": "Home Price", "type": "currency", "required": true },
{ "name": "downPayment", "label": "Down Payment", "type": "currency", "required": true },
{ "name": "interestRate", "label": "Interest Rate", "type": "percentage", "required": true },
{ "name": "loanTerm", "label": "Loan Term (years)", "type": "number", "required": true }
],
"outputs": [
{ "name": "monthlyPayment", "label": "Monthly Payment", "type": "currency", "primary": true },
{ "name": "totalInterest", "label": "Total Interest", "type": "currency" }
]
}
}All errors return { "success": false, "code": "...", "error": "..." } with an appropriate HTTP status code. Branch on the stable code, not on the message text.
# 404 — calculator not found
{ "success": false, "code": "not_found", "error": "Calculator 'finance/unknown' not found" }
# 400 — missing inputs object
{ "success": false, "code": "invalid_body", "error": "Request body must include an 'inputs' object" }
# 422 — an input breaks the calculator's schema (see GET for min/max/options)
{ "success": false, "code": "invalid_inputs", "error": "One or more inputs are invalid",
"fields": { "homePrice": "Minimum is 10000" } }
# 422 — the calculator rejected this combination of inputs
{ "success": false, "code": "calculation_rejected", "error": "n and r must be integers" }
# 413 — request body larger than 16 KB
{ "success": false, "code": "payload_too_large", "error": "Request body must be at most 16384 bytes" }
# Numbers must be finite. Fields without a declared min/max accept values between -1e12 and 1e12;
# numeric strings are limited to 64 characters. Anything outside returns 422 invalid_inputs.A sample of 10 popular calculators and their endpoints. All 465+ calculators follow the same pattern.
POST /api/calculate/finance/mortgageInputs: homePrice, downPayment, interestRate, loanTerm
Sample results: { "monthlyPayment": 1896.2, "totalInterest": 382632, "loanAmount": 300000 }
POST /api/calculate/health/bmiInputs: weight, height, unit (metric|imperial)
Sample results: { "bmi": 22.9, "category": "Normal weight" }
POST /api/calculate/investment/compound-interestInputs: principal, annualRate, years, compoundingFrequency
Sample results: { "futureValue": 18061.11, "totalInterest": 8061.11 }
POST /api/calculate/tax/income-taxInputs: income, filingStatus, state
Sample results: { "federalTax": 12290, "effectiveRate": 16.4, "takeHome": 62710 }
POST /api/calculate/health/calorieInputs: age, gender, weight, height, activityLevel, goal
Sample results: { "dailyCalories": 2100, "bmr": 1756 }
POST /api/calculate/investment/retirementInputs: currentAge, retirementAge, currentSavings, monthlyContribution, annualReturn
Sample results: { "retirementBalance": 847320, "totalContributions": 180000 }
POST /api/calculate/finance/loanInputs: loanAmount, interestRate, loanTerm
Sample results: { "monthlyPayment": 193.33, "totalInterest": 1600 }
POST /api/calculate/math/percentageInputs: value, percentage, calculationType
Sample results: { "result": 25, "original": 125, "change": -20 }
POST /api/calculate/salary/hourly-to-salaryInputs: hourlyRate, hoursPerWeek, weeksPerYear
Sample results: { "annualSalary": 62400, "monthlyGross": 5200, "biweeklyGross": 2400 }
POST /api/calculate/automotive/fuel-cost-tripInputs: distance, fuelEfficiency, fuelPrice, unit
Sample results: { "totalCost": 48.75, "gallonsUsed": 15.0, "costPerMile": 0.325 }
To discover all available calculators, visit the calculator directory. The URL slug of each calculator matches its API endpoint (e.g., /health/bmi → /api/calculate/health/bmi).
Send a real API request to the mortgage calculator directly from your browser. Edit the JSON body, click Send, and see the live response.
Rate limit headers are returned on every response: X-RateLimit-Limit: 100 and X-RateLimit-Window: 86400. Free tier: 100 requests/day. The free-tier count is kept in memory on each server instance, so it is best-effort: it can reset on a redeploy or cold start, and requests served by different instances are counted separately. Free-tier responses say so in X-RateLimit-Scope: best-effort-per-instance. Need more? Contact us.
The Biggest Calculator Hub API is free to use. In exchange, we require that any public-facing product, website, or application using this API display a visible credit link:
<a href="https://www.biggestcalculatorhub.com" target="_blank" rel="noopener"> Powered by Biggest Calculator Hub </a>
X-Attribution response header contains the required credit text for your reference