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.

6
Public endpoints
0
Auth required
CORS
Open to all origins
120
Req / min / IP
Quick start

All responses are JSON. Your base URL:

https://quantumemi.com
bash - curl
curl -X POST https://quantumemi.com/api/calculate \
  -H "Content-Type: application/json" \
  -d '{"principal": 5000000, "rate": 8.5, "tenure": 20}'
json - response
{
  "emi": 43391.16,
  "totalInterest": 5413879.44,
  "totalPayment": 10413879.44,
  "months": 240,
  "mode": "standard",
  "schedule": [ ... ]
}
📚Endpoints
MethodPathDescriptionCopy
POST/api/calculateCalculate loan EMI (6 modes)
POST/api/sip-calculateCalculate SIP / mutual fund returns
GET/api/bank-ratesLive bank interest rates
GET/api/newsCurated finance news articles
GET/api/healthService health + data store status
GET/api/supabase-configSupabase project config (admin)
💰POST /api/calculate

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)

javascript - fetch
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);
python - requests
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, ...}
📈POST /api/sip-calculate

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

bash - curl
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}'
🏦GET /api/bank-rates

type - optional: home | personal | car
slug - optional, e.g. sbi-home

Returns active lender rates sorted by lowest ROI.

bash - curl
curl "https://quantumemi.com/api/bank-rates?type=home"
json - response
{
  "as_of": "2026-08-17",
  "count": 8,
  "banks": [
    { "slug": "sbi-home", "bank": "SBI", "roi_min": 8.4, "roi_max": 9.2, ... }
  ]
}
🛡️Rate limits & fair use

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.

🧩Embed the EMI widget

Drop an interactive EMI calculator into any page with one iframe. Configure it with p (loan amount), r (rate) and t (tenure) query params.

html - iframe
<iframe src="https://quantumemi.com/widget/?p=5000000&amp;r=8.5&amp;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>
🔗Attribution (please)

The API is free because of the links back. Add this badge or a plain text link:

html - link
<a href="https://quantumemi.com" rel="noopener">Powered by Quantum EMI</a>
API FAQ
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.

⚠️Disclaimer

The API provides illustrative calculations, not financial advice. Rates and results are estimates. Verify with your lender before making decisions.