openapi: 3.0.3
info:
  title: BMI Calc Now
  description: >
    BMI Calc Now is a free, client-side Body Mass Index calculator.
    All calculations run in the browser — there is no server-side API.
    This OpenAPI spec exists for AI agent discovery and describes the
    tool's capabilities. To use the calculator, visit the website directly.
  version: 1.0.0
  contact:
    name: Kymata Labs LLC
    email: contact@bmicalcnow.com
    url: https://bmicalcnow.com
  license:
    name: Proprietary
    url: https://bmicalcnow.com/en/terms/

servers:
  - url: https://bmicalcnow.com
    description: Production

paths:
  /:
    get:
      summary: BMI Calculator (Client-Side Web Application)
      description: >
        The BMI calculator homepage. All calculations are performed
        client-side in the browser using JavaScript. No server-side
        computation is available. Supports metric (kg/cm) and imperial
        (lbs/ft-in) units.
      operationId: getCalculator
      responses:
        '200':
          description: HTML page with interactive BMI calculator

  /en/blog/:
    get:
      summary: Blog index with articles about BMI and health
      operationId: getBlogIndex
      responses:
        '200':
          description: HTML page listing all blog articles

  /en/faq/:
    get:
      summary: Frequently asked questions about BMI
      operationId: getFAQ
      responses:
        '200':
          description: HTML page with 10 BMI FAQ items

components:
  schemas:
    BMIResult:
      type: object
      description: >
        The output displayed by the client-side calculator.
        This schema describes the data structure — no API endpoint
        returns this data.
      properties:
        bmi:
          type: number
          format: float
          description: BMI value (weight in kg / height in m²)
          example: 22.9
        category:
          type: string
          description: WHO BMI classification
          enum:
            - Severe Thinness
            - Moderate Thinness
            - Mild Thinness
            - Normal
            - Overweight
            - Obese Class I
            - Obese Class II
            - Obese Class III
          example: Normal
        bmiPrime:
          type: number
          format: float
          description: Ratio of BMI to 25 (upper normal limit)
          example: 0.92
        ponderalIndex:
          type: number
          format: float
          description: Weight (kg) / height (m)³
          example: 13.1
        healthyWeightRange:
          type: object
          properties:
            min:
              type: number
              description: Minimum healthy weight in kg
            max:
              type: number
              description: Maximum healthy weight in kg
