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

# Portfolio performance

> Get daily portfolio performance

```bash theme={null}
curl "https://api.bendbasis.com/v1/portfolios/PORTFOLIO_ID/performance?from=2026-09-01&to=2026-09-13" \
  -H "Authorization: Bearer $BENDBASIS_API_KEY"
```


## OpenAPI

````yaml GET /v1/portfolios/{portfolio_id}/performance
openapi: 3.1.0
info:
  title: bendbasis API
  description: Funding market and arbitrage data from bendbasis.
  version: 1.0.0-preview
servers:
  - url: https://api.bendbasis.com
security: []
tags:
  - name: Portfolio
    description: Read-only access to your portfolios and positions.
paths:
  /v1/portfolios/{portfolio_id}/performance:
    get:
      tags:
        - Portfolio
      summary: Portfolio performance
      operationId: getPortfolioPerformance
      parameters:
        - name: portfolio_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: from
          in: query
          required: false
          description: Inclusive UTC start date. Defaults to 6 days before to.
          schema:
            type: string
            format: date
        - name: to
          in: query
          required: false
          description: Inclusive UTC end date. Defaults to today.
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Portfolio performance
          headers:
            X-API-Version:
              schema:
                type: string
              example: v1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortfolioPerformanceResponse'
              example:
                data:
                  portfolio_id: 2f69612d-3b97-4820-babc-6c482a70fb68
                  period:
                    from: '2026-09-07'
                    to: '2026-09-13'
                  totals:
                    funding_pnl: 42.5
                    fees_paid: 8.4
                    spread_pnl: 12.1
                    net_pnl: 46.2
                  daily:
                    - date: '2026-09-12'
                      funding_pnl: 20.5
                      fees_paid: 8.4
                      spread_pnl: 7.1
                      net_pnl: 19.2
                    - date: '2026-09-13'
                      funding_pnl: 22
                      fees_paid: 0
                      spread_pnl: 5
                      net_pnl: 27
        '400':
          $ref: '#/components/responses/ValidationFailed'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
        - BearerAuth: []
components:
  schemas:
    PortfolioPerformanceResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: object
          additionalProperties: false
          required:
            - portfolio_id
            - period
            - totals
            - daily
          properties:
            portfolio_id:
              type: string
              format: uuid
            period:
              $ref: '#/components/schemas/DatePeriod'
            totals:
              $ref: '#/components/schemas/PerformanceValues'
            daily:
              type: array
              items:
                $ref: '#/components/schemas/DailyPerformance'
    DatePeriod:
      type: object
      additionalProperties: false
      required:
        - from
        - to
      properties:
        from:
          type: string
          format: date
        to:
          type: string
          format: date
    PerformanceValues:
      type: object
      additionalProperties: false
      required:
        - funding_pnl
        - fees_paid
        - spread_pnl
        - net_pnl
      properties:
        funding_pnl:
          type: number
          description: Funding PnL in USD.
        fees_paid:
          type: number
          description: Fees paid in USD.
        spread_pnl:
          type: number
          description: Spread PnL in USD.
        net_pnl:
          type: number
          description: Funding plus spread PnL, minus fees, in USD.
    DailyPerformance:
      type: object
      additionalProperties: false
      required:
        - date
        - funding_pnl
        - fees_paid
        - spread_pnl
        - net_pnl
      properties:
        date:
          type: string
          format: date
        funding_pnl:
          type: number
          description: Funding PnL in USD.
        fees_paid:
          type: number
          description: Fees paid in USD.
        spread_pnl:
          type: number
          description: Spread PnL in USD.
        net_pnl:
          type: number
          description: Funding plus spread PnL, minus fees, in USD.
    ValidationError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - VALIDATION_ERROR
        message:
          type: string
      example:
        code: VALIDATION_ERROR
        message: Invalid parameter
    UnauthorizedError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - UNAUTHORIZED
        message:
          type: string
      example:
        code: UNAUTHORIZED
        message: Valid API key required
    ForbiddenError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - FORBIDDEN
        message:
          type: string
      example:
        code: FORBIDDEN
        message: API key does not grant the required scope
    NotFoundError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          enum:
            - NOT_FOUND
        message:
          type: string
      example:
        code: NOT_FOUND
        message: Funding market not found
  responses:
    ValidationFailed:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    Unauthorized:
      description: Missing or invalid API key.
      headers:
        WWW-Authenticate:
          schema:
            type: string
          example: Bearer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedError'
    Forbidden:
      description: The API key does not grant the required scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenError'
    ResourceNotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFoundError'
    RateLimited:
      description: Rate limit exceeded.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: Personal API key created at bendbasis.com/account/api-keys.

````