{"openapi":"3.1.0","info":{"title":"Financial Calculator API","version":"1.0.0","description":"Common money math as an API. Calculate a loan: its monthly payment, total interest and total cost — with an optional full amortization schedule and the effect of extra monthly payments. Break down a mortgage into PITI (principal & interest, property tax, insurance, PMI and HOA) from a purchase price and down payment. Project compound interest and savings growth with optional recurring contributions (future value, total contributions, interest earned). And compute ROI on an investment, with annualised return when you supply the holding period. Every calculation is exact, deterministic and instant — pure local math, no third-party service and nothing stored. Live. 5 endpoints. Built for loan and mortgage calculators, savings and retirement planners, fintech tools and budgeting apps. Distinct from market-data and bank-data services. No upstream key.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/fincalc-api","description":"oanor gateway"}],"tags":[{"name":"Loans"},{"name":"Savings"},{"name":"Investing"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/loan":{"get":{"operationId":"get_v1_loan","tags":["Loans"],"summary":"Loan amortization","description":"","parameters":[{"name":"principal","in":"query","required":true,"description":"Loan amount","schema":{"type":"string"},"example":"200000"},{"name":"rate","in":"query","required":true,"description":"Annual interest rate %","schema":{"type":"string"},"example":"6"},{"name":"years","in":"query","required":true,"description":"Term in years","schema":{"type":"string"},"example":"30"},{"name":"extra","in":"query","required":false,"description":"Extra monthly payment","schema":{"type":"string"}},{"name":"schedule","in":"query","required":false,"description":"true → include amortization table","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"principal":200000,"total_paid":431676.38,"annual_rate":6,"term_months":360,"extra_payment":0,"total_interest":231676.38,"monthly_payment":1199.1,"number_of_payments":360,"base_monthly_payment":1199.1},"meta":{"timestamp":"2026-06-02T16:52:02.733Z","request_id":"4e0c4df5-979a-44be-83aa-694d315b79e3"},"status":"ok","message":"Loan amortization","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/mortgage":{"get":{"operationId":"get_v1_mortgage","tags":["Loans"],"summary":"Mortgage PITI","description":"","parameters":[{"name":"price","in":"query","required":true,"description":"Purchase price","schema":{"type":"string"},"example":"400000"},{"name":"down_payment","in":"query","required":false,"description":"Down payment","schema":{"type":"string"},"example":"80000"},{"name":"rate","in":"query","required":true,"description":"Annual rate %","schema":{"type":"string"},"example":"6.5"},{"name":"years","in":"query","required":false,"description":"Term years (default 30)","schema":{"type":"string"},"example":"30"},{"name":"property_tax","in":"query","required":false,"description":"Annual property tax","schema":{"type":"string"},"example":"4800"},{"name":"insurance","in":"query","required":false,"description":"Annual insurance","schema":{"type":"string"},"example":"1200"},{"name":"pmi","in":"query","required":false,"description":"Annual PMI","schema":{"type":"string"}},{"name":"hoa","in":"query","required":false,"description":"Monthly HOA","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"monthly":{"hoa":0,"pmi":0,"total":2522.62,"insurance":100,"property_tax":400,"principal_interest":2022.62},"term_years":30,"total_paid":728142.36,"annual_rate":6.5,"loan_amount":320000,"total_interest":408142.36},"meta":{"timestamp":"2026-06-02T16:52:02.838Z","request_id":"8b79178f-d519-4f50-bfe0-5f94643c82af"},"status":"ok","message":"Mortgage PITI","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/compound-interest":{"get":{"operationId":"get_v1_compound_interest","tags":["Savings"],"summary":"Compound interest","description":"","parameters":[{"name":"principal","in":"query","required":true,"description":"Starting amount","schema":{"type":"string"},"example":"10000"},{"name":"rate","in":"query","required":true,"description":"Annual rate %","schema":{"type":"string"},"example":"7"},{"name":"years","in":"query","required":true,"description":"Years","schema":{"type":"string"},"example":"20"},{"name":"compounds_per_year","in":"query","required":false,"description":"Default 12","schema":{"type":"string"},"example":"12"},{"name":"contribution","in":"query","required":false,"description":"Per-period contribution","schema":{"type":"string"},"example":"500"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"years":20,"principal":10000,"annual_rate":7,"future_value":300850.72,"interest_earned":170850.72,"compounds_per_year":12,"total_contributions":130000,"contribution_per_period":500},"meta":{"timestamp":"2026-06-02T16:52:02.926Z","request_id":"989624e9-4e07-496e-8aa6-288ca0908d42"},"status":"ok","message":"Compound interest","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/roi":{"get":{"operationId":"get_v1_roi","tags":["Investing"],"summary":"Return on investment","description":"","parameters":[{"name":"initial","in":"query","required":true,"description":"Initial value","schema":{"type":"string"},"example":"1000"},{"name":"final","in":"query","required":true,"description":"Final value","schema":{"type":"string"},"example":"2500"},{"name":"years","in":"query","required":false,"description":"Holding period (for annualised)","schema":{"type":"string"},"example":"5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"final":2500,"initial":1000,"net_gain":1500,"roi_percent":150,"annualized_percent":20.11},"meta":{"timestamp":"2026-06-02T16:52:03.033Z","request_id":"adfae80d-297a-40ec-904d-7566891c772e"},"status":"ok","message":"Return on investment","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream; this gateway requires x-api-key","name":"Financial Calculator API","note":"Loan amortization (/v1/loan: principal, rate, years; ?schedule=true for the table; ?extra= for extra payments), mortgage PITI (/v1/mortgage: price/down_payment or principal, rate, years, property_tax, insurance, pmi, hoa), compound interest (/v1/compound-interest: principal, rate, years, compounds_per_year, contribution), and ROI (/v1/roi: initial, final, ?years). Deterministic and instant. Distinct from finance-api (market data).","source":"Local financial math — no key, no upstream","endpoints":5},"meta":{"timestamp":"2026-06-02T16:52:03.141Z","request_id":"e88be9bc-91d1-4613-a0e8-13f820f30182"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1620,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":820,"monthly_call_quota":34000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2780,"monthly_call_quota":195000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6380,"monthly_call_quota":990000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/fincalc-api"}