> ## 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.

# Set portfolio benchmark comparison basis

> Declares what this portfolio is measured against for benchmark-relative factor risk: another portfolio on the platform, a provider index, or both. Both body keys are required; null clears that side of the comparison.

Operation ID: put__portfolios_id_benchmark.



## OpenAPI

````yaml /openapi/itoflow-public.openapi.json put /portfolios/{id}/benchmark
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:
  /portfolios/{id}/benchmark:
    put:
      tags:
        - Portfolios
      summary: Set portfolio benchmark comparison basis
      description: >-
        Declares what this portfolio is measured against for benchmark-relative
        factor risk: another portfolio on the platform, a provider index, or
        both. Both body keys are required; null clears that side of the
        comparison.


        Operation ID: put__portfolios_id_benchmark.
      operationId: put__portfolios_id_benchmark
      parameters:
        - description: Resource UUID
          in: path
          name: id
          required: true
          schema:
            description: Resource UUID
            example: 550e8400-e29b-41d4-a716-446655440000
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PortfolioBenchmarkRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortfolioBenchmarkResponse'
          description: Comparison basis updated
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid comparison basis
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Ownership required
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Portfolio not found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Server error
      security:
        - bearerAuth: []
components:
  schemas:
    PortfolioBenchmarkRequest:
      properties:
        benchmark_index_id:
          description: >-
            Provider index id in TICKER.EXCHANGE form (for example GSPC.INDX).
            Null clears the index comparison.
          example: GSPC.INDX
          maxLength: 64
          minLength: 1
          pattern: ^\S+\.[A-Za-z0-9]+$
          type:
            - string
            - 'null'
        peer_portfolio_id:
          description: >-
            Another portfolio on the platform to measure this portfolio against.
            Null clears the peer comparison.
          format: uuid
          type:
            - string
            - 'null'
      required:
        - peer_portfolio_id
        - benchmark_index_id
      type: object
    PortfolioBenchmarkResponse:
      properties:
        benchmark_index_id:
          type:
            - string
            - 'null'
        message:
          type: string
        peer_portfolio_id:
          format: uuid
          type:
            - string
            - 'null'
        portfolio_id:
          format: uuid
          type: string
      required:
        - portfolio_id
        - peer_portfolio_id
        - benchmark_index_id
        - message
      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
    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
  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.