> ## Documentation Index
> Fetch the complete documentation index at: https://docs.itoflow.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get strategy performance snapshot

> Returns the latest strategy performance, holdings, scorecard, and performance history.

Operation ID: get__paper_trading_strategyId_status.



## OpenAPI

````yaml /openapi/itoflow-public.openapi.json get /paper-trading/{strategyId}/status
openapi: 3.1.0
info:
  description: >-
    All Itoflow APIs are experimental and may change without notice. Read-only
    operations marked interactive can be tried from the documentation; the
    others are reference-only.
  title: Itoflow Developer API
  version: 1.0.0
servers:
  - description: Itoflow API
    url: https://api.itoflow.ai
security: []
tags:
  - name: Account
  - name: Billing
  - name: Brokers
  - name: Chat
  - name: Connected MCP servers
  - name: GitHub
  - name: Market data
  - name: Monitors
  - name: Notifications
  - name: Portfolios
  - name: Risk runs
  - name: Sharing and data
  - name: Strategies
paths:
  /paper-trading/{strategyId}/status:
    get:
      tags:
        - Strategies
      summary: Get strategy performance snapshot
      description: >-
        Returns the latest strategy performance, holdings, scorecard, and
        performance history.


        Operation ID: get__paper_trading_strategyId_status.
      operationId: get__paper_trading_strategyId_status
      parameters:
        - description: Strategy UUID
          in: path
          name: strategyId
          required: true
          schema:
            description: Strategy UUID
            example: 550e8400-e29b-41d4-a716-446655440000
            format: uuid
            type: string
        - description: 'Performance history window: 1D, 1W, 1M, 3M, 6M, 1Y, or ALL'
          in: query
          name: period
          required: false
          schema:
            description: 'Performance history window: 1D, 1W, 1M, 3M, 6M, 1Y, or ALL'
            example: 3M
            type: string
        - description: 'Performance history sampling override: intraday, hourly, or daily'
          in: query
          name: granularity
          required: false
          schema:
            description: 'Performance history sampling override: intraday, hourly, or daily'
            example: daily
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaperTradingStatusResponse'
          description: Strategy performance snapshot
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid strategy id
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Strategy not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Server error
      security:
        - bearerAuth: []
components:
  schemas:
    PaperTradingStatusResponse:
      properties:
        current:
          properties:
            cash:
              type: string
            cumulativeReturn:
              type:
                - number
                - 'null'
            cumulativeReturnReason:
              type:
                - string
                - 'null'
            dailyReturn:
              type:
                - number
                - 'null'
            dailyReturnReason:
              type:
                - string
                - 'null'
            date:
              type: string
            totalValue:
              type: string
          required:
            - cash
            - cumulativeReturn
            - cumulativeReturnReason
            - dailyReturn
            - dailyReturnReason
            - date
            - totalValue
          type:
            - object
            - 'null'
        factorScorecard:
          $ref: '#/components/schemas/PortfolioFactorScorecard'
        holdings:
          additionalProperties:
            $ref: '#/components/schemas/PaperTradingHolding'
          type: object
        pendingFirstExecution:
          type: boolean
        performanceHistory:
          items:
            properties:
              cumulativeReturn:
                type:
                  - number
                  - 'null'
              cumulativeReturnReason:
                type:
                  - string
                  - 'null'
              timestamp:
                type: string
              value:
                type: string
            required:
              - cumulativeReturn
              - cumulativeReturnReason
              - timestamp
              - value
            type: object
          type: array
        scorecard:
          $ref: '#/components/schemas/AgentScorecard'
        strategy:
          properties:
            constraints:
              $ref: '#/components/schemas/StrategyConstraintsResponse'
            createdAt:
              type: string
            createdBy:
              type: string
            description:
              type:
                - string
                - 'null'
            executionStatus:
              type: string
            id:
              format: uuid
              type: string
            initialCapital:
              type:
                - string
                - 'null'
            isActive:
              type: boolean
            name:
              type: string
            portfolioId:
              format: uuid
              type: string
            rules:
              $ref: '#/components/schemas/StrategyRules'
            strategyContent:
              type:
                - string
                - 'null'
            universe:
              items:
                type: string
              type: array
          required:
            - constraints
            - createdAt
            - createdBy
            - description
            - executionStatus
            - id
            - initialCapital
            - isActive
            - name
            - portfolioId
            - rules
            - strategyContent
            - universe
          type: object
        valuationError:
          description: >-
            Null when valuation is known and positive. An unpriced or
            nonpositive book returns no current metrics or holdings weights,
            with a reason.
          properties:
            code:
              enum:
                - PORTFOLIO_VALUE_NOT_POSITIVE
                - PORTFOLIO_VALUE_UNKNOWN
              type: string
            message:
              type: string
          required:
            - code
            - message
          type:
            - object
            - 'null'
      required:
        - current
        - factorScorecard
        - holdings
        - pendingFirstExecution
        - performanceHistory
        - scorecard
        - strategy
        - valuationError
      type: object
    Error:
      properties:
        available:
          description: Optional available amount or value
          type: string
        billing_action:
          $ref: '#/components/schemas/BillingAction'
        code:
          description: Machine-readable error code
          type: string
        currentVersion:
          description: Current server-side version, when relevant
          type: number
        details:
          description: Optional structured error details
        error:
          description: Error type or code
          type: string
        expectedVersion:
          description: Client-provided expected version, when relevant
          type: number
        message:
          description: Human-readable error message
          type: string
        requested:
          description: Optional requested amount or value
          type: string
        usage:
          description: Optional usage metadata for limit errors
      required:
        - error
      type: object
    PortfolioFactorScorecard:
      properties:
        asOf:
          type: string
        benchmarkRelative:
          $ref: '#/components/schemas/PortfolioBenchmarkRelativeFactorScorecard'
        coverage:
          $ref: '#/components/schemas/PortfolioFactorCoverage'
        currency:
          type: string
        diagnostics:
          $ref: '#/components/schemas/PortfolioFactorDiagnostics'
        exposures:
          items:
            $ref: '#/components/schemas/PortfolioFactorExposure'
          type: array
        holdings:
          description: >-
            Per-holding risk contributions, ranked by absolute total risk
            contribution share and capped at 100 rows.
          items:
            $ref: '#/components/schemas/PortfolioFactorHolding'
          type: array
        holdingsTotal:
          description: Modeled symbol count before the persisted holding cap.
          type: integer
        holdingsTruncated:
          description: True when holdings carries only the top-ranked slice.
          type: boolean
        modelVersion:
          type: string
        portfolioId:
          type: string
        residualDiagnostics:
          $ref: '#/components/schemas/PortfolioResidualDiagnostics'
        risk:
          $ref: '#/components/schemas/PortfolioFactorRisk'
        schemaVersion:
          type: number
        view:
          $ref: '#/components/schemas/PortfolioFactorRiskView'
      required:
        - schemaVersion
        - modelVersion
        - asOf
        - portfolioId
        - currency
        - coverage
        - exposures
        - risk
        - diagnostics
      type:
        - object
        - 'null'
    PaperTradingHolding:
      properties:
        companyName:
          type:
            - string
            - 'null'
        cost_basis:
          type: string
        currency:
          type: string
        fx_rate_to_usd:
          type: number
        pnl:
          type: string
        pnl_pct:
          type:
            - number
            - 'null'
        price:
          type: string
        price_updated_at:
          type:
            - string
            - 'null'
        quantity:
          type: string
        symbol:
          type: string
        value:
          type: string
        weight:
          type: number
      required:
        - companyName
        - cost_basis
        - currency
        - fx_rate_to_usd
        - pnl
        - pnl_pct
        - price
        - price_updated_at
        - quantity
        - symbol
        - value
        - weight
      type: object
    AgentScorecard:
      properties:
        avgTurnover30d:
          type:
            - number
            - 'null'
        benchmarkSymbol:
          type:
            - string
            - 'null'
        calculatedAt:
          type: string
        calculationSource:
          type: string
        cumulativeReturn:
          type:
            - number
            - 'null'
        cumulativeReturnReason:
          type:
            - string
            - 'null'
        dailyReturn:
          type:
            - number
            - 'null'
        dailyReturnReason:
          type:
            - string
            - 'null'
        hasSufficientData:
          type: boolean
        insight:
          type: string
        maxDrawdown:
          type:
            - number
            - 'null'
        monthlyAlpha:
          type:
            - number
            - 'null'
        overallAlpha:
          type:
            - number
            - 'null'
        sharpe30d:
          type:
            - number
            - 'null'
        sharpeOverall:
          type:
            - number
            - 'null'
        sortino30d:
          type:
            - number
            - 'null'
        volatility:
          type:
            - number
            - 'null'
        weeklyAlpha:
          type:
            - number
            - 'null'
        winRate30d:
          type:
            - number
            - 'null'
      required:
        - cumulativeReturn
        - cumulativeReturnReason
        - dailyReturn
        - dailyReturnReason
        - volatility
        - avgTurnover30d
        - winRate30d
        - weeklyAlpha
        - monthlyAlpha
        - overallAlpha
        - sharpe30d
        - sharpeOverall
        - sortino30d
        - maxDrawdown
        - hasSufficientData
        - insight
        - benchmarkSymbol
        - calculatedAt
        - calculationSource
      type:
        - object
        - 'null'
    StrategyConstraintsResponse:
      properties:
        allowed_exchanges:
          items:
            type: string
          type:
            - array
            - 'null'
        blocked_symbols:
          items:
            type: string
          type:
            - array
            - 'null'
        is_strict:
          type: boolean
        max_drawdown_pct:
          type: number
        max_position_pct:
          type: number
        max_positions:
          type: integer
        min_cash_pct:
          type: number
        min_position_pct:
          type: number
        stop_loss_pct:
          type:
            - number
            - 'null'
        stop_on_drawdown:
          type: boolean
      type:
        - object
        - 'null'
    StrategyRules:
      description: >-
        On creation, omitted rebalance_frequency and rebalance_time_utc default
        to daily and 21:00 UTC. The create response returns the effective rules.
      properties:
        lookback_days:
          type: integer
        model_key:
          enum:
            - luna
            - sol
            - sol61
            - astra
            - sonnet55
            - opus55
            - terra61
            - haiku55
            - fusion_deep
            - fusion_quick
            - fusion_light
          type: string
        rebalance_frequency:
          enum:
            - daily
            - weekly
            - monthly
          type: string
        rebalance_time_utc:
          type: string
      type:
        - object
        - 'null'
    BillingAction:
      description: Action that resolves a billing-related rejection
      properties:
        href:
          type: string
        kind:
          enum:
            - upgrade
            - payment_method
            - spending_cap
            - billing
          type: string
        label:
          type: string
      required:
        - href
        - label
        - kind
      type: object
    PortfolioBenchmarkRelativeFactorScorecard:
      properties:
        benchmarkName:
          type: string
        benchmarkSource:
          type: string
        benchmarkSymbol:
          type: string
        coverage:
          $ref: '#/components/schemas/PortfolioFactorCoverage'
        diagnostics:
          $ref: '#/components/schemas/PortfolioFactorDiagnostics'
        exposures:
          items:
            $ref: '#/components/schemas/PortfolioFactorExposure'
          type: array
        risk:
          $ref: '#/components/schemas/PortfolioFactorRisk'
      required:
        - benchmarkSymbol
        - coverage
        - risk
        - exposures
        - diagnostics
      type: object
    PortfolioFactorCoverage:
      properties:
        cashWeight:
          type: string
        grossWeight:
          type:
            - string
            - 'null'
        longWeight:
          type:
            - string
            - 'null'
        modeledWeight:
          type: string
        netWeight:
          type:
            - string
            - 'null'
        positionsModeled:
          type: number
        positionsTotal:
          type: number
        shortWeight:
          type:
            - string
            - 'null'
      type: object
    PortfolioFactorDiagnostics:
      properties:
        cashExcluded:
          type: number
        factorCount:
          type: number
        symbolCount:
          type: number
        warnings:
          items:
            type: string
          type: array
      type: object
    PortfolioFactorExposure:
      properties:
        activeRiskContribution:
          description: Decimal string
          type: string
        exposure:
          description: Decimal string
          type: string
        factorId:
          type: string
        group:
          enum:
            - market
            - country
            - region
            - gics_sector
            - gics_industry_group
            - gics_industry
            - sector
            - style
            - currency
          type: string
        marginalRiskContribution:
          description: Decimal string
          type: string
        name:
          type: string
        proxyScope:
          type:
            - string
            - 'null'
        riskContribution:
          description: Decimal string
          type: string
        varianceContribution:
          description: Decimal string
          type: string
      required:
        - factorId
        - name
        - group
        - proxyScope
        - exposure
      type: object
    PortfolioFactorHolding:
      properties:
        annualizationFactor:
          description: Decimal string
          type: string
        marginalContribution:
          description: Decimal string
          type: string
        specificVarianceShare:
          description: Decimal string
          type: string
        specificVolatility:
          description: Decimal string
          type: string
        symbol:
          type: string
        totalRiskContributionShare:
          description: Decimal string
          type: string
        volatilityConvention:
          description: daily or annualized
          type: string
        weight:
          description: Decimal string
          type: string
      required:
        - symbol
      type: object
    PortfolioResidualDiagnostics:
      properties:
        commonComponentRatioThreshold:
          description: Decimal string
          type: string
        effectiveNumberOfBets:
          description: Decimal string
          type: string
        firstComponentVarianceShare:
          description: Decimal string
          type: string
        meanPairwiseResidualCorrelation:
          description: Decimal string
          type: string
        medianPairwiseResidualCorrelation:
          description: Decimal string
          type: string
        minimumWindowSessions:
          type: integer
        modelSpecificVariance:
          description: Decimal string
          type: string
        realizedResidualVariance:
          description: Decimal string
          type: string
        requestedWindowSessions:
          type: integer
        residualCommonComponentDetected:
          type: boolean
        residualVarianceRatio:
          description: Decimal string
          type: string
        sufficientHistory:
          type: boolean
        symbolsMissing:
          items:
            type: string
          type: array
        symbolsMissingCount:
          type: integer
        symbolsUsed:
          items:
            type: string
          type: array
        symbolsUsedCount:
          type: integer
        warnings:
          items:
            type: string
          type: array
        weightMissing:
          description: Decimal string
          type: string
        weightUsed:
          description: Decimal string
          type: string
        windowSessions:
          type: integer
      type: object
    PortfolioFactorRisk:
      properties:
        activeRiskComplete:
          description: >-
            Benchmark-relative risk only. False when the active risk figures
            leave out part of the active book; diagnostics.warnings names what
            is left out.
          type: boolean
        activeSpecificShare:
          type: string
        activeVariance:
          type: string
        activeVolatility:
          type: string
        annualizationFactor:
          description: >-
            Return periods per year as a decimal string. When
            volatilityConvention is daily, annualize volatility by multiplying
            it by sqrt(annualizationFactor).
          type: string
        factorShare:
          type: string
        factorVariance:
          type: string
        specificRiskContribution:
          type: string
        specificShare:
          type: string
        specificVariance:
          type: string
        totalVariance:
          type: string
        totalVolatility:
          type: string
        volatilityConvention:
          description: >-
            Convention for variance and volatility levels: daily means per daily
            return period; annualized means per year.
          enum:
            - daily
            - annualized
          type: string
      type: object
    PortfolioFactorRiskView:
      properties:
        absoluteRiskRows:
          items:
            $ref: '#/components/schemas/PortfolioFactorRiskViewRow'
          type: array
        benchmarkRelativeRiskRows:
          items:
            $ref: '#/components/schemas/PortfolioFactorRiskViewRow'
          type: array
        coverageSummary:
          $ref: '#/components/schemas/PortfolioFactorRiskCoverageSummary'
        holdingRows:
          items:
            $ref: '#/components/schemas/PortfolioFactorHoldingViewRow'
          type: array
        residualSummary:
          $ref: '#/components/schemas/PortfolioResidualSummary'
      type: object
    PortfolioFactorRiskViewRow:
      properties:
        contribution:
          type: string
        contributionShare:
          type: string
        group:
          type: string
        id:
          type: string
        kind:
          enum:
            - factor
            - specific
            - returns_fallback
            - cash
            - unmodeled
          type: string
        name:
          type: string
      required:
        - id
        - name
        - kind
        - group
      type: object
    PortfolioFactorRiskCoverageSummary:
      properties:
        cashWeight:
          type: string
        lookthroughModeledWeight:
          type: string
        lookthroughUnmodeledWeight:
          type: string
        modeledWeight:
          type: string
        returnsFallbackWeight:
          type: string
        unmodeledWeight:
          type: string
      type: object
    PortfolioFactorHoldingViewRow:
      properties:
        contributionShare:
          description: Decimal string
          type: string
        id:
          type: string
        name:
          type: string
        specificVarianceShare:
          description: Decimal string
          type: string
        symbol:
          type: string
        weight:
          description: Decimal string
          type: string
      required:
        - id
        - symbol
      type: object
    PortfolioResidualSummary:
      properties:
        commonComponentDetected:
          type: boolean
        effectiveNumberOfBets:
          description: Decimal string
          type: string
        firstComponentVarianceShare:
          description: Decimal string
          type: string
        meanPairwiseResidualCorrelation:
          description: Decimal string
          type: string
        residualVarianceRatio:
          description: Decimal string
          type: string
        sufficientHistory:
          type: boolean
        symbolsUsed:
          type: integer
        weightMissing:
          description: Decimal string
          type: string
        weightUsed:
          description: Decimal string
          type: string
        windowSessions:
          type: integer
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: Itoflow access token issued for the Itoflow API.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.