Finance Amortization Schedule
by AgentsToolsHub in Markets & finance
Full loan amortization: the exact monthly payment, a year-by-year principal/interest/balance table, total interest, and the effect of extra monthly payments — payoff months saved and interest saved. Deterministic mortgage math agents can quote line by line. Use this when an agent needs to full yearly schedule + extra-payment savings.
https://agentstoolshub.com/api/v1/finance/amortization-schedule- Price
- $0.003
- per call in USDC
- Uptime
- 100%
- last 30 days
- Response time
- 160 ms
- 275 ms slowest 5%
- Last check
- Passed
- 52 min ago, next any minute now
Reliability
Status and outage history · Atom feed · Watch with other listings
How to call it
GET https://agentstoolshub.com/api/v1/finance/amortization-schedule
Each call costs $0.003 in USDC on Base, paid with the request over x402.
Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.
Example request
From the listing.
GET https://agentstoolshub.com/api/v1/finance/amortization-schedule?annualRate=4.5&principal=300000&years=30Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
annualRate | number | Yes | Annual rate (%) |
extraMonthly | number | No | Extra monthly payment |
principal | number | Yes | Loan amount |
years | number | Yes | Term (years) |
Example response
The provider's example. We can't check it without paying. Shortened for display.
Example response, 156 lines
{
"result": {
"answer": "1,520.06/mo · paid off in 360 months (30.0 yrs)",
"answerLabel": "300,000 @ 4.5% / 30y",
"details": [
{
"label": "Monthly payment (P&I)",
"value": "1,520.06"
},
{
"label": "Total interest",
"value": "247,220.13"
},
{
"label": "Total paid",
"value": "547,220.13"
}
],
"steps": [
"Payment = P·i/(1−(1+i)^−n) with i = 0.003750, n = 360 → 1,520.06",
"Simulated 360 months"
],
"table": {
"columns": [
"Year",
"Principal paid",
"Interest paid",
"Balance"
],
"rows": [
[
1,
"4,839.68",
"13,400.99",
"295,160.32"
],
[
2,
"5,062.01",
"13,178.66",
"290,098.31"
],
[
3,
"5,294.56",
"12,946.11",
"284,803.74"
],
[
4,
"5,537.79",
"12,702.88",
"279,265.95"
],
[
5,
"5,792.2",
"12,448.47",
"273,473.75"
],
[
6,
"6,058.29",
"12,182.38",
"267,415.46"
],
[
7,
"6,336.61",
"11,904.06",
"261,078.85"
],
[
8,
"6,627.71",
"11,612.96",
"254,451.14"
],
[
9,
"6,932.19",
"11,308.48",
"247,518.95"
],
[
10,
"7,250.65",
"10,990.02",
"240,268.3"
],
[
11,
"7,583.74",
"10,656.93",
"232,684.56"
],
[
12,
"7,932.14",
"10,308.53",
"224,752.42"
],
[
13,
"8,296.54",
"9,944.13",
"216,455.88"
],
[
14,
"8,677.68",
"9,562.99",
"207,778.2"
],
[
15,
"9,076.33",
"9,164.34",
"198,701.86"
],
[
16,
"9,493.3",
"8,747.37",
"189,208.57"
],
[
17,
"9,929.42",
"8,311.25",
"179,279.15"
],
[
18,
"10,385.57",
"7,855.1",
"168,893.57"
],
[
19,
"10,862.69",
"7,377.98",
"158,030.89"
],
[
20,
"11,361.72",
"6,878.95",
"146,669.17"
]
]
},
"value": 1520.055929
},
"tool": "amortization-schedule"
}Call it from code
The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.003.
curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://agentstoolshub.com/api/v1/finance/amortization-schedule?annualRate=4.5&principal=300000&years=30'
# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://agentstoolshub.com/api/v1/finance/amortization-schedule?annualRate=4.5&principal=300000&years=30' \
| grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decodeJavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
// Pays at most $0.003 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.003" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.003 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fagentstoolshub.com%2Fapi%2Fv1%2Ffinance%2Famortization-schedule
const res = await pay("https://agentstoolshub.com/api/v1/finance/amortization-schedule?annualRate=4.5&principal=300000&years=30");
console.log(res.status, await res.text());Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
# Pays at most $0.003 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.003"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))
with x402_requests(client) as session:
res = session.get("https://agentstoolshub.com/api/v1/finance/amortization-schedule?annualRate=4.5&principal=300000&years=30")
print(res.status_code, res.text)Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 52 min ago | Passed | 402 | 261 ms | $0.003 |
| 4 h ago | Passed | 402 | 153 ms | $0.003 |
| 7 h ago | Passed | 402 | 197 ms | $0.003 |
| 10 h ago | Passed | 402 | 153 ms | $0.003 |
| 13 h ago | Passed | 402 | 175 ms | $0.003 |
Show 8 older checks
| 17 h ago | Passed | 402 | 215 ms | $0.003 |
| 22 h ago | Passed | 402 | 146 ms | $0.003 |
| 27 h ago | Passed | 402 | 259 ms | $0.003 |
| 32 h ago | Passed | 402 | 275 ms | $0.003 |
| 38 h ago | Passed | 402 | 143 ms | $0.003 |
| 43 h ago | Passed | 402 | 155 ms | $0.003 |
| 2 days ago | Passed | 402 | 160 ms | $0.003 |
| 2 days ago | Passed | 402 | 144 ms | $0.003 |