{
  "openapi": "3.1.0",
  "info": {
    "title": "MoltCalc API",
    "version": "1.0.0",
    "description": "Open, free API for running MoltCalc's calculators. No key required. Every calculator on moltcalc.com is available as a JSON endpoint for people and AI agents."
  },
  "servers": [
    {
      "url": "https://moltcalc.com"
    }
  ],
  "paths": {
    "/api/calculators": {
      "get": {
        "operationId": "listCalculators",
        "summary": "List all calculators",
        "description": "Discovery endpoint. Returns every calculator with its slug, category and endpoint.",
        "responses": {
          "200": {
            "description": "List of calculators"
          }
        }
      }
    },
    "/api/calculators/{slug}": {
      "get": {
        "operationId": "getCalculatorSchema",
        "summary": "Get a calculator's input schema",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculator schema"
          },
          "404": {
            "description": "Not found"
          }
        }
      }
    },
    "/api/calc/loan": {
      "get": {
        "operationId": "calc_loan",
        "summary": "Loan Calculator",
        "description": "Loan calculator for any amount, rate and term. See your monthly payment, total interest and total cost instantly, with the amortization math shown.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "Loan amount ($)",
            "schema": {
              "type": "number",
              "default": 20000
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "Annual interest rate (%)",
            "schema": {
              "type": "number",
              "default": 7
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Term (years)",
            "schema": {
              "type": "number",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/mortgage": {
      "get": {
        "operationId": "calc_mortgage",
        "summary": "Mortgage Calculator",
        "description": "Mortgage calculator with taxes and insurance. Estimate your monthly house payment, principal and interest, and total interest over the loan term.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "price",
            "in": "query",
            "required": true,
            "description": "Home price ($)",
            "schema": {
              "type": "number",
              "default": 400000
            }
          },
          {
            "name": "down",
            "in": "query",
            "required": false,
            "description": "Down payment ($)",
            "schema": {
              "type": "number",
              "default": 80000
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "Interest rate (%)",
            "schema": {
              "type": "number",
              "default": 6.5
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Loan term (years)",
            "schema": {
              "type": "number",
              "default": 30
            }
          },
          {
            "name": "tax",
            "in": "query",
            "required": false,
            "description": "Annual property tax ($)",
            "schema": {
              "type": "number",
              "default": 4800
            }
          },
          {
            "name": "insurance",
            "in": "query",
            "required": false,
            "description": "Annual home insurance ($)",
            "schema": {
              "type": "number",
              "default": 1800
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/compound-interest": {
      "get": {
        "operationId": "calc_compound_interest",
        "summary": "Compound Interest Calculator",
        "description": "Compound interest calculator with monthly contributions. See the future value of your savings, total contributed and interest earned over any period.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "principal",
            "in": "query",
            "required": true,
            "description": "Starting amount ($)",
            "schema": {
              "type": "number",
              "default": 10000
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "Annual interest rate (%)",
            "schema": {
              "type": "number",
              "default": 8
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Years (years)",
            "schema": {
              "type": "number",
              "default": 10
            }
          },
          {
            "name": "frequency",
            "in": "query",
            "required": false,
            "description": "Compounding",
            "schema": {
              "type": "string",
              "enum": [
                "1",
                "4",
                "12",
                "365"
              ],
              "default": "12"
            }
          },
          {
            "name": "contribution",
            "in": "query",
            "required": false,
            "description": "Monthly contribution ($)",
            "schema": {
              "type": "number",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/simple-interest": {
      "get": {
        "operationId": "calc_simple_interest",
        "summary": "Simple Interest Calculator",
        "description": "Simple interest calculator: enter principal, rate and time to get the interest and total amount owed or earned, with the I = Prt working shown.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "principal",
            "in": "query",
            "required": true,
            "description": "Principal ($)",
            "schema": {
              "type": "number",
              "default": 5000
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "Annual rate (%)",
            "schema": {
              "type": "number",
              "default": 5
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Time (years)",
            "schema": {
              "type": "number",
              "default": 3
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/tip": {
      "get": {
        "operationId": "calc_tip",
        "summary": "Tip Calculator",
        "description": "Tip calculator that adds the gratuity and splits the bill. Enter the bill, tip percent and party size to see the tip, total and each person's share.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "bill",
            "in": "query",
            "required": true,
            "description": "Bill amount ($)",
            "schema": {
              "type": "number",
              "default": 60
            }
          },
          {
            "name": "tip",
            "in": "query",
            "required": true,
            "description": "Tip (%)",
            "schema": {
              "type": "number",
              "default": 18
            }
          },
          {
            "name": "people",
            "in": "query",
            "required": false,
            "description": "Split between (people)",
            "schema": {
              "type": "number",
              "default": 2
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/sales-tax": {
      "get": {
        "operationId": "calc_sales_tax",
        "summary": "Sales Tax Calculator",
        "description": "Sales tax calculator: enter a price and tax rate to get the tax amount and the total price with tax. Works for any state or local sales tax rate.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "Price before tax ($)",
            "schema": {
              "type": "number",
              "default": 100
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "Sales tax rate (%)",
            "schema": {
              "type": "number",
              "default": 8.25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/discount": {
      "get": {
        "operationId": "calc_discount",
        "summary": "Discount Calculator",
        "description": "Discount calculator for percent off deals. Enter the original price and the discount to see the final sale price and exactly how much you save.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "price",
            "in": "query",
            "required": true,
            "description": "Original price ($)",
            "schema": {
              "type": "number",
              "default": 80
            }
          },
          {
            "name": "discount",
            "in": "query",
            "required": true,
            "description": "Discount (%)",
            "schema": {
              "type": "number",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/roi": {
      "get": {
        "operationId": "calc_roi",
        "summary": "ROI Calculator",
        "description": "ROI calculator: enter your initial investment and final value to get return on investment, net gain and annualized return over the holding period.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "initial",
            "in": "query",
            "required": true,
            "description": "Initial investment ($)",
            "schema": {
              "type": "number",
              "default": 10000
            }
          },
          {
            "name": "final",
            "in": "query",
            "required": true,
            "description": "Final value ($)",
            "schema": {
              "type": "number",
              "default": 15000
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": false,
            "description": "Holding period (years)",
            "schema": {
              "type": "number",
              "default": 3
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/savings-goal": {
      "get": {
        "operationId": "calc_savings_goal",
        "summary": "Savings Goal Calculator",
        "description": "Savings goal calculator that shows how much to save per month to reach a target, counting your current savings and the return they earn on the way.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "goal",
            "in": "query",
            "required": true,
            "description": "Savings goal ($)",
            "schema": {
              "type": "number",
              "default": 50000
            }
          },
          {
            "name": "current",
            "in": "query",
            "required": false,
            "description": "Current savings ($)",
            "schema": {
              "type": "number",
              "default": 5000
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Years to save (years)",
            "schema": {
              "type": "number",
              "default": 5
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": false,
            "description": "Annual return (%)",
            "schema": {
              "type": "number",
              "default": 4
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/cagr": {
      "get": {
        "operationId": "calc_cagr",
        "summary": "CAGR Calculator",
        "description": "CAGR calculator: enter a beginning value, ending value and number of years to get the compound annual growth rate plus total growth in percent.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "begin",
            "in": "query",
            "required": true,
            "description": "Beginning value ($)",
            "schema": {
              "type": "number",
              "default": 10000
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": true,
            "description": "Ending value ($)",
            "schema": {
              "type": "number",
              "default": 25000
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Number of years (years)",
            "schema": {
              "type": "number",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/percentage": {
      "get": {
        "operationId": "calc_percentage",
        "summary": "Percentage Calculator",
        "description": "Percentage calculator that finds what X percent of a number is, like 15% of 200, with the working shown. Quick answers for tips, tests and discounts.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "percent",
            "in": "query",
            "required": true,
            "description": "Percent (%)",
            "schema": {
              "type": "number",
              "default": 15
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "of",
            "schema": {
              "type": "number",
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/percentage-change": {
      "get": {
        "operationId": "calc_percentage_change",
        "summary": "Percentage Change Calculator",
        "description": "Percentage change calculator: compare two numbers to get the percent increase or decrease and the raw difference, with the formula and steps shown.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Original value",
            "schema": {
              "type": "number",
              "default": 120
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "New value",
            "schema": {
              "type": "number",
              "default": 150
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/average": {
      "get": {
        "operationId": "calc_average",
        "summary": "Average Calculator (Mean, Median, Mode)",
        "description": "Average calculator for any list of numbers. Paste your values to get the mean, median, mode, sum, count and range in one step. Free, no sign-up.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "numbers",
            "in": "query",
            "required": true,
            "description": "Numbers",
            "schema": {
              "type": "string",
              "default": "4, 8, 15, 16, 23, 42"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/ratio": {
      "get": {
        "operationId": "calc_ratio",
        "summary": "Ratio Calculator",
        "description": "Ratio calculator that reduces any ratio to lowest terms and shows it as a decimal, like 16:9 to 1.78. Handy for screens, recipes and scale models.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "description": "Term A",
            "schema": {
              "type": "number",
              "default": 16
            }
          },
          {
            "name": "b",
            "in": "query",
            "required": true,
            "description": "Term B",
            "schema": {
              "type": "number",
              "default": 9
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/gcd-lcm": {
      "get": {
        "operationId": "calc_gcd_lcm",
        "summary": "GCD and LCM Calculator",
        "description": "GCD and LCM calculator: find the greatest common divisor and least common multiple of two integers at once, with the math behind each answer.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "description": "First integer",
            "schema": {
              "type": "number",
              "default": 24
            }
          },
          {
            "name": "b",
            "in": "query",
            "required": true,
            "description": "Second integer",
            "schema": {
              "type": "number",
              "default": 36
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/rounding": {
      "get": {
        "operationId": "calc_rounding",
        "summary": "Rounding Calculator",
        "description": "Rounding calculator that rounds any number to the decimal places you choose, from whole numbers to 10 places. Instant, exact and free to use.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "Number",
            "schema": {
              "type": "number",
              "default": 3.14159
            }
          },
          {
            "name": "places",
            "in": "query",
            "required": true,
            "description": "Decimal places",
            "schema": {
              "type": "number",
              "default": 2
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/words-to-numbers": {
      "get": {
        "operationId": "calc_words_to_numbers",
        "summary": "Words to Numbers Converter",
        "description": "Words to numbers converter: type a number in English words, like two thousand five hundred, and get the digits. Handles decimals and negatives too.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "words",
            "in": "query",
            "required": true,
            "description": "Number in words",
            "schema": {
              "type": "string",
              "default": "one thousand two hundred thirty-four"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/bmi": {
      "get": {
        "operationId": "calc_bmi",
        "summary": "BMI Calculator",
        "description": "BMI calculator for adults: enter height and weight in metric or imperial units to get your body mass index and weight category, with the formula shown.",
        "tags": [
          "health"
        ],
        "parameters": [
          {
            "name": "units",
            "in": "query",
            "required": false,
            "description": "Units",
            "schema": {
              "type": "string",
              "enum": [
                "metric",
                "imperial"
              ],
              "default": "metric"
            }
          },
          {
            "name": "weight",
            "in": "query",
            "required": true,
            "description": "Weight",
            "schema": {
              "type": "number",
              "default": 70
            }
          },
          {
            "name": "height",
            "in": "query",
            "required": true,
            "description": "Height",
            "schema": {
              "type": "number",
              "default": 175
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/bmr": {
      "get": {
        "operationId": "calc_bmr",
        "summary": "BMR Calculator",
        "description": "BMR calculator using the Mifflin-St Jeor equation. Enter age, sex, height and weight to find the calories your body burns at rest each day.",
        "tags": [
          "health"
        ],
        "parameters": [
          {
            "name": "units",
            "in": "query",
            "required": false,
            "description": "Units",
            "schema": {
              "type": "string",
              "enum": [
                "metric",
                "imperial"
              ],
              "default": "metric"
            }
          },
          {
            "name": "sex",
            "in": "query",
            "required": false,
            "description": "Sex",
            "schema": {
              "type": "string",
              "enum": [
                "male",
                "female"
              ],
              "default": "male"
            }
          },
          {
            "name": "age",
            "in": "query",
            "required": true,
            "description": "Age (years)",
            "schema": {
              "type": "number",
              "default": 30
            }
          },
          {
            "name": "weight",
            "in": "query",
            "required": true,
            "description": "Weight",
            "schema": {
              "type": "number",
              "default": 70
            }
          },
          {
            "name": "height",
            "in": "query",
            "required": true,
            "description": "Height",
            "schema": {
              "type": "number",
              "default": 175
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/calorie": {
      "get": {
        "operationId": "calc_calorie",
        "summary": "Calorie Calculator (TDEE)",
        "description": "Calorie calculator that estimates your TDEE, the calories you burn per day, plus targets for losing or gaining weight at your activity level.",
        "tags": [
          "health"
        ],
        "parameters": [
          {
            "name": "units",
            "in": "query",
            "required": false,
            "description": "Units",
            "schema": {
              "type": "string",
              "enum": [
                "metric",
                "imperial"
              ],
              "default": "metric"
            }
          },
          {
            "name": "sex",
            "in": "query",
            "required": false,
            "description": "Sex",
            "schema": {
              "type": "string",
              "enum": [
                "male",
                "female"
              ],
              "default": "male"
            }
          },
          {
            "name": "age",
            "in": "query",
            "required": true,
            "description": "Age (years)",
            "schema": {
              "type": "number",
              "default": 30
            }
          },
          {
            "name": "weight",
            "in": "query",
            "required": true,
            "description": "Weight",
            "schema": {
              "type": "number",
              "default": 70
            }
          },
          {
            "name": "height",
            "in": "query",
            "required": true,
            "description": "Height",
            "schema": {
              "type": "number",
              "default": 175
            }
          },
          {
            "name": "activity",
            "in": "query",
            "required": false,
            "description": "Activity level",
            "schema": {
              "type": "string",
              "enum": [
                "1.2",
                "1.375",
                "1.55",
                "1.725",
                "1.9"
              ],
              "default": "1.375"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/ideal-weight": {
      "get": {
        "operationId": "calc_ideal_weight",
        "summary": "Ideal Weight Calculator",
        "description": "Ideal weight calculator based on the Devine formula. Enter your height and sex to get a healthy target weight in both kilograms and pounds.",
        "tags": [
          "health"
        ],
        "parameters": [
          {
            "name": "units",
            "in": "query",
            "required": false,
            "description": "Units",
            "schema": {
              "type": "string",
              "enum": [
                "metric",
                "imperial"
              ],
              "default": "metric"
            }
          },
          {
            "name": "sex",
            "in": "query",
            "required": false,
            "description": "Sex",
            "schema": {
              "type": "string",
              "enum": [
                "male",
                "female"
              ],
              "default": "male"
            }
          },
          {
            "name": "height",
            "in": "query",
            "required": true,
            "description": "Height",
            "schema": {
              "type": "number",
              "default": 175
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/circle": {
      "get": {
        "operationId": "calc_circle",
        "summary": "Circle Calculator",
        "description": "Circle calculator: enter the radius to get the area, circumference and diameter in one step, with the pi formulas and working written out for you.",
        "tags": [
          "geometry"
        ],
        "parameters": [
          {
            "name": "radius",
            "in": "query",
            "required": true,
            "description": "Radius (units)",
            "schema": {
              "type": "number",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/rectangle": {
      "get": {
        "operationId": "calc_rectangle",
        "summary": "Rectangle Calculator",
        "description": "Rectangle calculator: enter length and width to get the area, perimeter and diagonal at once. Useful for rooms, gardens, screens and materials.",
        "tags": [
          "geometry"
        ],
        "parameters": [
          {
            "name": "length",
            "in": "query",
            "required": true,
            "description": "Length (units)",
            "schema": {
              "type": "number",
              "default": 10
            }
          },
          {
            "name": "width",
            "in": "query",
            "required": true,
            "description": "Width (units)",
            "schema": {
              "type": "number",
              "default": 6
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/triangle-area": {
      "get": {
        "operationId": "calc_triangle_area",
        "summary": "Triangle Area Calculator",
        "description": "Triangle area calculator using base and height. Get the area from the half base times height formula, with each step of the working shown.",
        "tags": [
          "geometry"
        ],
        "parameters": [
          {
            "name": "base",
            "in": "query",
            "required": true,
            "description": "Base (units)",
            "schema": {
              "type": "number",
              "default": 8
            }
          },
          {
            "name": "height",
            "in": "query",
            "required": true,
            "description": "Height (units)",
            "schema": {
              "type": "number",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/cylinder-volume": {
      "get": {
        "operationId": "calc_cylinder_volume",
        "summary": "Cylinder Volume Calculator",
        "description": "Cylinder volume calculator: enter radius and height to get the volume and total surface area, useful for tanks, pipes, cans and containers.",
        "tags": [
          "geometry"
        ],
        "parameters": [
          {
            "name": "radius",
            "in": "query",
            "required": true,
            "description": "Radius (units)",
            "schema": {
              "type": "number",
              "default": 3
            }
          },
          {
            "name": "height",
            "in": "query",
            "required": true,
            "description": "Height (units)",
            "schema": {
              "type": "number",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/sphere-volume": {
      "get": {
        "operationId": "calc_sphere_volume",
        "summary": "Sphere Volume Calculator",
        "description": "Sphere volume calculator: enter the radius to get the volume and surface area of a sphere, with the 4/3 pi r cubed formula worked through.",
        "tags": [
          "geometry"
        ],
        "parameters": [
          {
            "name": "radius",
            "in": "query",
            "required": true,
            "description": "Radius (units)",
            "schema": {
              "type": "number",
              "default": 4
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/age": {
      "get": {
        "operationId": "calc_age",
        "summary": "Age Calculator",
        "description": "Age calculator that shows exactly how old you are in years, months and days from your date of birth, plus your total age in months and days.",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "birthdate",
            "in": "query",
            "required": true,
            "description": "Date of birth",
            "schema": {
              "type": "string",
              "default": "1990-01-01"
            }
          },
          {
            "name": "asof",
            "in": "query",
            "required": false,
            "description": "Age at date",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/date-difference": {
      "get": {
        "operationId": "calc_date_difference",
        "summary": "Date Difference Calculator",
        "description": "Date difference calculator: count the days between two dates, plus weeks, months and years. Handy for deadlines, countdowns and project plans.",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": true,
            "description": "Start date",
            "schema": {
              "type": "string",
              "default": "2026-01-01"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": true,
            "description": "End date",
            "schema": {
              "type": "string",
              "default": "2026-12-31"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/date-add": {
      "get": {
        "operationId": "calc_date_add",
        "summary": "Date Add / Subtract Calculator",
        "description": "Add days to a date or subtract them to find a past date. See what date it is 30, 90 or any number of days from today or from any start date.",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "Start date",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": true,
            "description": "Days to add",
            "schema": {
              "type": "number",
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/length-converter": {
      "get": {
        "operationId": "calc_length_converter",
        "summary": "Length Converter",
        "description": "Length converter for meters, feet, inches, centimeters, kilometers, miles and yards. Convert any length or distance unit to another in one step.",
        "tags": [
          "conversion"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "Value",
            "schema": {
              "type": "number",
              "default": 100
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "From",
            "schema": {
              "type": "string",
              "enum": [
                "mm",
                "cm",
                "m",
                "km",
                "in",
                "ft",
                "yd",
                "mi"
              ],
              "default": "cm"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "To",
            "schema": {
              "type": "string",
              "enum": [
                "mm",
                "cm",
                "m",
                "km",
                "in",
                "ft",
                "yd",
                "mi"
              ],
              "default": "in"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/weight-converter": {
      "get": {
        "operationId": "calc_weight_converter",
        "summary": "Weight Converter",
        "description": "Weight converter for kilograms, pounds, ounces, grams, stone and tonnes. Convert kg to lbs or any other pair of weight units with exact factors.",
        "tags": [
          "conversion"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "Value",
            "schema": {
              "type": "number",
              "default": 70
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "From",
            "schema": {
              "type": "string",
              "enum": [
                "mg",
                "g",
                "kg",
                "t",
                "oz",
                "lb",
                "st"
              ],
              "default": "kg"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "To",
            "schema": {
              "type": "string",
              "enum": [
                "mg",
                "g",
                "kg",
                "t",
                "oz",
                "lb",
                "st"
              ],
              "default": "lb"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/temperature-converter": {
      "get": {
        "operationId": "calc_temperature_converter",
        "summary": "Temperature Converter",
        "description": "Temperature converter for Celsius, Fahrenheit and Kelvin. Convert C to F, F to C or either to Kelvin, with the exact conversion formula shown.",
        "tags": [
          "conversion"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "Value",
            "schema": {
              "type": "number",
              "default": 25
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "From",
            "schema": {
              "type": "string",
              "enum": [
                "C",
                "F",
                "K"
              ],
              "default": "C"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "To",
            "schema": {
              "type": "string",
              "enum": [
                "C",
                "F",
                "K"
              ],
              "default": "F"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/numbers-to-words": {
      "get": {
        "operationId": "calc_numbers_to_words",
        "summary": "Numbers to Words Converter",
        "description": "Numbers to words converter: type a number like 1234 and get it spelled out in English words, including decimals and negative values.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "number",
            "in": "query",
            "required": true,
            "description": "Number",
            "schema": {
              "type": "number",
              "default": 1234
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/roman-numerals": {
      "get": {
        "operationId": "calc_roman_numerals",
        "summary": "Roman Numeral Converter",
        "description": "Roman numeral converter that works both ways: turn a number like 2024 into MMXXIV, or a Roman numeral back into a number.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "Number or Roman numeral",
            "schema": {
              "type": "string",
              "default": "2024"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/percent-of": {
      "get": {
        "operationId": "calc_percent_of",
        "summary": "What Percent Is X of Y",
        "description": "Find what percent one number is of another, for example 30 is what percent of 200. Shows the percentage and the working.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "x",
            "in": "query",
            "required": true,
            "description": "X (the part)",
            "schema": {
              "type": "number",
              "default": 30
            }
          },
          {
            "name": "y",
            "in": "query",
            "required": true,
            "description": "Y (the whole)",
            "schema": {
              "type": "number",
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/square-footage": {
      "get": {
        "operationId": "calc_square_footage",
        "summary": "Square Footage Calculator",
        "description": "Square footage calculator: enter length and width in feet to get the area in square feet, square meters and acres for rooms, floors and land.",
        "tags": [
          "geometry"
        ],
        "parameters": [
          {
            "name": "length",
            "in": "query",
            "required": true,
            "description": "Length (ft)",
            "schema": {
              "type": "number",
              "default": 12
            }
          },
          {
            "name": "width",
            "in": "query",
            "required": true,
            "description": "Width (ft)",
            "schema": {
              "type": "number",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/hours": {
      "get": {
        "operationId": "calc_hours",
        "summary": "Hours Calculator",
        "description": "Hours calculator that counts the time between a start and end time, minus any break, and shows the total in hours and minutes and as decimal hours.",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": true,
            "description": "Start time",
            "schema": {
              "type": "string",
              "default": "09:00"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": true,
            "description": "End time",
            "schema": {
              "type": "string",
              "default": "17:30"
            }
          },
          {
            "name": "break",
            "in": "query",
            "required": false,
            "description": "Break (minutes)",
            "schema": {
              "type": "number",
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/gpa": {
      "get": {
        "operationId": "calc_gpa",
        "summary": "GPA Calculator",
        "description": "GPA calculator on the 4.0 scale. Enter each course grade and its credit hours to get your weighted grade point average and total credits.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "courses",
            "in": "query",
            "required": true,
            "description": "Courses",
            "schema": {
              "type": "string",
              "default": "A 3, B+ 4, B 3, A- 4"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/fraction": {
      "get": {
        "operationId": "calc_fraction",
        "summary": "Fraction Calculator",
        "description": "Fraction calculator to add, subtract, multiply or divide two fractions. Get the answer as a simplified fraction, a mixed number and a decimal.",
        "tags": [
          "math"
        ],
        "parameters": [
          {
            "name": "n1",
            "in": "query",
            "required": true,
            "description": "Numerator 1",
            "schema": {
              "type": "number",
              "default": 1
            }
          },
          {
            "name": "d1",
            "in": "query",
            "required": true,
            "description": "Denominator 1",
            "schema": {
              "type": "number",
              "default": 2
            }
          },
          {
            "name": "op",
            "in": "query",
            "required": false,
            "description": "Operation",
            "schema": {
              "type": "string",
              "enum": [
                "+",
                "-",
                "*",
                "/"
              ],
              "default": "+"
            }
          },
          {
            "name": "n2",
            "in": "query",
            "required": true,
            "description": "Numerator 2",
            "schema": {
              "type": "number",
              "default": 1
            }
          },
          {
            "name": "d2",
            "in": "query",
            "required": true,
            "description": "Denominator 2",
            "schema": {
              "type": "number",
              "default": 3
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/salary": {
      "get": {
        "operationId": "calc_salary",
        "summary": "Salary Calculator",
        "description": "Salary calculator to convert pay between hourly, weekly, monthly and yearly. Enter an amount and your hours to see the equivalent hourly wage or annual salary.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "Amount ($)",
            "schema": {
              "type": "number",
              "default": 30
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "This amount is",
            "schema": {
              "type": "string",
              "enum": [
                "hourly",
                "weekly",
                "monthly",
                "annual"
              ],
              "default": "hourly"
            }
          },
          {
            "name": "hours",
            "in": "query",
            "required": false,
            "description": "Hours per week (h)",
            "schema": {
              "type": "number",
              "default": 40
            }
          },
          {
            "name": "weeks",
            "in": "query",
            "required": false,
            "description": "Weeks per year",
            "schema": {
              "type": "number",
              "default": 52
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/inflation": {
      "get": {
        "operationId": "calc_inflation",
        "summary": "Inflation Calculator",
        "description": "Inflation calculator that projects how prices and purchasing power change over time at a given annual inflation rate.",
        "tags": [
          "financial"
        ],
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "Amount today ($)",
            "schema": {
              "type": "number",
              "default": 1000
            }
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "Annual inflation rate (%)",
            "schema": {
              "type": "number",
              "default": 3
            }
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "Years",
            "schema": {
              "type": "number",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    },
    "/api/calc/bac": {
      "get": {
        "operationId": "calc_bac",
        "summary": "Blood Alcohol Content (BAC) Calculator",
        "description": "Estimate blood alcohol content (BAC) from drinks, body weight, sex and time using the Widmark formula. An estimate only, never a guide to whether it is safe to drive.",
        "tags": [
          "health"
        ],
        "parameters": [
          {
            "name": "units",
            "in": "query",
            "required": false,
            "description": "Weight units",
            "schema": {
              "type": "string",
              "enum": [
                "metric",
                "imperial"
              ],
              "default": "metric"
            }
          },
          {
            "name": "weight",
            "in": "query",
            "required": true,
            "description": "Body weight",
            "schema": {
              "type": "number",
              "default": 70
            }
          },
          {
            "name": "sex",
            "in": "query",
            "required": false,
            "description": "Sex",
            "schema": {
              "type": "string",
              "enum": [
                "male",
                "female"
              ],
              "default": "male"
            }
          },
          {
            "name": "drinks",
            "in": "query",
            "required": true,
            "description": "Standard drinks",
            "schema": {
              "type": "number",
              "default": 3
            }
          },
          {
            "name": "hours",
            "in": "query",
            "required": false,
            "description": "Hours since first drink",
            "schema": {
              "type": "number",
              "default": 2
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Calculation result"
          },
          "400": {
            "description": "Invalid or missing parameters"
          }
        }
      }
    }
  }
}