> ## 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.json get /portfolios
openapi: 3.0.0
info:
  title: Noonum API
  version: 1.0.0
  contact:
    name: Noonum Support
    email: hello@noonum.com
  description: >
    Create, read, update, and delete your own investment strategies, browse
    public premade strategies, run semantic search, and call supporting utility
    endpoints.
servers:
  - url: https://api.noonum.ai/v1
security:
  - bearerAuth: []
tags:
  - name: UserStrategies
    description: Create, read, update, and delete your own investment strategies.
  - name: PremadeStrategies
    description: Read public premade strategies and find the ones closest to an objective.
  - name: Helper
    description: >-
      Supporting endpoints for company lookup, objective editing, and health
      checks.
  - name: Benchmarks
    description: Read benchmark data.
  - name: Portfolios
    description: Create, read, update, and delete your portfolios.
  - name: Backtest
    description: Backtest a portfolio without saving it.
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.v1.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:
                    type: string
                    description: A human-readable description of the error.
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`

````