Free Calculator API

Every calculator on this site is also a free JSON API. No sign-up, no API key, CORS-enabled — call it from your server or straight from the browser.

Overview

The API runs the exact same math the website uses. Send a calculator's field values as query parameters or JSON and get the computed results back as JSON — including any amortization schedule or chart data the calculator produces.

  • 198+ calculators, each with its own endpoint
  • No API key — anonymous access, rate-limited by IP
  • CORSAccess-Control-Allow-Origin: * (usable client-side)
  • Rate limit: 60 requests/hour per IP (HTTP 429 when exceeded)
  • Errors are free — only a successful (2xx) response uses one call from your monthly quota. Every 400, 401, 404, 429 and 500 costs you nothing.

Base URL

https://calculator.free/api/v1/

Index — list every calculator

GET https://calculator.free/api/v1/

Returns a machine-readable list of all calculators with each one's fields (key, label, type, default, unit) and result keys — enough to build a client dynamically. Each field also carries a required flag — true for the few fields that have no default (dates, mostly). Send those: a couple of calculators can infer one, the rest answer 400 without it.

Compute — run one calculator

GET  https://calculator.free/api/v1/<slug>/?field=value&field=value
POST https://calculator.free/api/v1/<slug>/     (JSON or form body)

Response shape:

{
  "ok": true,
  "slug": "mortgage",
  "country": "us",
  "inputs":   { ... the values actually computed with ... },
  "results":  { ... computed result keys ... },
  "schedule": { "columns": [...], "rows": [...] } | null,
  "chart":    { "type": "pie", "slices": [...] } | null,
  "defaults_applied": ["tax", "insurance"]
}

Country-aware calculators (mortgage, loan, income-tax, sales-tax…) accept ?country=us|uk|ca|au|in|ie|nz|za. Unknown slug returns 404; unsupported country or bad input returns 400 with a helpful message and the field spec.

Parameters, defaults and errors

Send only the fields you care about. Anything you leave out is filled with that field's published default — the same value the calculator page pre-fills, so the API and the website always return the same numbers for the same inputs. Each response lists what it filled in under defaults_applied.

Anything the API cannot resolve honestly is an error, never a zero: a misspelled parameter, a value of the wrong type, an unknown dropdown option, or a missing field that has no default (the date fields — a birth date cannot be guessed). Every 400 names the offending parameter and echoes the full field spec so a client can correct itself.

$ curl "https://calculator.free/api/v1/mortgage/?price=350000&rate=6.5&term=30"
{
  "ok": false,
  "error": "unknown_parameter",
  "message": "Unknown parameter 'term' for calculator 'mortgage'. Did you mean 'years'? ...",
  "unknown_parameters": ["term"],
  "did_you_mean": { "term": "years" },
  "valid_parameters": ["down", "extra", "extra_onetime", "extra_yearly", "hoa",
                       "insurance", "other", "pmi", "price", "rate", "tax", "years"],
  "fields": [ ... ]
}
errorHTTPWhen
unknown_parameter400a parameter that is not a field of this calculator (with a did-you-mean suggestion)
invalid_value400a number field that is not a number, a dropdown value outside its options, an unparseable date, or an unknown _mode
missing_parameter400the calculator produced no result because a field with no default was left empty
unsupported_country400?country= is not one this calculator has data for
bad_json400the POST body is not valid JSON
unknown_calculator404no calculator with that slug
invalid_key401an API key was sent but is unknown or inactive
rate_limited / quota_exceeded429the anonymous hourly IP limit, or a key's monthly quota, is used up
too_many_invalid_requests429too many rejected requests in one hour for this key — rejected calls are free, so they are rate-limited instead. Resets hourly; successful calls never count towards it.

The /api/v1/ index publishes every field's key, type, unit, default and whether it is required — enough to build a client that never guesses.

Authentication &amp; plans

You can call the API with no key at all — anonymous requests are rate-limited by IP. For a higher, predictable monthly quota (and commercial use), create a key on your account page and send it one of three ways:

GET  https://calculator.free/api/v1/mortgage/?price=350000&key=YOUR_KEY
curl -H "Authorization: Bearer YOUR_KEY" "https://calculator.free/api/v1/bmi/?units=metric&height=180&weight=80"
curl -H "X-Api-Key: YOUR_KEY"           "https://calculator.free/api/v1/bmi/?units=metric&height=180&weight=80"
  • Free — anonymous (IP rate-limited) or a free key with a small monthly quota. Non-commercial.
  • Developer &mdash; $9/mo — 10,000 calls/month, commercial use.
  • Business &mdash; $49/mo — 100,000 calls/month, priority throughput.

What counts against your quota

Only a successful response does. One 2xx = one call. Every error is free: a 400 for a misspelled parameter, a bad value or a missing required field, a 404 for an unknown slug, a 401 for a bad key, a 429, and anything that goes wrong on our side. Explore the contract and fix your request as many times as you need — you are billed for answers, not for corrections.

Because errors are free they are rate-limited instead: if one key provokes more than 200 rejected responses in an hour, it gets HTTP 429 "too_many_invalid_requests" until the hour rolls over. Successful calls never count towards that, so a working integration will never see it — it only catches a client stuck in a retry loop.

When a key's monthly quota is used up the API returns HTTP 429 with error "quota_exceeded"; an unknown or inactive key returns HTTP 401. See full plans and sign up on the Pricing page.

Examples

curl

curl "https://calculator.free/api/v1/mortgage/?price=350000&down=70000&rate=6.9&years=30"

JavaScript fetch()

const r = await fetch(
  "https://calculator.free/api/v1/bmi/?" + new URLSearchParams({
    units: "metric", height: "180", weight: "80"
  }));
const { results } = await r.json();
console.log(results.bmi, results.category);

Python

import requests

r = requests.get("https://calculator.free/api/v1/mortgage/",
                 params={"price": 350000, "down": 70000,
                         "rate": 6.9, "years": 30},
                 headers={"Authorization": "Bearer YOUR_KEY"})
print(r.json()["results"])

POST JSON

curl -X POST "https://calculator.free/api/v1/income-tax/?country=uk" \
  -H "Content-Type: application/json" \
  -d '{"income": 60000}'

All endpoints

One endpoint per calculator. Field keys and result keys for each are in the /api/v1/ index.

Finance (41)
CalculatorEndpoint
Mortgage Calculator /api/v1/mortgage/
Loan Calculator /api/v1/loan/
Compound Interest Calculator /api/v1/compound-interest/
Simple Interest Calculator /api/v1/simple-interest/
Credit Card Payoff Calculator /api/v1/credit-card-payoff/
Fuel Cost Calculator /api/v1/fuel-cost/
Auto Loan Calculator /api/v1/auto-loan/
Retirement Calculator /api/v1/retirement/
Savings Goal Calculator /api/v1/savings-goal/
Profit Margin Calculator /api/v1/margin/
Future Value Calculator /api/v1/future-value/
Present Value Calculator /api/v1/present-value/
ROI Calculator /api/v1/roi/
Annuity Payout Calculator /api/v1/annuity-payout/
APR to APY Calculator /api/v1/apr-to-apy/
CD Calculator /api/v1/cd/
Inflation Calculator /api/v1/inflation/
Home Affordability Calculator /api/v1/home-affordability/
Rent Affordability Calculator /api/v1/rent-affordability/
Down Payment Calculator /api/v1/down-payment/
Refinance Calculator /api/v1/refinance/
Debt-to-Income Ratio Calculator /api/v1/debt-to-income/
Boat Loan Calculator /api/v1/boat-loan/
Student Loan Calculator /api/v1/student-loan/
Personal Loan Calculator /api/v1/personal-loan/
Car Lease Calculator /api/v1/lease/
Net Worth Calculator /api/v1/net-worth/
Break-Even Point Calculator /api/v1/break-even/
SIP Calculator /api/v1/sip/
EMI Calculator /api/v1/emi/
401(k) Calculator /api/v1/401k/
Roth IRA Calculator /api/v1/roth-ira/
Traditional IRA Calculator /api/v1/ira/
Budget Calculator (50/30/20) /api/v1/budget/
Social Security Calculator /api/v1/social-security/
Debt Payoff Calculator /api/v1/debt-payoff/
Rent vs Buy Calculator /api/v1/rent-vs-buy/
Mortgage Payoff Calculator /api/v1/mortgage-payoff/
APR Calculator /api/v1/apr/
Depreciation Calculator /api/v1/depreciation/
GDP Calculator /api/v1/gdp/
Tax & Salary (2)
Health & Fitness (28)
Math (26)
Statistics (15)
Unit Converters (17)
Science & Engineering (27)
Date & Time (15)
Everyday (27)

Results are estimates for general guidance only, not financial, medical or tax advice.