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

# Update Risk Profile

> Update the user's risk profile preset and/or overrides.



## OpenAPI

````yaml /api/openapi.json patch /api/graph/v1/user/risk-profile
openapi: 3.1.0
info:
  title: Sequency Graph API
  description: >

    # Sequency Graph-Native Trading API


    Graph-native API for trading intelligence, built on FalkorDB.


    ## Features


    - **Screener**: Filter stocks using graph-native queries with relationship
    expansion

    - **Stock Detail**: Complete stock context with all relationships

    - **Confluence Scoring**: Setup quality assessment with weighted components

    - **Strategy Matching**: Find matching options strategies via graph
    traversal

    - **Market Context**: Current market-wide context for trading decisions


    ## Data Sources


    All data is sourced from the FalkorDB knowledge graph, populated by:

    - Pattern detector (Go) - Technical indicators, patterns

    - Graph sync service - Levels, volume profiles, news, day classification
  version: 1.0.0
servers: []
security: []
paths:
  /api/graph/v1/user/risk-profile:
    patch:
      tags:
        - User
      summary: Update Risk Profile
      description: Update the user's risk profile preset and/or overrides.
      operationId: update_risk_profile_api_graph_v1_user_risk_profile_patch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RiskProfileUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskProfileResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    RiskProfileUpdate:
      properties:
        preset:
          anyOf:
            - type: string
              enum:
                - conservative
                - moderate
                - aggressive
            - type: 'null'
          title: Preset
        overrides:
          anyOf:
            - $ref: '#/components/schemas/RiskOverrides'
            - type: 'null'
        risk_budget:
          anyOf:
            - $ref: '#/components/schemas/RiskBudget'
            - type: 'null'
        mode_allowlist:
          anyOf:
            - $ref: '#/components/schemas/ModeAllowlist'
            - type: 'null'
        round_trip:
          anyOf:
            - $ref: '#/components/schemas/RoundTripConfig'
            - type: 'null'
        onboarding_stage:
          anyOf:
            - type: string
              enum:
                - day_0
                - learner
                - operator
            - type: 'null'
          title: Onboarding Stage
        cooling_off:
          anyOf:
            - $ref: '#/components/schemas/CoolingOffConfig'
            - type: 'null'
        funded:
          anyOf:
            - $ref: '#/components/schemas/FundedPolicyConfig'
            - type: 'null'
        supervised_confirm_window_seconds:
          anyOf:
            - type: integer
              minimum: 10
            - type: 'null'
          title: Supervised Confirm Window Seconds
      additionalProperties: false
      type: object
      title: RiskProfileUpdate
    RiskProfileResponse:
      properties:
        preset:
          type: string
          title: Preset
        resolved:
          $ref: '#/components/schemas/ResolvedRiskProfile'
        overrides:
          additionalProperties: true
          type: object
          title: Overrides
        hard_caps:
          additionalProperties: true
          type: object
          title: Hard Caps
        risk_budget:
          $ref: '#/components/schemas/RiskBudget'
        mode_allowlist:
          $ref: '#/components/schemas/ModeAllowlist'
        round_trip:
          $ref: '#/components/schemas/RoundTripConfig'
        onboarding_stage:
          type: string
          title: Onboarding Stage
          default: operator
        cooling_off:
          $ref: '#/components/schemas/CoolingOffConfig'
        funded:
          additionalProperties: true
          type: object
          title: Funded
        supervised_confirm_window_seconds:
          type: integer
          title: Supervised Confirm Window Seconds
          default: 30
      type: object
      required:
        - preset
        - resolved
        - overrides
        - hard_caps
        - risk_budget
        - mode_allowlist
        - round_trip
      title: RiskProfileResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    RiskOverrides:
      properties:
        per_trade_risk_pct:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Per Trade Risk Pct
        max_portfolio_heat_pct:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Max Portfolio Heat Pct
        max_positions:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Max Positions
        daily_loss_limit_pct:
          anyOf:
            - type: number
              maximum: 0
            - type: 'null'
          title: Daily Loss Limit Pct
        weekly_loss_limit_pct:
          anyOf:
            - type: number
              maximum: 0
            - type: 'null'
          title: Weekly Loss Limit Pct
        min_pop_gate:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Min Pop Gate
        min_edge_ratio:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Min Edge Ratio
        options_dte_floor_swing:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Options Dte Floor Swing
        consecutive_loss_pause:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Consecutive Loss Pause
        max_position_size_multiplier:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Max Position Size Multiplier
      additionalProperties: false
      type: object
      title: RiskOverrides
    RiskBudget:
      properties:
        daily_dollars_at_risk_cap:
          type: number
          minimum: 0
          title: Daily Dollars At Risk Cap
          description: Max $ at risk across all open+pending cards today
          default: 5000
        max_percent_equity_at_risk:
          type: number
          minimum: 0
          title: Max Percent Equity At Risk
          description: Max % of equity at risk
          default: 5
        daily_loss_cap:
          type: number
          minimum: 0
          title: Daily Loss Cap
          description: Absolute daily loss floor — blocks all new activity
          default: 2000
      additionalProperties: false
      type: object
      title: RiskBudget
      description: Dollar-denominated risk caps for Trade Manager blocking rules.
    ModeAllowlist:
      properties:
        autonomous:
          type: boolean
          title: Autonomous
          default: true
        supervised:
          type: boolean
          title: Supervised
          default: true
        monitor:
          type: boolean
          title: Monitor
          default: true
        manual:
          type: boolean
          title: Manual
          default: true
      additionalProperties: false
      type: object
      title: ModeAllowlist
      description: Which Trade Manager submission modes the user is allowed to use.
    RoundTripConfig:
      properties:
        global_cap_per_session:
          type: integer
          minimum: 1
          title: Global Cap Per Session
          description: Max round-trips across all strategies per session
          default: 10
      additionalProperties: false
      type: object
      title: RoundTripConfig
      description: Global round-trip limits per trading session.
    CoolingOffConfig:
      properties:
        default_cool_off_minutes:
          type: integer
          minimum: 0
          title: Default Cool Off Minutes
          description: Minutes to wait after a losing close before auto-respawn
          default: 15
        consecutive_loss_threshold:
          type: integer
          minimum: 1
          title: Consecutive Loss Threshold
          description: Consecutive losses before strategy lockout
          default: 2
        consecutive_loss_lockout_minutes:
          type: integer
          minimum: 0
          title: Consecutive Loss Lockout Minutes
          description: Minutes of lockout after consecutive losses
          default: 30
      additionalProperties: false
      type: object
      title: CoolingOffConfig
      description: Anti-tilt guard configuration (spec §6.5).
    FundedPolicyConfig:
      properties:
        max_per_trade_notional_usd:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Max Per Trade Notional Usd
        max_daily_loss_usd:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Max Daily Loss Usd
        max_daily_loss_pct:
          anyOf:
            - type: number
              minimum: 0
            - type: 'null'
          title: Max Daily Loss Pct
        max_concurrent_positions:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Max Concurrent Positions
        max_daily_trades:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Max Daily Trades
        cooldown_after_loss_min:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Cooldown After Loss Min
        no_overnight:
          anyOf:
            - type: boolean
            - type: 'null'
          title: No Overnight
        kill_switch_engaged:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Kill Switch Engaged
        enforce_fail_closed:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enforce Fail Closed
        flatten_time_et:
          anyOf:
            - type: string
              pattern: ^([01]\d|2[0-3]):[0-5]\d$
            - type: 'null'
          title: Flatten Time Et
      additionalProperties: false
      type: object
      title: FundedPolicyConfig
      description: >-
        Write-validator for the funded live-trading policy block (§3).


        Field names mirror funded_policy.FundedPolicy (Python reader) and

        funded_policy.go EXACTLY — both order paths read this same block
        directly.

        All fields optional (partial PATCH). ``ge=0`` honors an explicit 0 (a
        real

        "pause" value) while rejecting negatives up front, so the fail-closed
        readers

        never see a value they would silently drop. Rejecting a type mismatch
        here

        (Pydantic 422) keeps a malformed write from ever reaching the readers,
        which

        raise + block live trading on bad data. ``enforce_fail_closed`` is
        tri-state

        (None = use the account-mode default). No clamp/ceiling — user values
        win.
    ResolvedRiskProfile:
      properties:
        per_trade_risk_pct:
          type: number
          title: Per Trade Risk Pct
        max_portfolio_heat_pct:
          type: number
          title: Max Portfolio Heat Pct
        max_positions:
          type: integer
          title: Max Positions
        daily_loss_limit_pct:
          type: number
          title: Daily Loss Limit Pct
        weekly_loss_limit_pct:
          type: number
          title: Weekly Loss Limit Pct
        min_pop_gate:
          type: number
          title: Min Pop Gate
        min_edge_ratio:
          type: number
          title: Min Edge Ratio
        options_dte_floor_swing:
          type: integer
          title: Options Dte Floor Swing
        consecutive_loss_pause:
          type: integer
          title: Consecutive Loss Pause
        max_position_size_multiplier:
          type: number
          title: Max Position Size Multiplier
      type: object
      required:
        - per_trade_risk_pct
        - max_portfolio_heat_pct
        - max_positions
        - daily_loss_limit_pct
        - weekly_loss_limit_pct
        - min_pop_gate
        - min_edge_ratio
        - options_dte_floor_swing
        - consecutive_loss_pause
        - max_position_size_multiplier
      title: ResolvedRiskProfile
    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

````