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

# Portfolio Signal

> Portfolio-aware strategy signal with correlation analysis and hedge recommendations.



## OpenAPI

````yaml POST /v1/signals/portfolio
openapi: 3.1.0
info:
  title: Rekko AI — Prediction Market Intelligence
  description: >-
    The brain for prediction market trading. Deep AI research, Bayesian causal
    decomposition, portfolio-aware strategy signals, cross-platform arbitrage,
    and execution guidance — all in one API. Covers Kalshi, Polymarket,
    Robinhood, and Coinbase. Clean flat JSON designed for developers and
    autonomous trading agents.
  contact:
    name: Rekko AI
    url: https://rekko.ai/
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://api.rekko.ai
security: []
tags:
  - name: Markets
    description: Prediction market listings, history, resolution, and execution guidance
  - name: Insights
    description: AI-powered research insights with causal decomposition
  - name: Strategy
    description: >-
      Actionable trading signals with Kelly-derived position sizing and causal
      decomposition
  - name: Portfolio
    description: Portfolio-aware strategy, correlation analysis, and hedge recommendations
  - name: Arbitrage
    description: Cross-platform arbitrage detection (Kalshi vs Polymarket vs Robinhood)
  - name: Analytics
    description: Calibration metrics, sentiment, and performance tracking
  - name: Streaming
    description: Real-time SSE event stream and webhooks
  - name: Consensus
    description: Agent trade aggregation and crowd probability
paths:
  /v1/signals/portfolio:
    post:
      tags:
        - Portfolio
      summary: Portfolio-aware strategy signal
      description: >-
        Portfolio-aware strategy signal with correlation analysis and hedge
        recommendations.
      operationId: /v1/signals/portfolio
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PortfolioStrategyRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortfolioSignal'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    PortfolioStrategyRequest:
      properties:
        market_query:
          type: string
          title: Market Query
          description: Market question to analyze
        portfolio:
          items:
            $ref: '#/components/schemas/PortfolioPosition'
          type: array
          title: Portfolio
          description: Current portfolio positions
        bankroll_usd:
          type: number
          minimum: 0
          title: Bankroll Usd
          description: Total bankroll in USD
          default: 1000
        max_position_pct:
          type: number
          maximum: 0.5
          minimum: 0.01
          title: Max Position Pct
          description: Max single position as fraction of bankroll
          default: 0.1
      type: object
      required:
        - market_query
      title: PortfolioStrategyRequest
      description: Request body for portfolio-aware strategy signal.
      example:
        bankroll_usd: 10000
        market_query: Will the Fed cut rates at the March 2026 meeting?
        max_position_pct: 0.05
        portfolio:
          - entry_price: 0.55
            market_id: KXCPI-26MAR
            platform: kalshi
            side: 'yes'
            size_usd: 250
    PortfolioSignal:
      properties:
        platform:
          type: string
          title: Platform
          description: kalshi, polymarket, robinhood, or coinbase
        market_id:
          type: string
          title: Market Id
          description: Market identifier
        title:
          type: string
          title: Title
          description: Market question
        recommendation:
          type: string
          title: Recommendation
          description: BUY_YES, BUY_NO, NO_TRADE
        target_price:
          type: number
          maximum: 1
          minimum: 0
          title: Target Price
          description: Suggested entry price
        edge:
          type: number
          title: Edge
          description: estimated_prob - market_price
        confidence:
          type: number
          maximum: 1
          minimum: 0
          title: Confidence
          description: Confidence in the signal
        risk_rating:
          type: string
          title: Risk Rating
          description: low, medium, high
        base_size_pct:
          type: number
          maximum: 1
          minimum: 0
          title: Base Size Pct
          description: Kelly-derived size before portfolio adjustment
        adjusted_size_pct:
          type: number
          maximum: 1
          minimum: 0
          title: Adjusted Size Pct
          description: Size after portfolio correlation adjustment
        adjusted_size_usd:
          type: number
          minimum: 0
          title: Adjusted Size Usd
          description: Dollar amount based on adjusted_size_pct * bankroll
        portfolio_impact:
          $ref: '#/components/schemas/PortfolioImpact'
          description: How this trade affects portfolio risk
        hedge_recommendations:
          items:
            $ref: '#/components/schemas/HedgeRecommendation'
          type: array
          title: Hedge Recommendations
          description: Suggested hedges to reduce portfolio risk
        generated_at:
          type: string
          format: date-time
          title: Generated At
          description: When this signal was produced
        expires_at:
          type: string
          format: date-time
          title: Expires At
          description: Signal staleness window
      type: object
      required:
        - platform
        - market_id
        - title
        - recommendation
        - target_price
        - edge
        - confidence
        - risk_rating
        - base_size_pct
        - adjusted_size_pct
        - adjusted_size_usd
        - portfolio_impact
        - expires_at
      title: PortfolioSignal
      description: Strategy signal with portfolio context and adjusted sizing.
      example:
        adjusted_size_pct: 0.025
        adjusted_size_usd: 250
        base_size_pct: 0.035
        confidence: 0.82
        edge: 0.09
        expires_at: '2026-03-22T14:30:00Z'
        generated_at: '2026-03-21T14:30:00Z'
        hedge_recommendations:
          - market_id: KXUNEMP-4.5
            platform: kalshi
            rationale: Negatively correlated — hedges against strong economy scenario
            side: 'no'
            suggested_size_usd: 100
            title: Will unemployment exceed 4.5%?
        market_id: KXFED-26MAR19
        platform: kalshi
        portfolio_impact:
          concentration_delta: 0.15
          correlated_with: KXCPI-26MAR
          max_correlation: 0.73
          net_exposure_change: 250
          portfolio_risk_level: medium
        recommendation: BUY_YES
        risk_rating: medium
        target_price: 0.62
        title: Will the Fed cut rates at the March 2026 meeting?
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PortfolioPosition:
      properties:
        platform:
          type: string
          title: Platform
          description: kalshi, polymarket, robinhood, or coinbase
        market_id:
          type: string
          title: Market Id
          description: Market identifier
        side:
          type: string
          title: Side
          description: '''yes'' or ''no'''
        size_usd:
          type: number
          minimum: 0
          title: Size Usd
          description: Position size in USD
        entry_price:
          type: number
          maximum: 1
          minimum: 0
          title: Entry Price
          description: Entry price
          default: 0
      type: object
      required:
        - platform
        - market_id
        - side
        - size_usd
      title: PortfolioPosition
      description: A position in the agent's current portfolio.
      example:
        entry_price: 0.55
        market_id: KXCPI-26MAR
        platform: kalshi
        side: 'yes'
        size_usd: 250
    PortfolioImpact:
      properties:
        max_correlation:
          type: number
          maximum: 1
          minimum: -1
          title: Max Correlation
          description: Highest correlation between new market and any existing position
        correlated_with:
          type: string
          title: Correlated With
          description: Most correlated existing position
          default: ''
        concentration_delta:
          type: number
          title: Concentration Delta
          description: Change in portfolio concentration (positive = more concentrated)
        net_exposure_change:
          type: number
          title: Net Exposure Change
          description: Net directional exposure change in USD
        portfolio_risk_level:
          type: string
          title: Portfolio Risk Level
          description: '''low'', ''medium'', ''high'''
          default: low
      type: object
      required:
        - max_correlation
        - concentration_delta
        - net_exposure_change
      title: PortfolioImpact
      description: How a new trade would affect the portfolio.
      example:
        concentration_delta: 0.15
        correlated_with: KXCPI-26MAR
        max_correlation: 0.73
        net_exposure_change: 350
        portfolio_risk_level: medium
    HedgeRecommendation:
      properties:
        market_id:
          type: string
          title: Market Id
          description: Market to trade for hedging
        platform:
          type: string
          title: Platform
          description: Platform
        title:
          type: string
          title: Title
          description: Market title
          default: ''
        side:
          type: string
          title: Side
          description: '''yes'' or ''no'' — the hedge side'
        suggested_size_usd:
          type: number
          minimum: 0
          title: Suggested Size Usd
          description: Suggested hedge size
        rationale:
          type: string
          title: Rationale
          description: Why this hedge reduces risk
      type: object
      required:
        - market_id
        - platform
        - side
        - suggested_size_usd
        - rationale
      title: HedgeRecommendation
      description: A suggested hedge trade to reduce portfolio risk.
      example:
        market_id: KXUNEMP-4.5
        platform: kalshi
        rationale: >-
          Negatively correlated with your Fed rate cut position — if the economy
          stays strong (no cut), unemployment stays low (NO wins)
        side: 'no'
        suggested_size_usd: 100
        title: Will unemployment exceed 4.5%?
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError

````