{
  "openapi": "3.0.3",
  "info": {
    "title": "LogiGrain API",
    "description": "Deterministic calculation APIs for AI agents. Pay-per-call via x402 protocol on Base mainnet.",
    "version": "3.5.1",
    "contact": {
      "url": "https://logigrain.net"
    }
  },
  "servers": [
    {
      "url": "https://logigrain.net",
      "description": "Production"
    }
  ],
  "x-x402": {
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "scheme": "exact",
    "price": "$0.001",
    "payTo": "0x716fdE0dAc4Ef6ed2018206d43697C6Bb71D7EB3"
  },
  "paths": {
    "/api/compound": {
      "get": {
        "summary": "Compound interest calculator",
        "parameters": [
          {"name": "principal", "in": "query", "required": true, "schema": {"type": "number"}},
          {"name": "rate", "in": "query", "required": true, "schema": {"type": "number"}, "description": "Annual rate in percent"},
          {"name": "years", "in": "query", "required": true, "schema": {"type": "integer"}},
          {"name": "monthly", "in": "query", "schema": {"type": "number"}, "description": "Monthly contribution"}
        ],
        "responses": {"200": {"description": "Compound interest result"}}
      }
    },
    "/api/convert": {
      "get": {
        "summary": "Currency exchange rate conversion",
        "parameters": [
          {"name": "from", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Source currency code (e.g. USD)"},
          {"name": "to", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Target currency code (e.g. JPY)"},
          {"name": "amount", "in": "query", "schema": {"type": "number", "default": 1}}
        ],
        "responses": {"200": {"description": "Conversion result"}}
      }
    },
    "/api/convert-unit": {
      "get": {
        "summary": "Physical unit conversion",
        "parameters": [
          {"name": "value", "in": "query", "required": true, "schema": {"type": "number"}},
          {"name": "from", "in": "query", "required": true, "schema": {"type": "string"}},
          {"name": "to", "in": "query", "required": true, "schema": {"type": "string"}},
          {"name": "category", "in": "query", "schema": {"type": "string"}, "description": "length, weight, speed, data, area, volume, energy"}
        ],
        "responses": {"200": {"description": "Unit conversion result"}}
      }
    },
    "/api/json": {
      "get": {
        "summary": "JSON validation, formatting, analysis",
        "parameters": [
          {"name": "action", "in": "query", "schema": {"type": "string", "enum": ["validate", "format", "minify"], "default": "validate"}},
          {"name": "input", "in": "query", "required": true, "schema": {"type": "string"}}
        ],
        "responses": {"200": {"description": "JSON analysis result"}}
      }
    },
    "/api/math": {
      "get": {
        "summary": "Mathematical expression evaluator",
        "parameters": [
          {"name": "expr", "in": "query", "required": true, "schema": {"type": "string"}},
          {"name": "vars", "in": "query", "schema": {"type": "string"}, "description": "Comma-separated key=value pairs"}
        ],
        "responses": {"200": {"description": "Evaluation result"}}
      }
    },
    "/api/code": {
      "get": {
        "summary": "Syntax validator for JSON, JavaScript, HTML, CSS",
        "parameters": [
          {"name": "lang", "in": "query", "required": true, "schema": {"type": "string", "enum": ["json", "javascript", "html", "css"]}},
          {"name": "code", "in": "query", "required": true, "schema": {"type": "string"}}
        ],
        "responses": {"200": {"description": "Validation result"}}
      }
    },
    "/api/feed": {
      "get": {
        "summary": "Real-time forex and crypto price feeds",
        "parameters": [
          {"name": "type", "in": "query", "required": true, "schema": {"type": "string", "enum": ["forex", "crypto"]}},
          {"name": "symbols", "in": "query", "schema": {"type": "string"}, "description": "Comma-separated symbols"},
          {"name": "base", "in": "query", "schema": {"type": "string", "default": "USD"}, "description": "Base currency (forex only)"}
        ],
        "responses": {"200": {"description": "Price feed data"}}
      }
    },
    "/api/date": {
      "get": {
        "summary": "Date calculations",
        "parameters": [
          {"name": "action", "in": "query", "required": true, "schema": {"type": "string", "enum": ["diff", "add", "unix", "business"]}},
          {"name": "start", "in": "query", "schema": {"type": "string", "format": "date"}},
          {"name": "end", "in": "query", "schema": {"type": "string", "format": "date"}},
          {"name": "days", "in": "query", "schema": {"type": "integer"}},
          {"name": "timestamp", "in": "query", "schema": {"type": "integer"}}
        ],
        "responses": {"200": {"description": "Date calculation result"}}
      }
    },
    "/api/probability": {
      "get": {
        "summary": "Bayesian inference, combinations, permutations",
        "parameters": [
          {"name": "type", "in": "query", "required": true, "schema": {"type": "string", "enum": ["bayes", "combination", "permutation"]}},
          {"name": "pa", "in": "query", "schema": {"type": "number"}},
          {"name": "pba", "in": "query", "schema": {"type": "number"}},
          {"name": "pbna", "in": "query", "schema": {"type": "number"}},
          {"name": "n", "in": "query", "schema": {"type": "integer"}},
          {"name": "r", "in": "query", "schema": {"type": "integer"}}
        ],
        "responses": {"200": {"description": "Probability result"}}
      }
    },
    "/api/token-cost": {
      "get": {
        "summary": "LLM API cost estimator",
        "parameters": [
          {"name": "input", "in": "query", "schema": {"type": "integer", "default": 1000}, "description": "Input tokens"},
          {"name": "output", "in": "query", "schema": {"type": "integer", "default": 500}, "description": "Output tokens"},
          {"name": "requests", "in": "query", "schema": {"type": "integer", "default": 1}, "description": "Requests per day"}
        ],
        "responses": {"200": {"description": "Cost comparison"}}
      }
    },
    "/api/era": {
      "get": {
        "summary": "Japanese era (和暦) converter",
        "parameters": [
          {"name": "action", "in": "query", "required": true, "schema": {"type": "string", "enum": ["to_iso", "to_era", "fiscal_year"]}},
          {"name": "value", "in": "query", "required": true, "schema": {"type": "string"}}
        ],
        "responses": {"200": {"description": "Era conversion result"}}
      }
    },
    "/api/moon": {
      "get": {
        "summary": "Lunar phase calculator with Japanese moon culture",
        "parameters": [
          {"name": "date", "in": "query", "schema": {"type": "string", "format": "date"}},
          {"name": "tz", "in": "query", "schema": {"type": "string", "default": "UTC"}},
          {"name": "include", "in": "query", "schema": {"type": "string"}, "description": "Comma-separated: trivia"}
        ],
        "responses": {"200": {"description": "Lunar phase data"}}
      }
    }
  }
}
