{"openapi":"3.1.0","info":{"title":"CalcFleet Financial Calculators API","version":"1.0.0","description":"REST API for 122 financial, mortgage, AI-cost, health, home, and business calculators.\nEach calculator endpoint accepts a JSON body matching the documented schema and returns a structured numeric result.\n\nPro-tier endpoints: POST /api/v1/graph composes calculators into a deterministic graph; GET /api/v1/ai-pricing serves the maintained, source-cited LLM/GPU pricing dataset.\n\n## Authentication\nThe API is a free anonymous trial: no key is required to call any endpoint —\njust POST JSON to `https://calcfleet.com/api/v1/...`. An optional\n`Authorization: Bearer cf_…` account key raises the per-IP rate limits.\nAbuse is bounded by a documented per-IP rate limit, not a gate.\nSee https://calcfleet.com/developers for the current auth story.\n\n## Interactive exploration\nEvery calculator also has a free interactive web page at\n`https://calcfleet.com/{niche}/{slug}` — useful for sharing results with users.","contact":{"name":"CalcFleet Developers","url":"https://calcfleet.com/developers"},"license":{"name":"CalcFleet API Terms","url":"https://calcfleet.com/developers"}},"servers":[{"url":"https://calcfleet.com","description":"First-party API — free anonymous trial; optional Authorization: Bearer cf_… key for higher rate limits."}],"paths":{"/api/v1/tools/mortgage-overpayment-calculator":{"post":{"operationId":"mortgageOverpaymentCalculator","summary":"Mortgage Overpayment Calculator","description":"See exactly how much interest and time you save by overpaying your mortgage. Instant amortization schedule plus a clear breakdown of the months you save.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"annualRatePct":{"type":"number","minimum":0,"maximum":50},"termYears":{"type":"number","minimum":0.08333333333333333,"maximum":50},"extraMonthly":{"type":"number","minimum":0,"maximum":1000000}},"required":["principal","annualRatePct","termYears","extraMonthly"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["mortgage"]}},"/api/v1/tools/debt-payoff-calculator":{"post":{"operationId":"debtPayoffCalculator","summary":"Debt Payoff Calculator: Avalanche vs Snowball","description":"Compare the avalanche and snowball debt payoff strategies side by side. See how much interest you save and how many months sooner you'll be debt-free.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"debts":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":30},"balance":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"aprPct":{"type":"number","minimum":0,"maximum":100},"minPayment":{"type":"number","exclusiveMinimum":0,"maximum":1000000}},"required":["name","balance","aprPct","minPayment"],"additionalProperties":false}},"extraMonthly":{"type":"number","minimum":0,"maximum":1000000},"strategy":{"type":"string","enum":["avalanche","snowball"]}},"required":["debts","extraMonthly","strategy"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["debt"]}},"/api/v1/tools/freelance-hourly-rate-calculator":{"post":{"operationId":"freelanceHourlyRateCalculator","summary":"Freelance Hourly Rate Calculator","description":"Calculate your freelance hourly rate accounting for taxes, business expenses, and a profit margin. Find out exactly what to charge to hit your income goal.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"desiredAnnualIncome":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"annualBusinessExpenses":{"type":"number","minimum":0,"maximum":1000000},"taxRatePct":{"type":"number","minimum":0,"maximum":60},"billableHoursPerWeek":{"type":"number","exclusiveMinimum":0,"maximum":60},"workWeeksPerYear":{"type":"number","exclusiveMinimum":0,"maximum":52},"profitMarginPct":{"type":"number","minimum":0,"maximum":50}},"required":["desiredAnnualIncome","annualBusinessExpenses","taxRatePct","billableHoursPerWeek","workWeeksPerYear","profitMarginPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["freelance"]}},"/api/v1/tools/compound-interest-calculator":{"post":{"operationId":"compoundInterestCalculator","summary":"Compound Interest Calculator","description":"Calculate compound interest with monthly contributions. See your balance grow year by year and discover exactly how much of your final balance is pure interest.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"initialPrincipal":{"type":"number","minimum":0,"maximum":100000000},"monthlyContribution":{"type":"number","minimum":0,"maximum":1000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"years":{"type":"number","minimum":0.08333333333333333,"maximum":80}},"required":["initialPrincipal","monthlyContribution","annualRatePct","years"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/savings-goal-calculator":{"post":{"operationId":"savingsGoalCalculator","summary":"Savings Goal Calculator","description":"Calculate the monthly savings you need to reach any goal. Input your target, current balance, annual rate, and years to see your required monthly contribution.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"goalAmount":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"currentSavings":{"type":"number","minimum":0,"maximum":100000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"years":{"type":"number","minimum":0.08333333333333333,"maximum":80}},"required":["goalAmount","currentSavings","annualRatePct","years"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/car-loan-calculator":{"post":{"operationId":"carLoanCalculator","summary":"Car Loan Calculator with Sales Tax and Trade-In","description":"Calculate your exact monthly car payment including sales tax and trade-in. View your full amortization schedule, total interest paid, and cost of ownership.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"vehiclePrice":{"type":"number","exclusiveMinimum":0,"maximum":2000000},"downPayment":{"type":"number","minimum":0,"maximum":2000000},"tradeInValue":{"type":"number","minimum":0,"maximum":2000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"termMonths":{"type":"integer","exclusiveMinimum":0,"maximum":120},"salesTaxPct":{"type":"number","minimum":0,"maximum":15}},"required":["vehiclePrice","downPayment","tradeInValue","annualRatePct","termMonths","salesTaxPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/break-even-calculator":{"post":{"operationId":"breakEvenCalculator","summary":"Break-Even Point Calculator","description":"Calculate your break-even point in units and revenue. Enter fixed costs, variable cost per unit, and price to see exactly when your business turns profitable.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fixedCosts":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"variableCostPerUnit":{"type":"number","minimum":0,"maximum":1000000},"pricePerUnit":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"targetProfit":{"type":"number","minimum":0,"maximum":100000000}},"required":["fixedCosts","variableCostPerUnit","pricePerUnit","targetProfit"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/margin-markup-calculator":{"post":{"operationId":"marginMarkupCalculator","summary":"Margin and Markup Calculator","description":"Calculate gross profit, margin percentage, and markup percentage instantly. Enter cost and price to see the right number for your business pricing strategy.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cost":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"price":{"type":"number","exclusiveMinimum":0,"maximum":10000000}},"required":["cost","price"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/rent-vs-buy-calculator":{"post":{"operationId":"rentVsBuyCalculator","summary":"Rent vs Buy Calculator","description":"Compare renting vs buying over any timeline. See which builds more wealth, when break-even hits, and how appreciation and rent increases tip the balance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthlyRent":{"type":"number","exclusiveMinimum":0,"maximum":100000},"homePrice":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"downPaymentPct":{"type":"number","minimum":0,"maximum":100},"mortgageRatePct":{"type":"number","minimum":0,"maximum":30},"mortgageTermYears":{"type":"integer","exclusiveMinimum":0,"maximum":40},"horizonYears":{"type":"integer","exclusiveMinimum":0,"maximum":40},"homeAppreciationPct":{"type":"number","minimum":0,"maximum":15},"rentIncreasePct":{"type":"number","minimum":0,"maximum":15},"maintenancePctAnnual":{"type":"number","minimum":0,"maximum":5},"buyClosingCostsPct":{"type":"number","minimum":0,"maximum":10},"sellCostsPct":{"type":"number","minimum":0,"maximum":10},"investmentReturnPct":{"type":"number","minimum":0,"maximum":15}},"required":["monthlyRent","homePrice","downPaymentPct","mortgageRatePct","mortgageTermYears","horizonYears","homeAppreciationPct","rentIncreasePct","maintenancePctAnnual","buyClosingCostsPct","sellCostsPct","investmentReturnPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/fire-calculator":{"post":{"operationId":"fireCalculator","summary":"FIRE Calculator: When Can You Retire Early?","description":"Calculate your FIRE number and years to early retirement. Enter current savings, annual expenses, and expected return rate to reach financial independence.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentAge":{"type":"integer","minimum":15,"maximum":80},"currentSavings":{"type":"number","minimum":0,"maximum":100000000},"annualExpenses":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"annualSavings":{"type":"number","minimum":0,"maximum":10000000},"expectedReturnPct":{"type":"number","minimum":0,"maximum":15},"withdrawalRatePct":{"type":"number","minimum":2,"maximum":10}},"required":["currentAge","currentSavings","annualExpenses","annualSavings","expectedReturnPct","withdrawalRatePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/take-home-pay-calculator":{"post":{"operationId":"takeHomePayCalculator","summary":"Take-Home Pay Calculator (US)","description":"Estimate your US take-home pay for 2026. Enter gross salary and filing status to see federal income tax, Social Security, Medicare, and monthly net income.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"grossAnnualSalary":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"filingStatus":{"type":"string","enum":["single","married"]}},"required":["grossAnnualSalary","filingStatus"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["salary"]}},"/api/v1/tools/student-loan-calculator":{"post":{"operationId":"studentLoanCalculator","summary":"Student Loan Payoff Calculator","description":"See exactly how many months until you pay off your student loans, how much extra payments save in interest, and whether refinancing makes financial sense.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"number","exclusiveMinimum":0,"maximum":2000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"monthlyPayment":{"type":"number","exclusiveMinimum":0,"maximum":100000},"extraMonthly":{"type":"number","minimum":0,"maximum":100000},"refinanceRatePct":{"default":null,"anyOf":[{"type":"number","minimum":0,"maximum":30},{"type":"null"}]}},"required":["balance","annualRatePct","monthlyPayment","extraMonthly","refinanceRatePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["loans"]}},"/api/v1/tools/apy-calculator":{"post":{"operationId":"apyCalculator","summary":"APY Calculator: APR to APY Conversion","description":"Convert your nominal rate (APR) to APY instantly. See how compounding frequency—daily, monthly, or quarterly—affects your true annual yield and final balance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nominalRatePct":{"type":"number","exclusiveMinimum":0,"maximum":30},"compounding":{"type":"string","enum":["daily","monthly","quarterly","annually"]},"deposit":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"years":{"type":"number","exclusiveMinimum":0,"maximum":50}},"required":["nominalRatePct","compounding","deposit","years"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/roi-calculator":{"post":{"operationId":"roiCalculator","summary":"ROI Calculator with Annualized Return","description":"Calculate ROI and annualized return on any investment. Add fees and costs to see true net gain and the real annual growth rate behind the headline number.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"initialInvestment":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"finalValue":{"type":"number","minimum":0,"maximum":1000000000},"years":{"type":"number","exclusiveMinimum":0,"maximum":100},"additionalCosts":{"type":"number","minimum":0,"maximum":1000000000}},"required":["initialInvestment","finalValue","years","additionalCosts"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/loan-amortization-calculator":{"post":{"operationId":"loanAmortizationCalculator","summary":"Loan Amortization Calculator","description":"Get your full loan amortization schedule instantly. See how each payment splits between interest and principal, and how extra payments cut total interest paid.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"loanAmount":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"termMonths":{"type":"integer","exclusiveMinimum":0,"maximum":600},"extraMonthly":{"type":"number","minimum":0,"maximum":1000000}},"required":["loanAmount","annualRatePct","termMonths","extraMonthly"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["loans"]}},"/api/v1/tools/paint-calculator":{"post":{"operationId":"paintCalculator","summary":"Paint Calculator: How Much Paint Do I Need?","description":"Calculate exactly how much paint you need for any room. Enter room dimensions, number of coats, doors, windows, and paint coverage to get total liters and cans.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"roomLengthM":{"type":"number","exclusiveMinimum":0,"maximum":100},"roomWidthM":{"type":"number","exclusiveMinimum":0,"maximum":100},"wallHeightM":{"type":"number","exclusiveMinimum":0,"maximum":10},"coats":{"type":"integer","minimum":1,"maximum":5},"doors":{"type":"integer","minimum":0,"maximum":20},"windows":{"type":"integer","minimum":0,"maximum":40},"coveragePerLiterM2":{"type":"number","minimum":5,"maximum":20},"includeCeiling":{"type":"boolean"}},"required":["roomLengthM","roomWidthM","wallHeightM","coats","doors","windows","coveragePerLiterM2","includeCeiling"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/mortgage-refinance-calculator":{"post":{"operationId":"mortgageRefinanceCalculator","summary":"Mortgage Refinance Calculator","description":"Find out if refinancing your mortgage is worth it. Compare monthly payments, see when you break even, and spot if a lower rate actually costs more overall.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentBalance":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"currentRatePct":{"type":"number","minimum":0,"maximum":30},"remainingTermMonths":{"type":"integer","exclusiveMinimum":0,"maximum":600},"newRatePct":{"type":"number","minimum":0,"maximum":30},"newTermMonths":{"type":"integer","exclusiveMinimum":0,"maximum":600},"closingCosts":{"type":"number","minimum":0,"maximum":1000000}},"required":["currentBalance","currentRatePct","remainingTermMonths","newRatePct","newTermMonths","closingCosts"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["mortgage"]}},"/api/v1/tools/tdee-calculator":{"post":{"operationId":"tdeeCalculator","summary":"TDEE Calculator: Daily Calorie Needs","description":"Calculate your Total Daily Energy Expenditure (TDEE) using the Mifflin-St Jeor formula. Find your daily calorie needs for fat loss, maintenance, or muscle gain.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sex":{"type":"string","enum":["male","female"]},"age":{"type":"integer","minimum":15,"maximum":90},"heightCm":{"type":"number","minimum":120,"maximum":230},"weightKg":{"type":"number","minimum":30,"maximum":300},"activity":{"type":"string","enum":["sedentary","light","moderate","active","veryActive"]},"goal":{"type":"string","enum":["maintain","cutting","bulking"]}},"required":["sex","age","heightCm","weightKg","activity","goal"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/macro-calculator":{"post":{"operationId":"macroCalculator","summary":"Macro Calculator: Protein, Carbs and Fat Targets","description":"Calculate your daily protein, carb, and fat targets from your calorie goal. Choose a preset split or customize macros for your fitness or body-composition plan.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dailyCalories":{"type":"number","minimum":800,"maximum":10000},"preset":{"type":"string","enum":["balanced","lowCarb","highProtein","custom"]},"proteinPct":{"type":"integer","minimum":5,"maximum":70},"carbsPct":{"type":"integer","minimum":5,"maximum":70},"fatPct":{"type":"integer","minimum":5,"maximum":70}},"required":["dailyCalories","preset"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/running-pace-calculator":{"post":{"operationId":"runningPaceCalculator","summary":"Running Pace Calculator with Race Predictions","description":"Calculate your per-km and per-mile running pace from any distance and time. Get predicted finish times for 5K, 10K, half marathon, and marathon, plus splits.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"distanceKm":{"type":"number","exclusiveMinimum":0,"maximum":500},"hours":{"type":"integer","minimum":0,"maximum":99},"minutes":{"type":"integer","minimum":0,"maximum":59},"seconds":{"type":"integer","minimum":0,"maximum":59}},"required":["distanceKm","hours","minutes","seconds"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["sport"]}},"/api/v1/tools/rent-affordability-calculator":{"post":{"operationId":"rentAffordabilityCalculator","summary":"Rent Affordability Calculator","description":"Find out how much rent you can afford using the 30% rule, 50/30/20 budget, and a cashflow stress test. All three caps side by side so you see the trade-offs.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"grossMonthlyIncome":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"takeHomePay":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"monthlyFixedExpenses":{"type":"number","minimum":0,"maximum":500000},"dtiPct":{"type":"number","minimum":10,"maximum":50}},"required":["grossMonthlyIncome","takeHomePay","monthlyFixedExpenses","dtiPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/closing-cost-calculator":{"post":{"operationId":"closingCostCalculator","summary":"Mortgage Closing Cost Estimator","description":"Estimate US mortgage closing costs before you buy. See itemized origination, appraisal, title, and prepaid fees with typical ranges and cash to close.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"homePrice":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"loanAmount":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"originationFeePct":{"type":"number","minimum":0,"maximum":5},"appraisalFee":{"type":"number","minimum":0,"maximum":5000},"titleFee":{"type":"number","minimum":0,"maximum":20000},"recordingFee":{"type":"number","minimum":0,"maximum":2000},"prepaidEscrow":{"type":"number","minimum":0,"maximum":20000}},"required":["homePrice","loanAmount","originationFeePct","appraisalFee","titleFee","recordingFee","prepaidEscrow"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["mortgage"]}},"/api/v1/tools/mortgage-points-calculator":{"post":{"operationId":"mortgagePointsCalculator","summary":"Mortgage Discount Points Break-Even Calculator","description":"Find out if buying mortgage discount points is worth it. See the break-even month and net gain over your planned hold period. Points lose if you sell early.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"loanAmount":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"termMonths":{"type":"integer","exclusiveMinimum":0,"maximum":600},"points":{"type":"number","minimum":0,"maximum":10},"rateReductionPerPoint":{"type":"number","minimum":0,"maximum":2},"holdPeriodMonths":{"type":"integer","minimum":1,"maximum":600}},"required":["loanAmount","annualRatePct","termMonths","points","rateReductionPerPoint","holdPeriodMonths"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["mortgage"]}},"/api/v1/tools/home-affordability-calculator":{"post":{"operationId":"homeAffordabilityCalculator","summary":"Home Affordability Calculator","description":"Find out how much house you can afford using the 28/36 DTI rule. Enter income, rate, and debts to get your max loan, price, and a DTI scenarios table.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"grossMonthlyIncome":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"termYears":{"type":"number","minimum":0.08333333333333333,"maximum":50},"downPayment":{"type":"number","minimum":0,"maximum":10000000},"otherMonthlyDebts":{"type":"number","minimum":0,"maximum":1000000},"frontEndDtiPct":{"type":"number","minimum":1,"maximum":50},"backEndDtiPct":{"type":"number","minimum":1,"maximum":65}},"required":["grossMonthlyIncome","annualRatePct","termYears","downPayment","otherMonthlyDebts","frontEndDtiPct","backEndDtiPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["mortgage"]}},"/api/v1/tools/down-payment-calculator":{"post":{"operationId":"downPaymentCalculator","summary":"Down Payment Calculator with PMI Threshold","description":"Calculate your down payment amount, loan size, and PMI status instantly. See the dollar gap to 20% equity and compare multiple down payment scenarios.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"downPct":{"type":"number","minimum":0,"maximum":100}},"required":["price","downPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["mortgage"]}},"/api/v1/tools/mortgage-piti-calculator":{"post":{"operationId":"mortgagePitiCalculator","summary":"Mortgage PITI Calculator","description":"Calculate your full monthly PITI mortgage payment—principal, interest, property taxes, homeowners insurance, and PMI. Full amortization schedule included.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"loanAmount":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"homeValue":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"termYears":{"type":"integer","exclusiveMinimum":0,"maximum":50},"annualPropertyTaxRatePct":{"type":"number","minimum":0,"maximum":10},"annualInsuranceDollars":{"type":"number","minimum":0,"maximum":500000},"pmiRatePct":{"type":"number","minimum":0,"maximum":5}},"required":["loanAmount","homeValue","annualRatePct","termYears","annualPropertyTaxRatePct","annualInsuranceDollars","pmiRatePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["mortgage"]}},"/api/v1/tools/balance-transfer-calculator":{"post":{"operationId":"balanceTransferCalculator","summary":"Balance Transfer Calculator","description":"See how much a 0% balance transfer saves vs staying on your current APR. Enter the fee, promo months, and planned payment to find out if it is worth it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"currentAprPct":{"type":"number","minimum":0,"maximum":100},"transferFeePct":{"type":"number","minimum":0,"maximum":10},"promoMonths":{"type":"integer","minimum":1,"maximum":84},"revertAprPct":{"type":"number","minimum":0,"maximum":100},"monthlyPayment":{"type":"number","minimum":0,"maximum":1000000}},"required":["balance","currentAprPct","transferFeePct","promoMonths","revertAprPct","monthlyPayment"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["debt"]}},"/api/v1/tools/heloc-calculator":{"post":{"operationId":"helocCalculator","summary":"HELOC Payment Calculator (Draw + Repayment)","description":"Calculate your HELOC draw and repayment payments. See the payment shock when interest-only switches to fully amortized, plus total interest across both phases.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"homeValue":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"mortgageBalance":{"type":"number","minimum":0,"maximum":100000000},"cltvPct":{"type":"number","minimum":1,"maximum":100},"drawBalance":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"drawTermMonths":{"type":"integer","exclusiveMinimum":0,"maximum":360},"repayTermMonths":{"type":"integer","exclusiveMinimum":0,"maximum":360}},"required":["homeValue","mortgageBalance","cltvPct","drawBalance","annualRatePct","drawTermMonths","repayTermMonths"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["loans"]}},"/api/v1/tools/debt-consolidation-calculator":{"post":{"operationId":"debtConsolidationCalculator","summary":"Debt Consolidation Calculator","description":"See how your current debts compare against one new consolidation loan. A lower rate with a longer term can still cost you more — see the true lifetime numbers.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"debts":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"balance":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"aprPct":{"type":"number","minimum":0,"maximum":100},"minPayment":{"type":"number","exclusiveMinimum":0,"maximum":1000000}},"required":["balance","aprPct","minPayment"],"additionalProperties":false}},"consolidationAprPct":{"type":"number","minimum":0,"maximum":100},"consolidationTermMonths":{"type":"integer","minimum":1,"maximum":600}},"required":["debts","consolidationAprPct","consolidationTermMonths"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["debt"]}},"/api/v1/tools/credit-card-payoff-calculator":{"post":{"operationId":"creditCardPayoffCalculator","summary":"Credit Card Payoff Calculator","description":"Find out how many months until your credit card is paid off — and how the minimum-payment trap costs you decades and multiples of your original balance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"aprPct":{"type":"number","minimum":0,"maximum":100},"monthlyPayment":{"type":"number","exclusiveMinimum":0,"maximum":100000},"targetMonths":{"default":null,"anyOf":[{"type":"integer","minimum":1,"maximum":600},{"type":"null"}]}},"required":["balance","aprPct","monthlyPayment","targetMonths"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["debt"]}},"/api/v1/tools/personal-loan-calculator":{"post":{"operationId":"personalLoanCalculator","summary":"Personal Loan Calculator with APR & Amortization","description":"Calculate your personal loan monthly payment, total interest, and true effective APR including any origination fee. Full amortization schedule included.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"annualRatePct":{"type":"number","minimum":0,"maximum":60},"termMonths":{"type":"integer","exclusiveMinimum":0,"maximum":360},"originationFeePct":{"type":"number","minimum":0,"maximum":10}},"required":["principal","annualRatePct","termMonths","originationFeePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["loans"]}},"/api/v1/tools/dti-calculator":{"post":{"operationId":"dtiCalculator","summary":"Debt-to-Income (DTI) Ratio Calculator","description":"Calculate your front-end and back-end debt-to-income ratio instantly. See how your debt load compares against the 36%, 43% QM, and 50% lender thresholds.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"housingPayment":{"type":"number","minimum":0,"maximum":100000},"otherMonthlyDebts":{"type":"number","minimum":0,"maximum":100000},"grossMonthlyIncome":{"type":"number","exclusiveMinimum":0,"maximum":1000000}},"required":["housingPayment","otherMonthlyDebts","grossMonthlyIncome"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["loans"]}},"/api/v1/tools/saas-mrr-growth-calculator":{"post":{"operationId":"saasMrrGrowthCalculator","summary":"SaaS MRR Growth Projection Calculator","description":"Model SaaS MRR growth with monthly compounding: add new revenue, subtract churn, apply expansion. See projected ARR and months to any revenue milestone.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startingMrr":{"type":"number","minimum":0,"maximum":10000000},"newMrrPerMonth":{"type":"number","minimum":0,"maximum":1000000},"monthlyChurnPct":{"type":"number","minimum":0,"maximum":50},"monthlyExpansionPct":{"type":"number","minimum":0,"maximum":50},"months":{"type":"integer","minimum":1,"maximum":120},"targetMrr":{"type":"number","minimum":0,"maximum":100000000}},"required":["startingMrr","newMrrPerMonth","monthlyChurnPct","monthlyExpansionPct","months"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/cac-ltv-calculator":{"post":{"operationId":"cacLtvCalculator","summary":"CAC : LTV Ratio Calculator","description":"Calculate Customer Lifetime Value, LTV:CAC ratio with poor/fair/good/excellent verdict bands, CAC payback months, and monthly gross profit per customer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"arpa":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"grossMarginPct":{"type":"number","minimum":0,"maximum":100},"monthlyChurnPct":{"type":"number","minimum":0.01,"maximum":100},"cac":{"type":"number","minimum":0,"maximum":10000000}},"required":["arpa","grossMarginPct","monthlyChurnPct","cac"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/roas-calculator":{"post":{"operationId":"roasCalculator","summary":"ROAS & Break-Even ROAS Calculator","description":"Calculate ROAS and break-even ROAS instantly. Enter revenue, ad spend, and gross margin to see if your campaign is truly profitable — or just spending to spend.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"adSpend":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"revenue":{"type":"number","minimum":0,"maximum":1000000000},"grossMarginPct":{"type":"number","exclusiveMinimum":0,"maximum":100}},"required":["adSpend","revenue","grossMarginPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/churn-rate-calculator":{"post":{"operationId":"churnRateCalculator","summary":"Churn & Retention Rate Calculator","description":"Calculate monthly and annual customer churn, revenue churn, and net revenue retention. Compounding conversion and implied average customer lifetime included.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"startingCustomers":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"lostCustomers":{"type":"number","minimum":0,"maximum":10000000},"startingMRR":{"type":"number","minimum":0,"maximum":1000000000},"lostMRR":{"type":"number","minimum":0,"maximum":1000000000},"expansionMRR":{"type":"number","minimum":0,"maximum":1000000000}},"required":["startingCustomers","lostCustomers","startingMRR","lostMRR","expansionMRR"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/payback-period-calculator":{"post":{"operationId":"paybackPeriodCalculator","summary":"CAC Payback Period Calculator","description":"Calculate your CAC payback period with simple and discounted methods. Find the month your customer acquisition cost is fully recovered, plus a cumulative chart.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cac":{"type":"number","minimum":0,"maximum":100000000},"arpa":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"grossMarginPct":{"type":"number","minimum":0,"maximum":100},"annualDiscountRatePct":{"type":"number","minimum":0,"maximum":100},"targetMonths":{"type":"number","minimum":1,"maximum":360}},"required":["cac","arpa","grossMarginPct","annualDiscountRatePct","targetMonths"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/burn-rate-runway-calculator":{"post":{"operationId":"burnRateRunwayCalculator","summary":"Burn Rate & Runway Calculator","description":"Calculate startup burn rate and cash runway. Gross vs net burn, default alive or dead verdict, and month-by-month cash balance simulation with revenue growth.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cashBalance":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"monthlyExpenses":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"monthlyRevenue":{"type":"number","minimum":0,"maximum":100000000},"monthlyRevenueGrowthPct":{"default":0,"type":"number","minimum":0,"maximum":50},"monthlyExpenseGrowthPct":{"default":0,"type":"number","minimum":0,"maximum":50}},"required":["cashBalance","monthlyExpenses","monthlyRevenue","monthlyRevenueGrowthPct","monthlyExpenseGrowthPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/product-pricing-calculator":{"post":{"operationId":"productPricingCalculator","summary":"Product Pricing Calculator","description":"Set the right selling price for your product. Enter fully-loaded unit cost — materials, labor, overhead, and platform fees — then choose a target margin.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"materials":{"type":"number","minimum":0,"maximum":1000000},"laborHours":{"type":"number","minimum":0,"maximum":10000},"hourlyRate":{"type":"number","minimum":0,"maximum":10000},"overhead":{"type":"number","minimum":0,"maximum":1000000},"feesPct":{"type":"number","minimum":0,"maximum":80},"targetMarginPct":{"type":"number","minimum":0,"maximum":99}},"required":["materials","laborHours","hourlyRate","overhead","feesPct","targetMarginPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/sales-tax-calculator":{"post":{"operationId":"salesTaxCalculator","summary":"US Sales Tax Calculator (by State) + Reverse","description":"Calculate US sales tax by state. Add or strip tax from any price. Select a state to prefill the rate; all 50 states included. 2025 base rates — local rates vary","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["forward","reverse"]},"amount":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"ratePct":{"type":"number","minimum":0,"maximum":30}},"required":["mode","amount","ratePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/amazon-fba-calculator":{"post":{"operationId":"amazonFbaCalculator","summary":"Amazon FBA Profit Calculator","description":"Calculate Amazon FBA net profit, margin, and ROI for any product. Enter price, COGS, and size tier to see the full fee breakdown and your break-even price.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price":{"type":"number","exclusiveMinimum":0,"maximum":10000},"cogs":{"type":"number","minimum":0,"maximum":10000},"adCost":{"default":0,"type":"number","minimum":0,"maximum":10000},"sizeTier":{"default":"large_standard_1lb","type":"string","enum":["small_standard","large_standard_1lb","large_standard_2lb","large_standard_3lb","large_bulky","extra_large"]},"referralRatePct":{"default":15,"type":"number","minimum":1,"maximum":50}},"required":["price","cogs","adCost","sizeTier","referralRatePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/etsy-fee-calculator":{"post":{"operationId":"etsyFeeCalculator","summary":"Etsy Fee & Profit Calculator","description":"Calculate Etsy fees, net proceeds, and break-even price for any listing. Fee breakdown always visible: listing $0.20, transaction 6.5%, payment 3%+$0.25.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"itemPrice":{"type":"number","exclusiveMinimum":0,"maximum":50000},"shippingPrice":{"type":"number","minimum":0,"maximum":10000},"cogs":{"type":"number","minimum":0,"maximum":50000},"processingRatePct":{"type":"number","minimum":0,"maximum":20},"processingFlat":{"type":"number","minimum":0,"maximum":10},"offsiteAds":{"type":"string","enum":["12","15","none"]}},"required":["itemPrice","shippingPrice","cogs","processingRatePct","processingFlat","offsiteAds"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/ecommerce-profit-margin-calculator":{"post":{"operationId":"ecommerceProfitMarginCalculator","summary":"Ecommerce Profit Margin Calculator","description":"Calculate your true ecommerce profit margin including COGS, shipping, packaging, payment fees, and ad spend per unit. See contribution vs fully-loaded margin.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"cogs":{"type":"number","minimum":0,"maximum":1000000},"shippingCost":{"type":"number","minimum":0,"maximum":1000000},"packagingCost":{"type":"number","minimum":0,"maximum":1000000},"paymentFeePct":{"type":"number","minimum":0,"maximum":100},"platformFeePct":{"type":"number","minimum":0,"maximum":100},"adCostPerUnit":{"type":"number","minimum":0,"maximum":1000000},"returnsAllowancePct":{"type":"number","minimum":0,"maximum":50}},"required":["price","cogs","shippingCost","packagingCost","paymentFeePct","platformFeePct","adCostPerUnit","returnsAllowancePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/solar-panel-savings-calculator":{"post":{"operationId":"solarPanelSavingsCalculator","summary":"Solar Panel Savings Calculator","description":"Estimate how much a rooftop solar system saves on your power bill: enter size, sun hours, cost, and any currently applicable credit to see yearly savings and payback.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"systemKW":{"type":"number","minimum":0.1,"maximum":1000},"peakSunHours":{"type":"number","minimum":0.5,"maximum":12},"derate":{"type":"number","minimum":0.1,"maximum":1},"electricityRate":{"type":"number","minimum":0,"maximum":5},"grossCost":{"type":"number","minimum":0,"maximum":10000000},"taxCreditPct":{"type":"number","minimum":0,"maximum":100},"horizonYears":{"type":"integer","minimum":1,"maximum":40}},"required":["systemKW","peakSunHours","derate","electricityRate","grossCost","taxCreditPct","horizonYears"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/solar-system-size-calculator":{"post":{"operationId":"solarSystemSizeCalculator","summary":"Solar System Size Calculator (kW Needed)","description":"Find the solar system size you need: enter yearly kWh usage, peak sun hours, and panel wattage to get the required kW and the number of panels it takes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"annualUsageKWh":{"type":"number","minimum":1,"maximum":1000000},"peakSunHours":{"type":"number","minimum":0.5,"maximum":12},"derate":{"type":"number","minimum":0.1,"maximum":1},"panelWatts":{"type":"number","minimum":50,"maximum":1000},"offsetFraction":{"type":"number","minimum":0.01,"maximum":2}},"required":["annualUsageKWh","peakSunHours","derate","panelWatts","offsetFraction"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/electricity-cost-calculator":{"post":{"operationId":"electricityCostCalculator","summary":"Appliance Electricity Cost Calculator","description":"Work out what any appliance really costs to run. Enter its watts, hours per day, and your kWh rate to see the cost per day, month, and year at a glance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"watts":{"type":"number","minimum":0,"maximum":100000},"hoursPerDay":{"type":"number","minimum":0,"maximum":24},"rate":{"type":"number","minimum":0,"maximum":5}},"required":["watts","hoursPerDay","rate"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/ev-charging-cost-calculator":{"post":{"operationId":"evChargingCostCalculator","summary":"EV Charging Cost Calculator","description":"See what it really costs to charge your EV at home or on public chargers. Enter battery size, charge window, and rates for cost per charge and per mile.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"batteryKWh":{"type":"number","minimum":1,"maximum":500},"currentPct":{"type":"number","minimum":0,"maximum":100},"targetPct":{"type":"number","minimum":0,"maximum":100},"efficiency":{"type":"number","minimum":0.5,"maximum":1},"homeRate":{"type":"number","minimum":0,"maximum":5},"publicRate":{"type":"number","minimum":0,"maximum":5},"milesPerKWh":{"type":"number","minimum":0.1,"maximum":20}},"required":["batteryKWh","currentPct","targetPct","efficiency","homeRate","publicRate","milesPerKWh"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/heat-pump-savings-calculator":{"post":{"operationId":"heatPumpSavingsCalculator","summary":"Heat Pump vs Furnace Savings Calculator","description":"Compare a heat pump against electric resistance or a furnace. Enter your heating need, COP, and rate to see yearly running cost, savings, and payback.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"heatNeedKWh":{"type":"number","minimum":1,"maximum":1000000},"cop":{"type":"number","minimum":1,"maximum":6},"electricityRate":{"type":"number","minimum":0,"maximum":5},"comparisonCop":{"type":"number","minimum":0.1,"maximum":2},"installedCostDelta":{"type":"number","minimum":0,"maximum":1000000}},"required":["heatNeedKWh","cop","electricityRate","comparisonCop","installedCostDelta"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/home-battery-size-calculator":{"post":{"operationId":"homeBatterySizeCalculator","summary":"Home Battery Backup Size Calculator","description":"Size a home backup battery. Enter your essential load in kW and hours of backup to get the kWh needed, how many battery units, and runtime at each load.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"essentialLoadKW":{"type":"number","minimum":0.01,"maximum":100},"backupHours":{"type":"number","minimum":0.5,"maximum":240},"depthOfDischarge":{"type":"number","minimum":0.1,"maximum":1},"unitCapacityKWh":{"type":"number","minimum":0.5,"maximum":1000}},"required":["essentialLoadKW","backupHours","depthOfDischarge","unitCapacityKWh"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/car-affordability-calculator":{"post":{"operationId":"carAffordabilityCalculator","summary":"Car Affordability Calculator","description":"How much car can you afford? Enter your monthly budget, APR, loan term, and down payment to see your max loan and car price, plus a 15%-of-income rule check.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthlyPayment":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"annualRatePct":{"type":"number","minimum":0,"maximum":30},"termMonths":{"type":"integer","exclusiveMinimum":0,"maximum":120},"downPayment":{"type":"number","minimum":0,"maximum":2000000},"tradeIn":{"type":"number","minimum":0,"maximum":2000000},"monthlyIncome":{"type":"number","minimum":0,"maximum":10000000}},"required":["monthlyPayment","annualRatePct","termMonths","downPayment","tradeIn"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/car-lease-calculator":{"post":{"operationId":"carLeaseCalculator","summary":"Car Lease Payment Calculator (Money Factor)","description":"Estimate your monthly car lease payment from the cap cost, residual, term, and money factor. See the depreciation and finance split, sales tax, and APR.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"capCost":{"type":"number","exclusiveMinimum":0,"maximum":2000000},"residual":{"type":"number","minimum":0,"maximum":2000000},"termMonths":{"type":"integer","exclusiveMinimum":0,"maximum":120},"moneyFactor":{"type":"number","minimum":0,"maximum":1},"salesTaxPct":{"type":"number","minimum":0,"maximum":15}},"required":["capCost","residual","termMonths","moneyFactor","salesTaxPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/lease-vs-buy-car-calculator":{"post":{"operationId":"leaseVsBuyCarCalculator","summary":"Lease vs Buy a Car Calculator","description":"Compare leasing versus buying a car over the same time horizon. See each total cost, the difference, and true net cost per month once resale value is counted.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"horizonMonths":{"type":"integer","exclusiveMinimum":0,"maximum":240},"leaseDownPayment":{"type":"number","minimum":0,"maximum":2000000},"leaseMonthly":{"type":"number","minimum":0,"maximum":2000000},"leaseFees":{"type":"number","minimum":0,"maximum":2000000},"buyDownPayment":{"type":"number","minimum":0,"maximum":2000000},"buyMonthly":{"type":"number","minimum":0,"maximum":2000000},"estimatedMaintenance":{"type":"number","minimum":0,"maximum":2000000},"resaleValue":{"type":"number","minimum":0,"maximum":2000000}},"required":["horizonMonths","leaseDownPayment","leaseMonthly","leaseFees","buyDownPayment","buyMonthly","estimatedMaintenance","resaleValue"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/car-depreciation-calculator":{"post":{"operationId":"carDepreciationCalculator","summary":"Car Depreciation Calculator","description":"Estimate what your car will be worth in the years ahead. Enter price and depreciation rates to see a year-by-year value curve, total loss, and percent lost.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price":{"type":"number","minimum":0,"maximum":10000000},"firstYearRate":{"type":"number","minimum":0,"maximum":1},"annualRate":{"type":"number","minimum":0,"maximum":1},"horizonYears":{"type":"integer","minimum":1,"maximum":40}},"required":["price","firstYearRate","annualRate","horizonYears"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/cost-per-mile-calculator":{"post":{"operationId":"costPerMileCalculator","summary":"Cost Per Mile to Own a Car Calculator","description":"See what your car truly costs to drive: enter yearly fuel, maintenance, insurance, depreciation, and financing interest or lease cost to get your real cost per mile driven.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fuel":{"type":"number","minimum":0,"maximum":1000000},"maintenance":{"type":"number","minimum":0,"maximum":1000000},"insurance":{"type":"number","minimum":0,"maximum":1000000},"depreciation":{"type":"number","minimum":0,"maximum":1000000},"financingOrLeaseCost":{"type":"number","minimum":0,"maximum":1000000},"annualMiles":{"type":"number","minimum":1,"maximum":1000000}},"required":["fuel","maintenance","insurance","depreciation","financingOrLeaseCost","annualMiles"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/gas-vs-electric-car-calculator":{"post":{"operationId":"gasVsElectricCarCalculator","summary":"Gas vs Electric Car Cost Calculator","description":"Compare the yearly fuel cost of a gas car versus an electric car. Enter miles, MPG, and rates to see annual savings, break-even years, and 5-year totals.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"annualMiles":{"type":"number","minimum":1,"maximum":500000},"mpg":{"type":"number","minimum":1,"maximum":200},"gasPricePerGal":{"type":"number","minimum":0,"maximum":100},"kWhPerMile":{"type":"number","minimum":0.01,"maximum":5},"electricityRate":{"type":"number","minimum":0,"maximum":5},"evPricePremium":{"default":0,"type":"number","minimum":0,"maximum":1000000}},"required":["annualMiles","mpg","gasPricePerGal","kWhPerMile","electricityRate","evPricePremium"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["auto"]}},"/api/v1/tools/flooring-calculator":{"post":{"operationId":"flooringCalculator","summary":"Flooring Calculator (Boxes & Cost)","description":"Figure out how many boxes of flooring to buy and what it costs. Enter room length, width, waste percentage, box coverage, and price per box for an estimate.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lengthFt":{"type":"number","exclusiveMinimum":0,"maximum":500},"widthFt":{"type":"number","exclusiveMinimum":0,"maximum":500},"wastePct":{"type":"number","minimum":0,"maximum":100},"boxCoverageSqFt":{"type":"number","exclusiveMinimum":0,"maximum":500},"pricePerBox":{"type":"number","minimum":0,"maximum":100000}},"required":["lengthFt","widthFt","wastePct","boxCoverageSqFt","pricePerBox"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/tile-calculator":{"post":{"operationId":"tileCalculator","summary":"Tile Calculator (Tiles Needed)","description":"Calculate how many floor or wall tiles you need. Enter room size, tile dimensions, and waste percentage to get total tiles, boxes to buy, and material cost.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lengthFt":{"type":"number","exclusiveMinimum":0,"maximum":1000},"widthFt":{"type":"number","exclusiveMinimum":0,"maximum":1000},"tileWidthIn":{"type":"number","exclusiveMinimum":0,"maximum":120},"tileHeightIn":{"type":"number","exclusiveMinimum":0,"maximum":120},"wastePct":{"type":"number","minimum":0,"maximum":50},"tilesPerBox":{"type":"integer","minimum":1,"maximum":1000},"pricePerBox":{"type":"number","minimum":0,"maximum":100000}},"required":["lengthFt","widthFt","tileWidthIn","tileHeightIn","wastePct","tilesPerBox","pricePerBox"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/concrete-calculator":{"post":{"operationId":"concreteCalculator","summary":"Concrete Calculator (Cubic Yards & Bags)","description":"Calculate how much concrete you need for a slab, footing, or pad. Enter length, width, and thickness to get cubic yards, cubic feet, and the exact bag count.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lengthFt":{"type":"number","exclusiveMinimum":0,"maximum":1000},"widthFt":{"type":"number","exclusiveMinimum":0,"maximum":1000},"thicknessInches":{"type":"number","exclusiveMinimum":0,"maximum":120},"wastePct":{"type":"number","minimum":0,"maximum":50},"bagYieldFt3":{"type":"number","exclusiveMinimum":0,"maximum":5}},"required":["lengthFt","widthFt","thicknessInches","wastePct","bagYieldFt3"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/drywall-calculator":{"post":{"operationId":"drywallCalculator","summary":"Drywall Sheet Calculator","description":"Calculate how many drywall sheets you need for a room. Enter total wall and ceiling area, waste percent, and sheet size to get sheets, screws, mud, and tape.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallArea":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"wastePct":{"type":"number","minimum":0,"maximum":100},"sheetAreaSqFt":{"type":"number","exclusiveMinimum":0,"maximum":200}},"required":["wallArea","wastePct","sheetAreaSqFt"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/deck-boards-calculator":{"post":{"operationId":"deckBoardsCalculator","summary":"Deck Board Calculator (Linear Feet & Boards)","description":"Calculate how many deck boards you need. Enter deck length, width, board width, gap, and board length to get area, linear feet, board count, and total cost.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"deckLength":{"type":"number","exclusiveMinimum":0,"maximum":500},"deckWidth":{"type":"number","exclusiveMinimum":0,"maximum":500},"boardWidthIn":{"type":"number","exclusiveMinimum":0,"maximum":24},"gapIn":{"type":"number","minimum":0,"maximum":2},"boardLengthFt":{"type":"number","exclusiveMinimum":0,"maximum":24},"wastePct":{"type":"number","minimum":0,"maximum":100},"pricePerBoard":{"type":"number","minimum":0,"maximum":100000}},"required":["deckLength","deckWidth","boardWidthIn","gapIn","boardLengthFt","wastePct","pricePerBoard"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/fence-calculator":{"post":{"operationId":"fenceCalculator","summary":"Fence Calculator (Posts, Panels, Rails)","description":"Calculate fence materials fast: enter your run length, post spacing, and picket width to get exact posts, rails, and pickets, plus an optional total cost.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fenceLength":{"type":"number","exclusiveMinimum":0,"maximum":100000},"postSpacing":{"type":"number","exclusiveMinimum":0,"maximum":50},"railsPerSection":{"type":"integer","minimum":1,"maximum":10},"picketWidthIn":{"type":"number","exclusiveMinimum":0,"maximum":24},"gapIn":{"type":"number","minimum":0,"maximum":24},"postPrice":{"default":0,"type":"number","minimum":0,"maximum":100000},"railPrice":{"default":0,"type":"number","minimum":0,"maximum":100000},"picketPrice":{"default":0,"type":"number","minimum":0,"maximum":100000}},"required":["fenceLength","postSpacing","railsPerSection","picketWidthIn","gapIn","postPrice","railPrice","picketPrice"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/llm-api-cost-calculator":{"post":{"operationId":"llmApiCostCalculator","summary":"LLM API Cost Calculator (GPT-4o, Claude, Gemini)","description":"Estimate monthly API costs for GPT-4o, Claude, and Gemini from tokens per request and volume. See input vs output cost split. Prices as of 2025 — verify.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["gpt-4o","gpt-4o-mini","claude-opus","claude-sonnet","claude-haiku","gemini-1.5-pro","gemini-1.5-flash"]},"inputTokensPerReq":{"type":"number","minimum":0,"maximum":100000000},"outputTokensPerReq":{"type":"number","minimum":0,"maximum":100000000},"requestsPerMonth":{"type":"number","minimum":1,"maximum":1000000000}},"required":["model","inputTokensPerReq","outputTokensPerReq","requestsPerMonth"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/token-counter-calculator":{"post":{"operationId":"tokenCounterCalculator","summary":"Token Counter & Context-Window Fit Calculator","description":"Estimate the token count of any text with the chars/4 words/0.75 heuristic, check if it fits 8k, 128k, 200k, or 1M context windows, and gauge API cost.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chars":{"type":"number","minimum":0,"maximum":1000000000},"words":{"type":"number","minimum":0,"maximum":1000000000},"pricePerMillion":{"type":"number","minimum":0,"maximum":1000}},"required":["chars","words","pricePerMillion"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/ai-build-vs-buy-calculator":{"post":{"operationId":"aiBuildVsBuyCalculator","summary":"AI Build vs Buy Calculator (API vs Self-Host)","description":"Compare the monthly cost of a hosted LLM API against self-hosting on your own GPUs. Find the break-even token volume and see which option is cheaper for you.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"apiPricePerMtok":{"type":"number","exclusiveMinimum":0,"maximum":1000},"selfHostFixedPerMonth":{"type":"number","minimum":0,"maximum":10000000},"tokensPerMonth":{"type":"number","minimum":0,"maximum":1000000}},"required":["apiPricePerMtok","selfHostFixedPerMonth","tokensPerMonth"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/gpu-vram-calculator":{"post":{"operationId":"gpuVramCalculator","summary":"GPU VRAM Calculator (Model Size & GPU Fit)","description":"Calculate the VRAM a large language model needs by parameter count and precision (fp16, int8, int4), then see which GPU it fits — from RTX 4090 to H100.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"paramsBillion":{"type":"number","exclusiveMinimum":0,"maximum":100000},"precision":{"type":"string","enum":["fp32","fp16","bf16","int8","int4"]},"overheadPct":{"type":"number","minimum":0,"maximum":1000}},"required":["paramsBillion","precision","overheadPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/ai-roi-calculator":{"post":{"operationId":"aiRoiCalculator","summary":"AI Tool ROI Calculator (Payback on Adoption)","description":"Estimate the ROI and payback of an AI tool: enter hours saved per week, staff count, and cost to see monthly net savings, break-even months, and annual return.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hoursSavedPerWeek":{"type":"number","minimum":0,"maximum":168},"hourlyCost":{"type":"number","minimum":0,"maximum":100000},"headcount":{"type":"integer","minimum":1,"maximum":1000000},"monthlyToolCost":{"type":"number","minimum":0,"maximum":10000000},"implementationCost":{"type":"number","minimum":0,"maximum":100000000}},"required":["hoursSavedPerWeek","hourlyCost","headcount","monthlyToolCost","implementationCost"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/ai-job-exposure-calculator":{"post":{"operationId":"aiJobExposureCalculator","summary":"AI Job Exposure Score","description":"An AI job exposure score built from published research (Eloundou et al. 2023, O*NET, Goldman Sachs): estimate your task mix, not a prediction about you.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"routineCognitive":{"type":"number","minimum":0,"maximum":1},"creativeCognitive":{"type":"number","minimum":0,"maximum":1},"interpersonal":{"type":"number","minimum":0,"maximum":1},"physical":{"type":"number","minimum":0,"maximum":1}},"required":["routineCognitive","creativeCognitive","interpersonal","physical"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/salary-to-hourly-calculator":{"post":{"operationId":"salaryToHourlyCalculator","summary":"Salary to Hourly Calculator (and Back)","description":"Convert an annual salary to an hourly wage or an hourly rate back to a yearly salary. Set your hours and weeks to see weekly, biweekly, and monthly pay too.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["salaryToHourly","hourlyToSalary"]},"annualSalary":{"type":"number","minimum":0,"maximum":100000000},"hourlyRate":{"type":"number","minimum":0,"maximum":1000000},"hoursPerWeek":{"type":"number","minimum":0.1,"maximum":168},"weeksPerYear":{"type":"number","minimum":0.1,"maximum":53}},"required":["mode","annualSalary","hourlyRate","hoursPerWeek","weeksPerYear"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["salary"]}},"/api/v1/tools/overtime-pay-calculator":{"post":{"operationId":"overtimePayCalculator","summary":"Overtime Pay Calculator (Time-and-a-Half)","description":"Calculate overtime pay at time-and-a-half or a custom rate. Enter your hourly wage plus regular, overtime, and double-time hours for weekly and annual gross.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hourlyRate":{"type":"number","minimum":0,"maximum":100000},"regularHours":{"type":"number","minimum":0,"maximum":168},"overtimeHours":{"type":"number","minimum":0,"maximum":168},"overtimeMultiplier":{"type":"number","minimum":1,"maximum":10},"doubletimeHours":{"type":"number","minimum":0,"maximum":168}},"required":["hourlyRate","regularHours","overtimeHours","overtimeMultiplier","doubletimeHours"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["salary"]}},"/api/v1/tools/pay-raise-calculator":{"post":{"operationId":"payRaiseCalculator","summary":"Pay Raise Calculator","description":"Calculate your pay raise two ways: the nominal percentage increase and the real, inflation-adjusted raise, plus the annual and per-paycheck dollar gain.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"oldSalary":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"newSalary":{"type":"number","minimum":0,"maximum":100000000},"inflationPct":{"type":"number","minimum":-50,"maximum":1000},"payPeriodsPerYear":{"type":"integer","minimum":1,"maximum":366}},"required":["oldSalary","newSalary","inflationPct","payPeriodsPerYear"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["salary"]}},"/api/v1/tools/pto-accrual-calculator":{"post":{"operationId":"ptoAccrualCalculator","summary":"PTO Accrual Calculator","description":"Calculate how much paid time off you accrue each pay period from your annual PTO days, then project your future balance by pay date after the hours you've used.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"annualDays":{"type":"number","minimum":0,"maximum":365},"hoursPerDay":{"type":"number","minimum":0.5,"maximum":24},"periodsPerYear":{"type":"integer","minimum":1,"maximum":366},"currentBalanceHours":{"type":"number","minimum":0,"maximum":100000},"usedHours":{"type":"number","minimum":0,"maximum":100000},"periodsElapsed":{"type":"integer","minimum":0,"maximum":366}},"required":["annualDays","hoursPerDay","periodsPerYear","currentBalanceHours","usedHours","periodsElapsed"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["salary"]}},"/api/v1/tools/contractor-vs-employee-calculator":{"post":{"operationId":"contractorVsEmployeeCalculator","summary":"1099 vs W-2 Rate Calculator","description":"Compare a W-2 job to 1099 contract work: enter salary, employer FICA, benefits, and PTO to see the equivalent 1099 gross rate you need to break even fairly.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"w2Salary":{"type":"number","minimum":0,"maximum":10000000},"employerFicaPct":{"type":"number","minimum":0,"maximum":100},"benefitsValue":{"type":"number","minimum":0,"maximum":10000000},"ptoValue":{"type":"number","minimum":0,"maximum":10000000},"contractorGross":{"type":"number","minimum":0,"maximum":10000000}},"required":["w2Salary","employerFicaPct","benefitsValue","ptoValue","contractorGross"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["freelance"]}},"/api/v1/tools/employee-cost-calculator":{"post":{"operationId":"employeeCostCalculator","summary":"True Cost of an Employee Calculator","description":"Calculate the true, fully loaded cost of an employee beyond base salary: add employer FICA, benefits, and overhead to see the total and its multiple of pay.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"salary":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"ficaPct":{"type":"number","minimum":0,"maximum":100},"benefitsValue":{"type":"number","minimum":0,"maximum":100000000},"overheadValue":{"type":"number","minimum":0,"maximum":100000000}},"required":["salary","ficaPct","benefitsValue","overheadValue"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/401k-match-calculator":{"post":{"operationId":"401kMatchCalculator","summary":"401(k) Employer Match Calculator","description":"Calculate your 401(k) employer match: enter salary and contribution rate to see the free money you earn, your total yearly savings, and long-run growth.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"salary":{"type":"number","minimum":0,"maximum":10000000},"contributionPct":{"type":"number","minimum":0,"maximum":100},"firstTierPct":{"type":"number","minimum":0,"maximum":100},"firstTierMatchPct":{"type":"number","minimum":0,"maximum":100},"secondTierPct":{"type":"number","minimum":0,"maximum":100},"secondTierMatchPct":{"type":"number","minimum":0,"maximum":100},"growthRatePct":{"type":"number","minimum":0,"maximum":30},"years":{"type":"integer","minimum":0,"maximum":80}},"required":["salary","contributionPct","firstTierPct","firstTierMatchPct","secondTierPct","secondTierMatchPct","growthRatePct","years"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/roth-ira-calculator":{"post":{"operationId":"rothIraCalculator","summary":"Roth IRA Growth Calculator","description":"See how a Roth IRA grows tax-free. Enter your annual contribution, expected return, and time horizon to project future value, total paid in, and growth.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"annualContribution":{"type":"number","minimum":0,"maximum":1000000},"annualReturnPct":{"type":"number","minimum":0,"maximum":30},"years":{"type":"integer","minimum":1,"maximum":80},"capitalGainsTaxPct":{"type":"number","minimum":0,"maximum":100}},"required":["annualContribution","annualReturnPct","years","capitalGainsTaxPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/cd-ladder-calculator":{"post":{"operationId":"cdLadderCalculator","summary":"CD Ladder Calculator","description":"Build a CD ladder: split your savings across staggered-maturity CDs and see year-one interest, per-rung breakdown, and your blended APY across the whole ladder.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"number","minimum":0,"maximum":100000000},"rungs":{"type":"integer","minimum":1,"maximum":50},"baseApy":{"type":"number","minimum":0,"maximum":100},"step":{"type":"number","minimum":-100,"maximum":100}},"required":["principal","rungs","baseApy","step"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/coast-fire-calculator":{"post":{"operationId":"coastFireCalculator","summary":"Coast FIRE Calculator","description":"Find your Coast FIRE number: the amount you need invested today so it grows to your FIRE target by retirement with zero further contributions. Mind the gap.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetFireNumber":{"type":"number","minimum":1,"maximum":100000000000},"currentSavings":{"type":"number","minimum":0,"maximum":100000000000},"currentAge":{"type":"integer","minimum":0,"maximum":120},"retirementAge":{"type":"integer","minimum":1,"maximum":130},"realReturnPct":{"type":"number","minimum":0,"maximum":30}},"required":["targetFireNumber","currentSavings","currentAge","retirementAge","realReturnPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/dividend-reinvestment-calculator":{"post":{"operationId":"dividendReinvestmentCalculator","summary":"DRIP Dividend Reinvestment Calculator","description":"See how reinvested dividends compound your portfolio. Enter dividend yield, price growth, and yearly contributions to project future value and total growth.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"number","minimum":0,"maximum":100000000},"dividendYieldPct":{"type":"number","minimum":0,"maximum":100},"priceGrowthPct":{"type":"number","minimum":0,"maximum":100},"annualContribution":{"type":"number","minimum":0,"maximum":1000000},"years":{"type":"integer","minimum":1,"maximum":80}},"required":["principal","dividendYieldPct","priceGrowthPct","annualContribution","years"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/savings-drawdown-calculator":{"post":{"operationId":"savingsDrawdownCalculator","summary":"Savings Drawdown Calculator","description":"See how long your savings will last: enter your balance, monthly withdrawal, and expected return to find the months and years until the money runs out.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"number","minimum":1,"maximum":1000000000},"monthlyWithdrawal":{"type":"number","minimum":1,"maximum":10000000},"annualReturnPct":{"type":"number","minimum":0,"maximum":30}},"required":["principal","monthlyWithdrawal","annualReturnPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/retirement-monte-carlo-calculator":{"post":{"operationId":"retirementMonteCarloCalculator","summary":"Retirement Monte Carlo Calculator","description":"Estimate your retirement plan's success probability with 5,000 simulated Monte Carlo market paths, plus a fan chart of percentile balances at every age.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentAge":{"type":"integer","minimum":18,"maximum":75},"retireAge":{"type":"integer","minimum":19,"maximum":80},"currentSavings":{"type":"number","minimum":0,"maximum":100000000000},"monthlyContribution":{"type":"number","minimum":0,"maximum":10000000},"expectedRealReturnPct":{"type":"number","minimum":0,"maximum":12},"volatilityPct":{"type":"number","minimum":0,"maximum":30},"monthlyRetirementSpending":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"planUntilAge":{"type":"integer","minimum":20,"maximum":105}},"required":["currentAge","retireAge","currentSavings","monthlyContribution","expectedRealReturnPct","volatilityPct","monthlyRetirementSpending","planUntilAge"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/mulch-calculator":{"post":{"operationId":"mulchCalculator","summary":"Mulch Calculator (Cubic Yards & Bags)","description":"Calculate how much mulch you need for a garden bed or landscape. Enter area and depth to get cubic yards, cubic feet, and the exact number of bags to buy.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"areaSqFt":{"type":"number","exclusiveMinimum":0,"maximum":100000},"depthInches":{"type":"number","exclusiveMinimum":0,"maximum":24},"wastePct":{"type":"number","minimum":0,"maximum":50},"bagSizeFt3":{"type":"number","exclusiveMinimum":0,"maximum":5}},"required":["areaSqFt","depthInches","wastePct","bagSizeFt3"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/topsoil-calculator":{"post":{"operationId":"topsoilCalculator","summary":"Topsoil Calculator (Yards & Weight)","description":"Work out how much topsoil you need for a bed, lawn, or garden. Enter area and depth to get cubic yards, cubic feet, weight in tons, and the exact bag count.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"areaSqFt":{"type":"number","exclusiveMinimum":0,"maximum":100000},"depthInches":{"type":"number","exclusiveMinimum":0,"maximum":60},"bagSizeFt3":{"type":"number","exclusiveMinimum":0,"maximum":5}},"required":["areaSqFt","depthInches","bagSizeFt3"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/grass-seed-calculator":{"post":{"operationId":"grassSeedCalculator","summary":"Grass Seed Calculator","description":"Calculate how much grass seed you need: enter your lawn area in square feet and the seeding rate to get pounds required and bags to buy for new or overseed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"areaSqFt":{"type":"number","minimum":1,"maximum":10000000},"ratePer1000":{"type":"number","minimum":0.1,"maximum":50},"mode":{"type":"string","enum":["newLawn","overseed"]},"bagLbs":{"type":"number","minimum":0.1,"maximum":500}},"required":["areaSqFt","ratePer1000","mode","bagLbs"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/gravel-calculator":{"post":{"operationId":"gravelCalculator","summary":"Gravel & Aggregate Calculator (Yards & Tons)","description":"Calculate how much gravel or aggregate you need for a driveway, path, or garden bed. Enter area and depth to get cubic yards, cubic feet, and tons by density.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"areaSqFt":{"type":"number","exclusiveMinimum":0,"maximum":100000},"depthInches":{"type":"number","exclusiveMinimum":0,"maximum":120},"densityTonsPerYard":{"type":"number","exclusiveMinimum":0,"maximum":5}},"required":["areaSqFt","depthInches","densityTonsPerYard"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/fertilizer-calculator":{"post":{"operationId":"fertilizerCalculator","summary":"Fertilizer Calculator (N-P-K Rate)","description":"Work out how much fertilizer to spread: enter your lawn size, target nitrogen rate, and the bag N number to get pounds of product per feeding and per season.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetNper1000":{"type":"number","minimum":0.05,"maximum":10},"areaSqFt":{"type":"number","minimum":1,"maximum":10000000},"nitrogenPct":{"type":"number","minimum":0.1,"maximum":100},"numApplications":{"type":"integer","minimum":1,"maximum":52}},"required":["targetNper1000","areaSqFt","nitrogenPct","numApplications"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["home"]}},"/api/v1/tools/one-rep-max-calculator":{"post":{"operationId":"oneRepMaxCalculator","summary":"One Rep Max (1RM) Calculator","description":"Estimate your one-rep max from any set using the Epley and Brzycki formulas, then read a full percentage-of-1RM table to set training loads for every lift.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weight":{"type":"number","exclusiveMinimum":0,"maximum":2000},"reps":{"type":"integer","minimum":1,"maximum":36},"formula":{"type":"string","enum":["epley","brzycki"]}},"required":["weight","reps","formula"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/body-fat-calculator":{"post":{"operationId":"bodyFatCalculator","summary":"Body Fat Percentage Calculator (Navy Method)","description":"Estimate your body fat percentage with the US Navy tape-measure method. Enter your sex, height, neck, waist, and hip to see body fat and lean body mass.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sex":{"type":"string","enum":["male","female"]},"waistCm":{"type":"number","minimum":30,"maximum":250},"neckCm":{"type":"number","minimum":15,"maximum":80},"hipCm":{"type":"number","minimum":40,"maximum":250},"heightCm":{"type":"number","minimum":120,"maximum":250},"weightKg":{"type":"number","minimum":20,"maximum":400}},"required":["sex","waistCm","neckCm","heightCm"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/ideal-weight-calculator":{"post":{"operationId":"idealWeightCalculator","summary":"Ideal Weight Calculator (4 Formulas)","description":"Estimate ideal body weight from your height and sex using four classic formulas (Devine, Robinson, Miller, Hamwi) and see the healthy range, not one number.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sex":{"type":"string","enum":["male","female"]},"heightCm":{"type":"number","minimum":120,"maximum":250}},"required":["sex","heightCm"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/calories-burned-calculator":{"post":{"operationId":"caloriesBurnedCalculator","summary":"Calories Burned Calculator (MET-Based)","description":"Calculate calories burned by activity with the MET formula: enter weight, minutes, and activity to estimate energy spent, and compare exercises side by side.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"met":{"type":"number","exclusiveMinimum":0,"maximum":30},"weightKg":{"type":"number","minimum":20,"maximum":500},"minutes":{"type":"number","exclusiveMinimum":0,"maximum":1440}},"required":["met","weightKg","minutes"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/heart-rate-zone-calculator":{"post":{"operationId":"heartRateZoneCalculator","summary":"Heart Rate Zone Calculator","description":"Calculate your five heart rate training zones from your age using the 220 − age or Tanaka formula, with an optional Karvonen resting heart rate refinement.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"age":{"type":"integer","minimum":1,"maximum":120},"formula":{"type":"string","enum":["standard","tanaka"]},"restingHR":{"type":"integer","minimum":20,"maximum":150}},"required":["age","formula"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/calorie-deficit-calculator":{"post":{"operationId":"calorieDeficitCalculator","summary":"Calorie Deficit Calculator (Goal Weight by Date)","description":"Set a goal weight and a target date to see the daily calorie deficit you need, your projected weekly loss rate, and whether the pace is safe or too fast.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentKg":{"type":"number","minimum":30,"maximum":400},"goalKg":{"type":"number","minimum":30,"maximum":400},"days":{"type":"integer","minimum":1,"maximum":3650}},"required":["currentKg","goalKg","days"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["fitness"]}},"/api/v1/tools/recipe-scaler-calculator":{"post":{"operationId":"recipeScalerCalculator","summary":"Recipe Scaler / Serving Size Calculator","description":"Scale any recipe up or down: enter the original and desired servings, and this tool multiplies every ingredient by the exact ratio so amounts stay balanced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"originalServings":{"type":"number","exclusiveMinimum":0,"maximum":100000},"desiredServings":{"type":"number","exclusiveMinimum":0,"maximum":100000},"ingredients":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"qty":{"type":"number","minimum":0,"maximum":1000000},"unit":{"type":"string","maxLength":40}},"required":["name","qty","unit"],"additionalProperties":false}}},"required":["originalServings","desiredServings","ingredients"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["cooking"]}},"/api/v1/tools/baking-pan-conversion-calculator":{"post":{"operationId":"bakingPanConversionCalculator","summary":"Baking Pan Size Conversion Calculator","description":"Convert a recipe between round, square, and rectangular baking pans. Scale batter by pan area, not diameter, to see the exact ratio and bake-time guidance.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"original":{"type":"object","properties":{"shape":{"type":"string","enum":["round","rectangular","square"]},"diameter":{"type":"number","exclusiveMinimum":0,"maximum":1000},"length":{"type":"number","exclusiveMinimum":0,"maximum":1000},"width":{"type":"number","exclusiveMinimum":0,"maximum":1000},"side":{"type":"number","exclusiveMinimum":0,"maximum":1000}},"required":["shape"],"additionalProperties":false},"target":{"type":"object","properties":{"shape":{"type":"string","enum":["round","rectangular","square"]},"diameter":{"type":"number","exclusiveMinimum":0,"maximum":1000},"length":{"type":"number","exclusiveMinimum":0,"maximum":1000},"width":{"type":"number","exclusiveMinimum":0,"maximum":1000},"side":{"type":"number","exclusiveMinimum":0,"maximum":1000}},"required":["shape"],"additionalProperties":false}},"required":["original","target"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["cooking"]}},"/api/v1/tools/pizza-dough-calculator":{"post":{"operationId":"pizzaDoughCalculator","summary":"Pizza Dough Calculator (Baker's Percentage)","description":"Calculate pizza dough by baker's percentage: enter ball count, weight, and hydration to get exact flour, water, salt, and yeast weights for your batch.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"balls":{"type":"integer","minimum":1,"maximum":100},"ballWeight":{"type":"number","minimum":1,"maximum":5000},"hydration":{"type":"number","minimum":0,"maximum":120},"saltPct":{"type":"number","minimum":0,"maximum":10},"yeastPct":{"type":"number","minimum":0,"maximum":10}},"required":["balls","ballWeight","hydration","saltPct","yeastPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["cooking"]}},"/api/v1/tools/turkey-cooking-time-calculator":{"post":{"operationId":"turkeyCookingTimeCalculator","summary":"Turkey Cooking Time & Thaw Calculator","description":"Estimate turkey roasting time by weight, plus refrigerator and cold-water thaw times. Stuffed or unstuffed, always cook to 165°F verified with a thermometer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weightLbs":{"type":"number","minimum":0.5,"maximum":100},"minPerLb":{"type":"number","minimum":5,"maximum":30}},"required":["weightLbs","minPerLb"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["cooking"]}},"/api/v1/tools/recipe-cost-calculator":{"post":{"operationId":"recipeCostCalculator","summary":"Recipe Cost & Cost-Per-Serving Calculator","description":"Cost out any recipe in seconds: enter ingredients, quantities, and unit prices to get total cost, cost per serving, and a suggested menu price by food cost.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ingredients":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"qty":{"type":"number","minimum":0,"maximum":1000000},"unit":{"type":"string","minLength":1,"maxLength":24},"unitCost":{"type":"number","minimum":0,"maximum":1000000}},"required":["name","qty","unit","unitCost"],"additionalProperties":false}},"servings":{"type":"integer","minimum":1,"maximum":100000},"targetFoodCostPct":{"type":"number","minimum":1,"maximum":100}},"required":["ingredients","servings"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["cooking"]}},"/api/v1/tools/brine-calculator":{"post":{"operationId":"brineCalculator","summary":"Brine Calculator (Salt Ratio by Weight)","description":"Calculate salt and sugar for wet or dry brines by weight: enter water volume or meat weight and a salt percentage to get exact grams and a strength chart.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["wet","dry"]},"waterVolumeL":{"type":"number","minimum":0,"maximum":1000},"meatWeightGrams":{"type":"number","minimum":0,"maximum":1000000},"saltPct":{"type":"number","minimum":0.1,"maximum":20},"sugarPct":{"type":"number","minimum":0,"maximum":20}},"required":["mode","waterVolumeL","meatWeightGrams","saltPct","sugarPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["cooking"]}},"/api/v1/tools/depth-of-field-calculator":{"post":{"operationId":"depthOfFieldCalculator","summary":"Depth of Field & Hyperfocal Calculator","description":"Calculate depth of field and hyperfocal distance from focal length, aperture, and subject distance. See the near and far limits of sharp focus in meters.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"focalLengthMm":{"type":"number","minimum":1,"maximum":2000},"aperture":{"type":"number","minimum":0.5,"maximum":64},"circleOfConfusionMm":{"type":"number","minimum":0.001,"maximum":1},"subjectDistanceM":{"type":"number","minimum":0.1,"maximum":10000}},"required":["focalLengthMm","aperture","circleOfConfusionMm","subjectDistanceM"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["photography"]}},"/api/v1/tools/crop-factor-calculator":{"post":{"operationId":"cropFactorCalculator","summary":"Crop Factor / Equivalent Focal Length Calculator","description":"Convert focal length to a full-frame equivalent by crop factor. Enter focal length, aperture, and sensor to get equivalent focal, aperture, and field of view.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"focalMm":{"type":"number","minimum":1,"maximum":2000},"aperture":{"type":"number","minimum":0.5,"maximum":64},"sensorPreset":{"type":"string","enum":["full-frame","aps-c","aps-c-canon","mft","custom"]},"cropFactor":{"type":"number","minimum":0.1,"maximum":10},"sensorWidthMm":{"type":"number","minimum":1,"maximum":120}},"required":["focalMm","aperture","sensorPreset","cropFactor","sensorWidthMm"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["photography"]}},"/api/v1/tools/print-resolution-calculator":{"post":{"operationId":"printResolutionCalculator","summary":"Print Resolution & Max Print Size Calculator","description":"Find the largest quality print from your photo pixels, or the DPI a chosen print size lands at. Enter pixel size and a target size or DPI to check the fit.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["pixelsToSize","sizeToDpi"]},"pixelW":{"type":"number","exclusiveMinimum":0,"maximum":500000},"pixelH":{"type":"number","exclusiveMinimum":0,"maximum":500000},"dpi":{"type":"number","exclusiveMinimum":0,"maximum":4800},"printWidthIn":{"type":"number","exclusiveMinimum":0,"maximum":2000},"printHeightIn":{"type":"number","exclusiveMinimum":0,"maximum":2000}},"required":["mode","pixelW","pixelH","dpi","printWidthIn","printHeightIn"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["photography"]}},"/api/v1/tools/time-lapse-calculator":{"post":{"operationId":"timeLapseCalculator","summary":"Time-Lapse Calculator (Interval, Clip, Storage)","description":"Plan a time-lapse: enter shoot length, shot interval, playback fps, and file size to see how many frames you shoot, your clip length, and storage needed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"shootDurationSeconds":{"type":"number","minimum":1,"maximum":2592000},"intervalSeconds":{"type":"number","minimum":0.1,"maximum":3600},"fps":{"type":"number","minimum":1,"maximum":240},"avgFileSizeMB":{"type":"number","minimum":0,"maximum":2000}},"required":["shootDurationSeconds","intervalSeconds","fps","avgFileSizeMB"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["photography"]}},"/api/v1/tools/aspect-ratio-calculator":{"post":{"operationId":"aspectRatioCalculator","summary":"Aspect Ratio Calculator (Resize & Crop)","description":"Simplify an aspect ratio and resize while keeping it. Enter width and height to get the ratio like 16:9, then a new width to solve the matching height.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"width":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"height":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"newWidth":{"type":"number","exclusiveMinimum":0,"maximum":1000000}},"required":["width","height","newWidth"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["photography"]}},"/api/v1/tools/dog-age-calculator":{"post":{"operationId":"dogAgeCalculator","summary":"Dog Age Calculator (Human Years, Size-Adjusted)","description":"Convert your dog age into human years the AKC way, adjusted for body size — not the old myth of multiplying by seven. Enter age and size for a real estimate.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"age":{"type":"integer","minimum":0,"maximum":30},"sizeClass":{"type":"string","enum":["small","medium","large"]}},"required":["age","sizeClass"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["pet"]}},"/api/v1/tools/pet-food-portion-calculator":{"post":{"operationId":"petFoodPortionCalculator","summary":"Dog & Cat Food Portion Calculator","description":"Estimate how much to feed a dog or cat from ideal weight and activity using the vet RER formula. Enter weight and food calories to get daily cups to serve.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weightKg":{"type":"number","minimum":0.1,"maximum":120},"lifestyleFactor":{"type":"number","minimum":1,"maximum":5},"foodKcalPerCup":{"type":"number","minimum":1,"maximum":1000}},"required":["weightKg","lifestyleFactor","foodKcalPerCup"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["pet"]}},"/api/v1/tools/puppy-weight-calculator":{"post":{"operationId":"puppyWeightCalculator","summary":"Puppy Adult Weight Predictor","description":"Predict your puppy adult weight from its current weight and age in weeks, with a size-class note. Enter the numbers to see the grown-up size to expect.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentWeightKg":{"type":"number","exclusiveMinimum":0,"maximum":120},"ageWeeks":{"type":"number","exclusiveMinimum":0,"maximum":104},"sizeClass":{"type":"string","enum":["small","medium","large"]}},"required":["currentWeightKg","ageWeeks"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["pet"]}},"/api/v1/tools/pet-cost-calculator":{"post":{"operationId":"petCostCalculator","summary":"Pet Cost Calculator (First-Year & Lifetime)","description":"Add up the true cost of a pet: first-year and lifetime. Enter monthly food, vet, insurance, and supplies plus setup cost to see what it really adds up to.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"food":{"type":"number","minimum":0,"maximum":100000},"vet":{"type":"number","minimum":0,"maximum":100000},"insurance":{"type":"number","minimum":0,"maximum":100000},"supplies":{"type":"number","minimum":0,"maximum":100000},"other":{"type":"number","minimum":0,"maximum":100000},"setupCost":{"type":"number","minimum":0,"maximum":1000000},"lifespanYears":{"type":"integer","exclusiveMinimum":0,"maximum":40}},"required":["food","vet","insurance","supplies","other","setupCost","lifespanYears"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["pet"]}},"/api/v1/tools/aquarium-stocking-calculator":{"post":{"operationId":"aquariumStockingCalculator","summary":"Aquarium Volume & Stocking Calculator","description":"Work out your fish tank volume and stocking capacity. Enter length, width, and height in inches to get gallons, litres, inch-of-fish, and heater wattage.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lengthIn":{"type":"number","exclusiveMinimum":0,"maximum":1000},"widthIn":{"type":"number","exclusiveMinimum":0,"maximum":1000},"heightIn":{"type":"number","exclusiveMinimum":0,"maximum":1000},"inchesPerGallon":{"type":"number","minimum":0.1,"maximum":5}},"required":["lengthIn","widthIn","heightIn","inchesPerGallon"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["pet"]}},"/api/v1/tools/required-savings-calculator":{"post":{"operationId":"requiredSavingsCalculator","summary":"Required Savings Calculator","description":"Find the monthly savings needed to reach a goal: three deterministic return scenarios plus an inverse Monte Carlo rate sized for your chosen success odds.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetAmount":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"currentSavings":{"type":"number","minimum":0,"maximum":1000000000},"years":{"type":"integer","minimum":1,"maximum":60},"expectedRealReturnPct":{"type":"number","minimum":0,"maximum":12},"volatilityPct":{"type":"number","minimum":0,"maximum":30},"successTargetPct":{"default":80,"type":"integer","minimum":50,"maximum":95}},"required":["targetAmount","currentSavings","years","expectedRealReturnPct","volatilityPct","successTargetPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/purchase-impact-calculator":{"post":{"operationId":"purchaseImpactCalculator","summary":"Purchase Impact Calculator","description":"See the true cost of any purchase: what the price would grow to if invested, how many days of work it represents, and how far it pushes back your FIRE date.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"expectedRealReturnPct":{"type":"number","minimum":0,"maximum":12},"yearsHorizon":{"type":"integer","minimum":1,"maximum":50},"annualNetIncome":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"monthlySavings":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"currentSavings":{"default":0,"type":"number","minimum":0,"maximum":100000000000},"fireNumber":{"type":"number","exclusiveMinimum":0,"maximum":100000000000}},"required":["price","expectedRealReturnPct","yearsHorizon","currentSavings"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["savings"]}},"/api/v1/tools/hire-vs-outsource-calculator":{"post":{"operationId":"hireVsOutsourceCalculator","summary":"Hire vs Outsource Calculator","description":"Compare the fully loaded cost of an in-house hire against outsourcing to an agency or freelancer, with a break-even hours line showing when hiring wins.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"annualSalary":{"type":"number","minimum":10000,"maximum":500000},"benefitsRate":{"type":"number","minimum":0,"maximum":60},"employerTaxRate":{"type":"number","minimum":0,"maximum":15},"overheadAnnual":{"type":"number","minimum":0,"maximum":50000},"recruitingCost":{"type":"number","minimum":0,"maximum":50000},"expectedTenureYears":{"type":"number","minimum":1,"maximum":10},"hoursNeededPerMonth":{"type":"number","minimum":1,"maximum":173},"agencyHourlyRate":{"type":"number","minimum":10,"maximum":500},"managementOverheadPct":{"type":"number","minimum":0,"maximum":30}},"required":["annualSalary","benefitsRate","employerTaxRate","overheadAnnual","recruitingCost","expectedTenureYears","hoursNeededPerMonth","agencyHourlyRate","managementOverheadPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/global-hiring-cost-calculator":{"post":{"operationId":"globalHiringCostCalculator","summary":"Global Hiring Cost Calculator","description":"Compare the annual cost of a US W-2 employee against an international contractor or an EOR hire, including employer taxes, benefits, and platform fees.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"usSalary":{"type":"number","minimum":30000,"maximum":400000},"usBenefitsAnnual":{"type":"number","minimum":0,"maximum":60000},"usOtherEmployerTaxes":{"type":"number","minimum":0,"maximum":15000},"intlContractorMonthly":{"type":"number","minimum":500,"maximum":20000},"contractorPlatformFeeMo":{"type":"number","minimum":0,"maximum":500},"eorGrossSalaryAnnual":{"type":"number","minimum":10000,"maximum":300000},"eorEmployerBurdenPct":{"type":"number","minimum":0,"maximum":45},"eorFeeMo":{"type":"number","minimum":0,"maximum":2000}},"required":["usSalary","usBenefitsAnnual","usOtherEmployerTaxes","intlContractorMonthly","contractorPlatformFeeMo","eorGrossSalaryAnnual","eorEmployerBurdenPct","eorFeeMo"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/ai-automation-payback-calculator":{"post":{"operationId":"aiAutomationPaybackCalculator","summary":"AI Automation Payback Calculator (Process ROI)","description":"Estimate the payback of automating a process with AI: task volume, time saved, review effort, and API costs give net monthly savings and break-even months.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tasksPerMonth":{"type":"number","minimum":10,"maximum":1000000},"minutesPerTaskManual":{"type":"number","minimum":0.5,"maximum":240},"loadedHourlyCost":{"type":"number","minimum":10,"maximum":300},"automationCoveragePct":{"type":"number","minimum":1,"maximum":100},"reviewMinutesPerTask":{"type":"number","minimum":0,"maximum":60},"aiCostPerTask":{"type":"number","minimum":0,"maximum":5},"platformCostMo":{"type":"number","minimum":0,"maximum":5000},"buildCost":{"type":"number","minimum":0,"maximum":500000}},"required":["tasksPerMonth","minutesPerTaskManual","loadedHourlyCost","automationCoveragePct","reviewMinutesPerTask","aiCostPerTask","platformCostMo","buildCost"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/llc-vs-sole-proprietor-calculator":{"post":{"operationId":"llcVsSoleProprietorCalculator","summary":"LLC vs Sole Proprietor Calculator","description":"Compare a sole proprietorship with an LLC: formation and annual state costs, self-employment tax on both, and the estimated savings of an S-corp election.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"netProfit":{"type":"number","minimum":1000,"maximum":1000000},"stateFilingFee":{"type":"number","minimum":0,"maximum":500},"annualStateFee":{"type":"number","minimum":0,"maximum":800},"registeredAgentFee":{"type":"number","minimum":0,"maximum":300},"sCorpElection":{"type":"boolean"},"reasonableSalary":{"type":"number","minimum":10000,"maximum":300000},"payrollAdminCost":{"type":"number","minimum":0,"maximum":5000}},"required":["netProfit","stateFilingFee","annualStateFee","registeredAgentFee","sCorpElection","reasonableSalary","payrollAdminCost"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/pricing-strategy-calculator":{"post":{"operationId":"pricingStrategyCalculator","summary":"Pricing Strategy Calculator","description":"Model a price change before you commit: see the maximum volume you can lose and stay profitable, plus predicted demand and profit at a chosen elasticity.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currentPrice":{"type":"number","minimum":0.5,"maximum":10000},"monthlyUnits":{"type":"number","minimum":1,"maximum":1000000},"variableCostPerUnit":{"type":"number","minimum":0,"maximum":9999},"fixedCostsMo":{"type":"number","minimum":0,"maximum":1000000},"newPrice":{"type":"number","minimum":0.5,"maximum":10000},"elasticity":{"type":"number","minimum":-5,"maximum":0}},"required":["currentPrice","monthlyUnits","variableCostPerUnit","fixedCostsMo","newPrice","elasticity"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/lead-gen-budget-calculator":{"post":{"operationId":"leadGenBudgetCalculator","summary":"Lead Gen Budget Calculator","description":"Work out your lead generation budget: leads needed for a customer goal, the implied CAC against your LTV target, and the maximum cost per lead to pay.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"newCustomersGoal":{"type":"number","minimum":1,"maximum":10000},"leadToCustomerRate":{"type":"number","minimum":0.1,"maximum":100},"avgCustomerLtv":{"type":"number","minimum":10,"maximum":1000000},"targetLtvCacRatio":{"type":"number","minimum":1,"maximum":10},"blendedCostPerLead":{"type":"number","minimum":0.1,"maximum":2000}},"required":["newCustomersGoal","leadToCustomerRate","avgCustomerLtv","targetLtvCacRatio","blendedCostPerLead"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/tools/llm-self-host-vs-api-calculator":{"post":{"operationId":"llmSelfHostVsApiCalculator","summary":"LLM Self-Host vs API Cost Calculator","description":"Find the monthly token volume where self-hosting an LLM on rented GPUs beats paying per token for an API. Compare costs, GPUs needed, and breakeven point.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthlyInputTokensM":{"type":"number","minimum":0.001,"maximum":10000000},"monthlyOutputTokensM":{"type":"number","minimum":0.001,"maximum":10000000},"apiModelId":{"type":"string","enum":["gpt-5.5","gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","claude-opus-4.8","claude-sonnet-4.6","claude-haiku-4.5","gemini-3.5-flash","gemini-3.1-pro","gemini-2.5-flash","llama-3.3-70b-together","llama-3-8b-lite-together"]},"gpuId":{"type":"string","enum":["h100-sxm-80gb","a100-sxm-80gb","a100-40gb","l40s-48gb","rtx-4090-24gb"]},"gpuHourlyUsd":{"type":"number","exclusiveMinimum":0,"maximum":1000},"throughputTokensPerSec":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"utilizationPct":{"type":"number","minimum":1,"maximum":100}},"required":["monthlyInputTokensM","monthlyOutputTokensM","apiModelId","gpuId","gpuHourlyUsd","throughputTokensPerSec","utilizationPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/fine-tuning-cost-calculator":{"post":{"operationId":"fineTuningCostCalculator","summary":"Fine-Tuning Cost Calculator","description":"Estimate what a fine-tuning run costs: GPU-hours for a self-managed cluster versus per-token managed API pricing, with wall-clock time and the cheaper path.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"datasetTokensM":{"type":"number","minimum":0.001,"maximum":100000},"epochs":{"type":"integer","minimum":1,"maximum":20},"method":{"type":"string","enum":["lora","full"]},"gpuId":{"type":"string","enum":["h100-sxm-80gb","a100-sxm-80gb","a100-40gb","l40s-48gb","rtx-4090-24gb"]},"gpuHourlyUsd":{"type":"number","exclusiveMinimum":0,"maximum":1000},"gpuCount":{"type":"integer","minimum":1,"maximum":64},"trainingTokensPerSecAggregate":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"apiFineTuneId":{"type":"string","enum":["together-sft-up-to-16b","together-sft-70b"]}},"required":["datasetTokensM","epochs","method","gpuId","gpuHourlyUsd","gpuCount","trainingTokensPerSecAggregate","apiFineTuneId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/rag-cost-calculator":{"post":{"operationId":"ragCostCalculator","summary":"RAG Cost Calculator","description":"Estimate what a RAG pipeline costs: one-time corpus embedding, monthly vector storage, and per-query LLM generation from verified 2026 provider prices.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"docCount":{"type":"integer","minimum":1,"maximum":100000000},"avgTokensPerDoc":{"type":"number","minimum":1,"maximum":1000000},"chunkTokens":{"type":"integer","minimum":50,"maximum":8192},"embeddingModelId":{"type":"string","enum":["text-embedding-3-small","text-embedding-3-large","voyage-4","voyage-4-lite","voyage-4-large"]},"vectorStorageUsdPerGbMonth":{"type":"number","minimum":0,"maximum":100},"queriesPerMonth":{"type":"integer","minimum":1,"maximum":1000000000},"retrievedTokensPerQuery":{"type":"number","minimum":1,"maximum":200000},"generationModelId":{"type":"string","enum":["gpt-5.5","gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","claude-opus-4.8","claude-sonnet-4.6","claude-haiku-4.5","gemini-3.5-flash","gemini-3.1-pro","gemini-2.5-flash","llama-3.3-70b-together","llama-3-8b-lite-together"]},"outputTokensPerQuery":{"type":"number","minimum":1,"maximum":100000}},"required":["docCount","avgTokensPerDoc","chunkTokens","embeddingModelId","vectorStorageUsdPerGbMonth","queriesPerMonth","retrievedTokensPerQuery","generationModelId","outputTokensPerQuery"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/ai-agent-cost-calculator":{"post":{"operationId":"aiAgentCostCalculator","summary":"AI Agent Cost Calculator","description":"See what an AI agent really costs per successful task: steps, tokens, model pricing and success rate turn dashboard cost per run into the true unit cost.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stepsPerRun":{"type":"integer","minimum":1,"maximum":200},"inputTokensPerStep":{"type":"number","minimum":1,"maximum":2000000},"outputTokensPerStep":{"type":"number","minimum":1,"maximum":100000},"modelId":{"type":"string","enum":["gpt-5.5","gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","claude-opus-4.8","claude-sonnet-4.6","claude-haiku-4.5","gemini-3.5-flash","gemini-3.1-pro","gemini-2.5-flash","llama-3.3-70b-together","llama-3-8b-lite-together"]},"runsPerDay":{"type":"number","minimum":0.1,"maximum":1000000},"successRatePct":{"type":"number","minimum":1,"maximum":100},"cacheHitRatePct":{"type":"number","minimum":0,"maximum":100}},"required":["stepsPerRun","inputTokensPerStep","outputTokensPerStep","modelId","runsPerDay","successRatePct","cacheHitRatePct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/prompt-caching-savings-calculator":{"post":{"operationId":"promptCachingSavingsCalculator","summary":"Prompt Caching Savings Calculator (LLM API Costs)","description":"Estimate how much prompt caching cuts your LLM API bill: monthly input tokens, cacheable share, and hit rate give per-model savings, cache writes included.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthlyInputTokensM":{"type":"number","minimum":0.001,"maximum":10000000},"cacheableSharePct":{"type":"number","minimum":0,"maximum":100},"hitRatePct":{"type":"number","minimum":0,"maximum":100},"modelId":{"type":"string","enum":["gpt-5.5","gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","claude-opus-4.8","claude-sonnet-4.6","claude-haiku-4.5","gemini-3.5-flash","gemini-3.1-pro","gemini-2.5-flash"]}},"required":["monthlyInputTokensM","cacheableSharePct","hitRatePct","modelId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/llm-throughput-calculator":{"post":{"operationId":"llmThroughputCalculator","summary":"LLM Throughput & GPU Sizing Calculator","description":"Estimate how many GPUs your LLM needs: concurrent users and target tokens per second become cluster size, monthly cloud cost, and real utilization at load.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"concurrentUsers":{"type":"integer","minimum":1,"maximum":1000000},"targetTokensPerSecPerUser":{"type":"number","minimum":1,"maximum":500},"gpuId":{"type":"string","enum":["h100-sxm-80gb","a100-sxm-80gb","a100-40gb","l40s-48gb","rtx-4090-24gb"]},"gpuHourlyUsd":{"type":"number","exclusiveMinimum":0,"maximum":1000},"aggregateTokensPerSecPerGpu":{"type":"number","exclusiveMinimum":0,"maximum":10000000},"utilizationHeadroomPct":{"type":"number","minimum":10,"maximum":100}},"required":["concurrentUsers","targetTokensPerSecPerUser","gpuId","gpuHourlyUsd","aggregateTokensPerSecPerGpu","utilizationHeadroomPct"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["ai"]}},"/api/v1/tools/tiered-commission-calculator":{"post":{"operationId":"tieredCommissionCalculator","summary":"Tiered Commission Calculator (USD)","description":"Calculate tiered sales commission in USD: a base rate up to a threshold, a higher rate above it, plus any settlement adjustment. See the exact per-tier math.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revenue":{"type":"number","minimum":0,"maximum":1000000000},"tier1RatePct":{"type":"number","minimum":0,"maximum":100},"tier2RatePct":{"type":"number","minimum":0,"maximum":100},"tier2ThresholdAmount":{"type":"number","minimum":0,"maximum":1000000000},"adjustmentAmount":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"required":["revenue","tier1RatePct","tier2RatePct","tier2ThresholdAmount","adjustmentAmount"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful calculation result.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","description":"Structured calculation output (fields vary per calculator)."}},"required":["result"]}}}},"400":{"description":"Invalid input — the issues array contains Zod validation errors.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"issues":{"type":"array","items":{"type":"object"}}},"required":["error","issues"]}}}},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"404":{"description":"Unknown tool slug."}},"tags":["business"]}},"/api/v1/graph":{"post":{"operationId":"runCalculationGraph","summary":"Run a calculation graph (compose calculators)","description":"Execute a DAG of calculators server-side: each step names a tool, its input, and an optional `bind` map wiring a previous step's result field into this step's input. Deterministic, validated per step. Pro tier.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"steps":{"type":"array","minItems":1,"maxItems":12,"items":{"type":"object","properties":{"id":{"type":"string"},"toolSlug":{"type":"string"},"input":{"type":"object"},"bind":{"type":"object","additionalProperties":{"type":"string"}}},"required":["id","toolSlug","input"]}}},"required":["steps"]}}}},"responses":{"200":{"description":"Graph executed; every step carries its result and provenance."},"400":{"description":"Invalid graph (bad body, unknown slug, cycle, or a step's input failed validation)."},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."}},"tags":["pro"]}},"/api/v1/ai-pricing":{"get":{"operationId":"getAiPricingFeed","summary":"AI cost data feed (LLM/GPU pricing snapshot)","description":"The versioned, source-cited LLM API, GPU cloud, embedding, fine-tuning and throughput pricing dataset that powers the AI-economics calculators. Every entry links its official source; the feed carries a vintage and retrieval date. Maintained so you don't have to track provider price pages. Pro tier.","responses":{"200":{"description":"The current pricing snapshot with vintage and per-entry sources."},"403":{"description":"Forbidden — an Authorization: Bearer cf_… key was supplied but is invalid."},"429":{"description":"Rate limit exceeded — includes Retry-After and a documentationUrl."}},"tags":["pro"]}}}}