openapi: 3.0.3
info:
  title: Quantly REST API
  version: 1.0.0
  description: Algorithmic trading platform REST API for strategies, portfolios, accounts, and assets.
  contact:
    name: Quantly Support
    url: https://quantly.trade
    email: support@quantly.trade
servers:
  - url: https://api.quantly.trade
security:
  - bearerAuth: []
  - sessionAuth: []
paths:
  /health:
    get:
      summary: Health check
      operationId: getHealth
      security: []
      responses:
        '200':
          description: Service is healthy
  /api/v1/strategies:
    get:
      summary: List strategies
      operationId: listStrategies
      tags: [Strategies]
      responses:
        '200':
          description: Strategy list
    post:
      summary: Create strategy
      operationId: createStrategy
      tags: [Strategies]
      responses:
        '201':
          description: Strategy created
  /api/v1/strategies/{id}:
    get:
      summary: Get strategy
      operationId: getStrategy
      tags: [Strategies]
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Strategy details
  /api/v1/strategies/backtest:
    post:
      summary: Backtest a strategy definition
      operationId: backtestStrategy
      tags: [Strategies]
      responses:
        '200':
          description: Backtest results
  /api/v1/accounts:
    get:
      summary: List brokerage accounts
      operationId: listAccounts
      tags: [Accounts]
      responses:
        '200':
          description: Account list
  /api/v1/accounts/{account_id}/portfolio:
    get:
      summary: Get portfolio
      operationId: getPortfolio
      tags: [Portfolio]
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Portfolio snapshot
  /api/v1/assets:
    get:
      summary: List assets
      operationId: listAssets
      tags: [Assets]
      responses:
        '200':
          description: Asset list
  /api/v1/users/me/api-keys:
    get:
      summary: List API keys
      operationId: listApiKeys
      tags: [API Keys]
      responses:
        '200':
          description: API key list
    post:
      summary: Create API key
      operationId: createApiKey
      tags: [API Keys]
      responses:
        '201':
          description: API key created
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Quantly API key (qk_...) or OAuth access token
    sessionAuth:
      type: http
      scheme: bearer
      description: Short-lived session access token (JWT) from /api/v1/auth/login or /api/v1/auth/refresh
