EMI calculator
Borrow 250,000 at 8.5% a year over 36 months and the EMI is 7,891.88, so you repay 284,107.68 in total, 34,107.68 of it interest. Enter the amount, the rate and the months to compare terms before you sign. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Principal amount
- 250,000
- Annual rate
- 8.5
- Term months
- 36
- Monthly rate
- 0.0070833333
- Emi
- 7,891.88
- Total paid
- 284,107.68
- Total interest
- 34,107.68
Equated monthly installment, or EMI, is the fixed payment a borrower sends every month on a fully amortizing loan until principal and interest are both retired. Banks, NBFCs, and consumer lenders quote three numbers—the principal actually disbursed, a nominal annual interest rate as a percent, and a term in whole months—and the borrower needs the monthly payment those three numbers imply. This EMI calculator applies the standard reducing-balance annuity formula used on personal loans, home loans, education loans, and business notes: the monthly rate is the annual rate divided by one hundred and then by twelve, and the installment amortizes the principal over the given term. A zero annual rate collapses to principal divided by term.
How equated monthly installment is computed from principal, rate, and term
EMI is the constant monthly payment of a fully amortizing loan: each month the same cash amount is due, part of it covering interest on the outstanding principal and the rest reducing the balance, until the last installment retires the note.
Lenders in India, the United Kingdom, ASEAN markets, and many consumer-finance desks quote three inputs only—the principal actually disbursed after origination fees that are rolled into the note, a nominal annual interest rate as a percent, and a term n in whole months—and they expect one number back: the equated monthly installment. Convert the annual rate to a monthly periodic rate r by dividing by one hundred and then by twelve.
When r is strictly positive the closed-form reducing-balance identity applies: EMI equals principal times r times (1+r) to the n, divided by (1+r) to the n minus one. That is the same annuity formula used on personal loans, home loans, education loans, and working-capital notes; it is not a simple-interest flat-rate quote, and it is not a month-by-month servicer walk. When the annual rate is exactly zero the interest component vanishes and the EMI collapses to principal divided by n, which is the honest result for an interest-free promotional note.
After the installment is rounded to two decimal places, multiplying EMI by n recovers the total paid and subtracting the principal recovers total interest, so a borrower can see the cash burden of stretching the term. This capability returns that equated monthly payment and the two totals from those three numbers. A term of zero months or a negative term cannot amortize anything and is rejected rather than producing a division by zero or a nonsensical negative schedule.
Typical consumer terms are twelve, twenty-four, thirty-six, forty-eight, or sixty months; mortgages often run one hundred eighty or three hundred sixty months; the contract accepts any positive integer term from one through six hundred so short bridge notes and long housing tenures still compute without a second tool.
What you can do with it
Personal and consumer loan quotes
Turn principal, quoted annual rate, and a 12–60 month term into EMI and total interest before the borrower signs a personal or consumer note.
Home and education loan affordability
Compare 180- and 360-month housing or education terms on the same principal and rate to see how EMI falls and how total interest rises.
FAQ
Is this the same as a car loan EMI calculator?
No. This is the generic EMI calculator for any amortizing loan (personal, home, education, business). A vehicle-specific car loan EMI tool is a different search intent with its own landing.
How is EMI calculated?
The annual rate is divided by 12 and by 100 to get a monthly rate r. The EMI is then the principal times r times (1 + r) to the power of the months, divided by (1 + r) to that power minus one.
What is the EMI on a loan with no interest?
With an annual rate of exactly zero there is no interest, so the EMI is simply the principal divided by the number of months. That is the honest result for a zero-interest promotional loan.
What amount should I enter as the principal?
The amount actually borrowed, not the sticker price. Subtract any cash you pay up front and add only the fees the lender rolls into the loan itself.
How do I see the total interest I will pay?
Multiply the EMI by the number of months to get the total repaid, then subtract the principal. The calculator shows both totals, so you can see how a longer term raises the overall cost.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/fin/emi \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"principal":250000,"annual_rate":8.5,"term_months":36}'const res = await fetch("https://api.kit.forhosting.com/fin/emi", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"principal": 250000,
"annual_rate": 8.5,
"term_months": 36
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/emi",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"principal": 250000,
"annual_rate": 8.5,
"term_months": 36
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/emi", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"principal":250000,"annual_rate":8.5,"term_months":36}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"principal":250000,"annual_rate":8.5,"term_months":36}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/emi", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"principal": 250000,
"annual_rate": 8.5,
"term_months": 36
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.emi",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
A term of zero months or a negative term fails with invalid_input instead of inventing a payment.
Input contract, response shape, and error behaviour
Non-integer terms such as 36.5 also fail, because an equated monthly schedule is counted in whole installments. A formula string restates the reducing-balance identity so a UI can show the math next to the answer. Example: two hundred fifty thousand financed at 8.5 percent for thirty-six months yields a fixed EMI and a total-interest figure you can compare against a shorter or longer term before you sign. POST a JSON body with three required fields. principal is the amount actually borrowed, not a sticker price: subtract cash down and add only those fees that the lender rolls into the note. Aliases amount and loan_amount map to the same field so origination forms can reuse their column names. annual_rate is the nominal annual interest rate as a percent (eight point five means 8.5 percent a year); aliases rate, interest_rate, and apr are accepted. term_months is the repayment period in whole months; aliases months, term, tenure_months, and tenure map to the same field. term_months must be a positive integer from 1 to 600. A zero term or a negative term fails with invalid_input naming term_months—that is the contract buyers and APIs rely on when a worksheet sends a leftover zero or a sign error, and those failures are not billed. Each numeric field may arrive as a JSON number or a numeric string; missing fields, empty strings, and non-finite values fail with a message that names the field. If principal is not positive the task fails with invalid_input as well. On success the body echoes principal, annual_rate, and term_months, reports monthly_rate and the rounded emi, then total_paid and total_interest. Pair the JSON with your own amortization chart if you need every row; this endpoint returns the equated installment and the interest total, so responses stay small for widgets and APIs.
Where a generic EMI calculator earns its keep
Borrowers use an EMI calculator when a lender quotes a personal loan, a home loan, an education loan, or a small-business note and they need the monthly payment those three numbers imply before they commit. Affordability desks re-run the same principal at two or three terms—twenty-four versus thirty-six versus sixty months—to see how much the installment drops and how much extra interest the longer term costs. Failed validation, including a zero or negative term, does not consume balance. Refinance and balance-transfer desks treat principal as the current payoff, annual_rate as the new offer, and term_months as the remaining or reset term, then read total_interest against the old note. Keep principal positive, keep term_months a positive integer, pin the rounded currency fields in tests, and you get reproducible EMI figures for loan worksheets, LMS plugins, and edge workers without standing up a servicing engine of your own. This landing is the generic equated-installment tool; a car-loan-specific EMI page and a year-denominated total-interest calculator remain separate search intents with their own contracts.
Integration use cases
Origination and spreadsheet automation
Drop principal, annual_rate, and term_months into worksheets or CI fixtures that must pin a reproducible EMI without a lender API.
Technical questions
How is EMI calculated from principal, annual rate, and term?
Send principal, annual_rate as a percent, and term_months. The monthly rate r is annual_rate/12/100. When r>0, EMI = P·r·(1+r)^n/((1+r)^n−1); when r=0, EMI = P/n. The API returns the installment rounded to cents.
What happens if the term is zero or negative?
The task fails with invalid_input. A loan cannot be amortized over zero months or a negative term, so the calculator refuses to invent a payment and the call is not billed.
Does a zero percent annual rate still produce an EMI?
Yes. When annual_rate is 0 the interest component vanishes and EMI equals principal divided by term_months, which is the honest result for an interest-free promotional note.
What does the EMI calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input, including a zero or negative term, is not billed.