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

# List visible portfolios

> Returns the portfolios owned by the authenticated user together with all public portfolios. For portfolios the caller does not own, the `user_id` field is null.




## OpenAPI

````yaml /api-reference/openapi-v2.json get /portfolios
openapi: 3.0.0
info:
  title: Noonum API v2
  version: 2.0.0
  contact:
    name: Noonum Support
    email: hello@noonum.com
  description: >
    Create and manage investment strategies, portfolios, and backtests. The API
    covers the full strategy lifecycle, including creation and editing, the
    archive and revive flow, version submission and run state, result companies,
    evidence, factsheets, exposures, and taxonomy.
servers:
  - url: https://api.noonum.ai/v2
security:
  - bearerAuth: []
tags:
  - name: UserStrategies
    description: Create, read, update, and manage your own investment strategies.
  - name: Helper
    description: >-
      Shared utilities for company lookup and search, objective tooling, and a
      health check.
  - name: Portfolios
    description: Create, read, update, and delete portfolios.
  - name: Backtest
    description: Run a standalone backtest on a portfolio of companies.
paths:
  /portfolios:
    get:
      tags:
        - Portfolios
      summary: List visible portfolios
      description: >
        Returns the portfolios owned by the authenticated user together with all
        public portfolios. For portfolios the caller does not own, the `user_id`
        field is null.
      operationId: app.api.v2.portfolios.list_
      responses:
        '200':
          description: The list of portfolios.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                    user_id:
                      type: string
                      nullable: true
                      description: Owner identifier, null when the caller is not the owner.
                    name:
                      type: string
                    public:
                      type: boolean
                    tags:
                      type: array
                      items:
                        type: string
                      nullable: true
                    source:
                      type: string
                      nullable: true
                    metadata:
                      type: object
                      nullable: true
                    created_at:
                      description: >-
                        Timestamp of when the portfolio was created, as an RFC
                        7231 HTTP date.
                      type: string
                      example: Sat, 05 Apr 2025 17:43:37 GMT
                    updated_at:
                      description: >-
                        Timestamp of when the portfolio was last updated, as an
                        RFC 7231 HTTP date.
                      type: string
                      example: Mon, 07 Apr 2025 18:39:41 GMT
                  required:
                    - id
                    - user_id
                    - name
                    - public
                    - created_at
                    - updated_at
        '401':
          description: Authentication is missing or invalid.
          content:
            application/json:
              schema:
                type: object
                description: A standard error response.
                properties:
                  error:
                    description: A human-readable description of the error.
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: |
        Enter 'Bearer' followed by a space and then your JWT or API Key.
        Example: `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`
        or `Bearer YOUR_API_KEY_HERE`

````