82trust / 100

Calculate

by Mortgage & Loan Amortization Cal in Markets & finance

x402 APIPassing, checked 4 h ago

Give this API a loan amount, an interest rate, and a repayment term, and it returns the exact monthly payment plus a full month-by-month schedule: interest paid, principal repaid, and balance remaining for every payment. Ask what an extra $300 a month, or a $10,000 lump sum in month 24, would do and it reports the months and interest saved. Every figure uses banker's rounding at pinned precision, so two correct systems agree to the cent. You supply the rate; the API does the math.

POST https://mortgage-amortization.underscoredone.com/calculate

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
223 ms typical, 223 ms slowest 5%
Last check
4 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X POST "https://mortgage-amortization.underscoredone.com/calculate" \
  -H "content-type: application/json" \
  -d '{"annual_rate_percent":6.5,"extra_monthly_payment":300,"one_time_payments":[{"amount":10000,"month":24}],"principal":400000,"rounding":2,"start_date":"2026-07-01","summary_only":false,"term_months":360}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fmortgage-amortization.underscoredone.com%2Fcalculate
const res = await pay("https://mortgage-amortization.underscoredone.com/calculate", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({"annual_rate_percent":6.5,"extra_monthly_payment":300,"one_time_payments":[{"amount":10000,"month":24}],"principal":400000,"rounding":2,"start_date":"2026-07-01","summary_only":false,"term_months":360}),
});
console.log(await res.json());

Example input

{
  "annual_rate_percent": 6.5,
  "extra_monthly_payment": 300,
  "one_time_payments": [
    {
      "amount": 10000,
      "month": 24
    }
  ],
  "principal": 400000,
  "rounding": 2,
  "start_date": "2026-07-01",
  "summary_only": false,
  "term_months": 360
}

Example output

{
  "api_version": "1.0.0",
  "inputs_echo": {
    "annual_rate_percent": 6.5,
    "principal": 400000,
    "start_date": "2026-07-01",
    "term_months": 360
  },
  "rounding": {
    "decimals": 2,
    "final_payment_adjusted": true,
    "mode": "half_even"
  },
  "schedule": [
    {
      "balance": 399338.4,
      "date": "2026-07-01",
      "extra_applied": 300,
      "interest": 2166.67,
      "payment": 2828.27,
      "payment_number": 1,
      "principal": 661.6,
      "scheduled_payment": 2528.27
    }
  ],
  "scheduled_payment": 2528.27,
  "summary": {
    "final_payment": 2530.88,
    "payoff_date": "2056-06-01",
    "scheduled_term_months": 360,
    "total_interest": 510179.81,
    "total_paid": 910179.81
  },
  "with_extra_payments": {
    "actual_term_months": 257,
    "final_payment": 200.36,
    "interest_saved": 175942.33,
    "months_saved": 103,
    "payoff_date": "2047-11-01",
    "total_interest": 334237.48,
    "total_paid": 734237.48
  }
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
4 h agoPassed402223 ms$0.01