{"uid":"cap_Mpjz2CY45ixFyzDyPSGNB","slug":"loan-amortization-schedule-builder-046f7d04","name":"Loan Amortization Schedule Builder","description":"Build the full per-period amortization schedule for a fully-amortizing loan. Each row reports the period number, payment, the principal vs. interest split for that payment, and the remaining balance after that payment. Use this when the user wants to see how interest tapers over the life of the loan, or to model an extra-payment scenario by reading the balance at any period.","url":"https://agent402.tools/api/amortization","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"maxRows":{"type":"number","description":"Cap the number of schedule rows returned (default 360; absolute max 1200 = 100 years monthly). Use a small value to preview just the first few rows."},"principal":{"type":"number","description":"Loan principal (positive)"},"termYears":{"type":"number","description":"Loan term in years"},"annualRate":{"type":"number","description":"Annual interest rate as decimal (0.06 = 6%)"},"paymentsPerYear":{"type":"number","description":"Payments per year (default 12 = monthly)"}}},"responseSchema":{"type":"json","example":{"payment":1199.1,"periods":360,"schedule":[{"period":1,"balance":199800.9,"payment":1199.1,"interest":1000,"principal":199.1},{"period":2,"balance":199600.8,"payment":1199.1,"interest":999,"principal":200.1},{"period":3,"balance":199399.71,"payment":1199.1,"interest":998,"principal":201.1}],"totalPaid":431676.38,"rowsReturned":3,"totalInterest":231676.38}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_dC-GWtI8INCmfEMRxsIfe","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Generates a full per-period amortization schedule for a fully-amortizing loan, showing payment, principal/interest split, and remaining balance for each period.","exampleAgentPrompt":"Can you build me the full monthly amortization schedule for a $350,000 mortgage at 6.5% annual interest over 30 years?","exampleUseCases":null,"resultDescription":"An array of amortization rows, each containing the period number, total payment amount, the principal and interest split for that payment, and the remaining loan balance after the payment. By default returns up to 360 rows (monthly for 30 years), capped at 1200 rows maximum.","failureModes":["Missing required fields (principal, annualRate, termYears) return a validation error","Non-positive principal or rate values may produce invalid results","maxRows exceeding 1200 is clamped or rejected","Zero or negative paymentsPerYear causes division error","Payment fails due to insufficient USDC balance (x402 payment required)"],"whenToPreferThis":"Use this endpoint when you need a detailed, period-by-period amortization table showing the exact principal/interest breakdown for each payment over the life of a loan. Prefer this over simple monthly payment calculators when the user wants the full schedule, not just a single payment figure.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T19:14:04.385Z","isFirstParty":false}