openapi: "3.1.0"
info:
  title: "PlatPhorm Finance"
  version: "0.1.0-phase1"
  description: "PlatPhorm Finance provides public informational finance data and local simulations only. It does not provide personalized investment advice, execute trades, request brokerage credentials, or promise returns. Public-safe Phase 1 endpoints do not require authentication. PLATPHORM_API_KEY is future protected-action auth."
servers:
  - url: "https://finance.platphormnews.com"
components:
  securitySchemes:
    PlatPhormApiKey:
      type: apiKey
      in: header
      name: X-PlatPhorm-API-Key
      description: "Future protected backend actions accept PLATPHORM_API_KEY. Public-safe Phase 1 flows do not require a key."
    PlatPhormBearer:
      type: http
      scheme: bearer
      description: "Future protected backend actions accept Authorization: Bearer $PLATPHORM_API_KEY."
paths:
  /api/v1/markets:
    get:
      summary: "/api/v1/markets endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/quotes:
    get:
      summary: "/api/v1/quotes endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/quotes/{symbol}:
    get:
      summary: "/api/v1/quotes/{symbol} endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/assets/{symbol}:
    get:
      summary: "/api/v1/assets/{symbol} endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/news:
    get:
      summary: "/api/v1/news endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/feeds:
    get:
      summary: "/api/v1/feeds endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/sources:
    get:
      summary: "/api/v1/sources endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/provider/status:
    get:
      summary: "/api/v1/provider/status endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/watchlist:
    post:
      summary: "/api/v1/watchlist endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/portfolio/simulate:
    post:
      summary: "/api/v1/portfolio/simulate endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/calculators:
    get:
      summary: "/api/v1/calculators endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/calculators/{slug}:
    post:
      summary: "/api/v1/calculators/{slug} endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/reports/summary:
    post:
      summary: "/api/v1/reports/summary endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/integrations/quickbooks/status:
    get:
      summary: "/api/v1/integrations/quickbooks/status endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/mcp:
    get:
      summary: "/api/mcp endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/health:
    get:
      summary: "/api/health endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/v1/health:
    get:
      summary: "/api/v1/health endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
  /api/docs:
    get:
      summary: "/api/docs endpoint"
      responses:
        "200":
          description: "Standard PlatPhorm response envelope"
