{
  "openapi": "3.1.0",
  "info": {
    "title": "Finology Software Public API",
    "version": "0.1.0-preview",
    "summary": "Parity-verified federal student loan calculations (preview, not yet generally available)",
    "description": "The Finology Software public API exposes a parity-verified federal student loan calculation engine covering RAP, IDR, PSLF, and legacy repayment plans. Every dollar figure is computed by the deterministic verified engine and provenance-stamped; no numbers are AI-generated.\n\nSTATUS: preview. The API is not yet generally available. Only the /health endpoint is live today. Planned operations mirror the Finology Software MCP tool surface: run_projection, compare_scenarios, get_eligible_plans, and get_plan_types (see https://finology.tech/.well-known/mcp/server-card.json).\n\nAccess is gated. Registration instructions: https://finology.tech/auth.md. Protected-resource metadata: https://finology.tech/.well-known/oauth-protected-resource.",
    "contact": {
      "name": "Finology Software",
      "email": "support@finology.tech",
      "url": "https://finology.tech"
    }
  },
  "servers": [
    { "url": "https://api.finology.tech", "description": "Production (preview surface)" }
  ],
  "paths": {
    "/health": {
      "get": {
        "operationId": "getHealth",
        "summary": "Discovery-surface health probe",
        "description": "Confirms the API discovery surface is reachable and reports whether the API is generally available.",
        "security": [],
        "responses": {
          "200": {
            "description": "Discovery surface is reachable",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": { "type": "string", "enum": ["ok"] },
                    "service": { "type": "string" },
                    "phase": { "type": "string", "enum": ["preview", "live"] },
                    "apiAvailable": { "type": "boolean" },
                    "message": { "type": "string" }
                  },
                  "required": ["status", "service", "apiAvailable"]
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Api-Key",
        "description": "API key issued at registration. See https://finology.tech/auth.md"
      },
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth 2.0 via Duende IdentityServer. Authorization-server metadata: https://finology.tech/.well-known/oauth-authorization-server",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://identity.finology.tech/connect/token",
            "scopes": {
              "finology.public-api": "Call the Finology Software public API"
            }
          }
        }
      }
    }
  },
  "security": [
    { "ApiKeyAuth": [] },
    { "OAuth2": ["finology.public-api"] }
  ]
}
