Free EMI & SIP Calculator API
Build on Quantum EMI's finance math with a single HTTP request. No API key, no signup, CORS-enabled - calculate loan EMI, SIP returns and fetch live bank rates from any language. A link back to quantumemi.com keeps it free.
All responses are JSON. Your base URL:
https://quantumemi.comcurl -X POST https://quantumemi.com/api/calculate \
-H "Content-Type: application/json" \
-d '{"principal": 5000000, "rate": 8.5, "tenure": 20}'
{
"emi": 43391.16,
"totalInterest": 5413879.44,
"totalPayment": 10413879.44,
"months": 240,
"mode": "standard",
"schedule": [ ... ]
}
| Method | Path | Description | Copy |
|---|---|---|---|
| POST | /api/calculate | Calculate loan EMI (6 modes) | |
| POST | /api/sip-calculate | Calculate SIP / mutual fund returns | |
| GET | /api/bank-rates | Live bank interest rates | |
| GET | /api/news | Curated finance news articles | |
| GET | /api/health | Service health + data store status | |
| GET | /api/supabase-config | Supabase project config (admin) |
Calculate EMI across 6 loan modes. Request body (JSON):
principal - number, required, loan amount in rupees
rate - number, required, annual interest %
tenure - number, required, years
mode - optional: standard | flat | stepup | odlinked | bullet | education
extra - optional object (mode-specific params)
const r = await fetch('https://quantumemi.com/api/calculate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ principal: 5000000, rate: 8.5, tenure: 20, mode: 'standard' })
});
const { emi, totalInterest, totalPayment } = await r.json();
console.log('EMI ' + emi + ', interest ' + totalInterest);
import requests
r = requests.post("https://quantumemi.com/api/calculate",
json={"principal": 5000000, "rate": 8.5, "tenure": 20})
print(r.json()) # {'emi': 43391.16, 'totalInterest': 5413879.44, ...}
monthly - number, monthly SIP amount (required unless goal mode)
rate - number, required, annual return %
years - number, required
stepUpPct - optional, annual step-up %
goalMode - optional boolean + target to reverse-calculate required SIP
curl -X POST https://quantumemi.com/api/sip-calculate \
-H "Content-Type: application/json" \
-d '{"monthly": 10000, "rate": 12, "years": 15}'
# Goal mode: corpus of Rs 1 crore in 20 years at 12%
curl -X POST https://quantumemi.com/api/sip-calculate \
-H "Content-Type: application/json" \
-d '{"goalMode": true, "target": 10000000, "rate": 12, "years": 20}'
type - optional: home | personal | car
slug - optional, e.g. sbi-home
Returns active lender rates sorted by lowest ROI.
curl "https://quantumemi.com/api/bank-rates?type=home"
{
"as_of": "2026-08-17",
"count": 8,
"banks": [
{ "slug": "sbi-home", "bank": "SBI", "roi_min": 8.4, "roi_max": 9.2, ... }
]
}
Calculator endpoints allow 120 requests / minute / IP. Exceeding the limit returns 429 Too many requests. For higher volume, cache results client-side - EMI for a given input never changes, which keeps the service free for everyone.
Drop an interactive EMI calculator into any page with one iframe. Configure it with p (loan amount), r (rate) and t (tenure) query params.
<iframe src="https://quantumemi.com/widget/?p=5000000&r=8.5&t=20" width="100%" height="460" style="border:0;border-radius:12px;max-width:420px" loading="lazy" title="EMI Calculator"></iframe>
<p style="font-size:12px;color:#888">Powered by <a href="https://quantumemi.com/tools/emi-calculator.html" rel="noopener">Quantum EMI Calculator</a></p>
The API is free because of the links back. Add this badge or a plain text link:
<a href="https://quantumemi.com" rel="noopener">Powered by Quantum EMI</a>
Is the API really free?
Yes. No API key, no signup, no paid tier. We only ask for a link back if you use it in a project.
Does the API require authentication?
No. All documented endpoints are public. Admin endpoints (news CRUD, config, bank-rate editing) require an admin session and are not part of the public API.
Can I call it from the browser?
Yes - all responses include CORS headers (Access-Control-Allow-Origin: *), so you can call it directly with fetch from client-side JavaScript.
What is the EMI formula used?
Reducing-balance method: EMI = P x r x (1+r)^n / ((1+r)^n - 1), where P is the loan amount, r is the monthly rate (annual/12) and n is the number of months. Results match RBI-compliant Indian loan math to within Rs 1.
The API provides illustrative calculations, not financial advice. Rates and results are estimates. Verify with your lender before making decisions.