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

# List Portfolios

> Use this endpoint to retrieve the details of all Portfolios in your Ledger. If the filters in the request do not meet the endpoint's criteria, an empty response will be returned.



## OpenAPI

````yaml en/openapi/v3-current/ledger.yaml get /v1/organizations/{organization_id}/ledgers/{ledger_id}/portfolios
openapi: 3.1.0
info:
  title: Midaz Ledger API
  description: >-
    Complete API reference for Midaz Ledger services including organization
    management, ledger operations, assets, segments, portfolios, accounts,
    account types, transactions, operations, balances, operation routes,
    transaction routes, and metadata indexes.
  version: 3.7.8
servers:
  - url: https://ledger.sandbox.lerian.net
security: []
tags:
  - name: Organizations API
  - name: Ledgers API
  - name: Assets API
  - name: Segments API
  - name: Portfolios API
  - name: Account Types API
  - name: Accounts API
  - name: Balances API
  - name: Transactions API
  - name: Operations API
  - name: Operation Routes API
  - name: Transaction Routes API
  - name: Metadata Indexes API
  - name: Holders API
  - name: Instruments API
  - name: Billing Packages API
  - name: Packages API
  - name: Billing Calculation API
  - name: Estimation API
  - name: Encryption API
  - name: Protection API
  - name: Asset Rates API
paths:
  /v1/organizations/{organization_id}/ledgers/{ledger_id}/portfolios:
    get:
      tags:
        - Portfolios API
      summary: List Portfolios
      description: >-
        Use this endpoint to retrieve the details of all Portfolios in your
        Ledger. If the filters in the request do not meet the endpoint's
        criteria, an empty response will be returned.
      parameters:
        - $ref: '#/components/parameters/OrganizationId'
        - $ref: '#/components/parameters/LedgerId'
        - $ref: '#/components/parameters/ContentType'
        - $ref: '#/components/parameters/XRequestId'
        - $ref: '#/components/parameters/Authorization'
        - name: limit
          in: query
          description: 'The maximum number of items to include in the response. Max: 100'
          required: false
          example: 10
          schema:
            type: integer
            default: 10
            minimum: 1
            maximum: 100
        - name: start_date
          in: query
          description: >-
            The beginning of the period you want to retrieve. start_date and
            end_date are all-or-nothing: supplying only one returns 400. If both
            are omitted, a default window of the last 1 month is used.
          required: false
          example: '2021-01-01'
          schema:
            type: string
        - name: end_date
          in: query
          description: >-
            The end of the period you want to retrieve. start_date and end_date
            are all-or-nothing: supplying only one returns 400. If both are
            omitted, a default window of the last 1 month is used.
          required: false
          example: '2025-01-01'
          schema:
            type: string
        - name: sort_order
          in: query
          description: The order used to sort the results.
          required: false
          example: asc
          schema:
            type: string
            default: asc
            enum:
              - asc
              - desc
        - name: page
          in: query
          description: The number of the page that you want to retrieve.
          required: false
          example: 1
          schema:
            type: integer
            default: 1
            minimum: 1
        - name: metadata.key
          in: query
          description: >-
            Filter by metadata using dot-notation. Replace `key` with your
            metadata field name (e.g. `metadata.costCenter=BR_11101997`).
          required: false
          example: mymetadata
          schema:
            type: string
        - name: entity_id
          in: query
          description: >-
            Filter the portfolios by the unique identifier of the entity
            responsible for them.
          required: false
          example: '12345'
          schema:
            type: string
        - name: status
          in: query
          description: Filter the portfolios by their status code.
          required: false
          example: ACTIVE
          schema:
            type: string
      responses:
        '200':
          description: >-
            Indicates that the request was successful and the response contains
            the expected data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/CreatePortfolioResponse'
                  page:
                    type: integer
                    description: The number of pages returned.
                  limit:
                    type: integer
                    description: The maximum number of items included in the response.
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0065:
                  $ref: '#/components/examples/Error0065'
                Error0079:
                  $ref: '#/components/examples/Error0079'
                Error0080:
                  $ref: '#/components/examples/Error0080'
                Error0081:
                  $ref: '#/components/examples/Error0081'
                Error0083:
                  $ref: '#/components/examples/Error0083'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0041:
                  $ref: '#/components/examples/Error0041'
                Error0042:
                  $ref: '#/components/examples/Error0042'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0043:
                  $ref: '#/components/examples/Error0043'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0037:
                  $ref: '#/components/examples/Error0037'
                Error0038:
                  $ref: '#/components/examples/Error0038'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0046:
                  $ref: '#/components/examples/Error0046'
components:
  parameters:
    OrganizationId:
      name: organization_id
      in: path
      description: The unique identifier of the Organization associated with the Ledger.
      required: true
      example: 019c96a0-0a98-7287-9a31-786e0809c769
      schema:
        type: string
        format: uuid
    LedgerId:
      name: ledger_id
      in: path
      description: The unique identifier of the associated Ledger.
      required: true
      example: 019c96a0-0ac0-7de9-9f53-9cf842a2ee5a
      schema:
        type: string
        format: uuid
    ContentType:
      name: Content-Type
      in: header
      description: >-
        The type of media of the resource. Recommended value is
        `application/json`.
      required: false
      example: application/json
      schema:
        type: string
    XRequestId:
      name: X-Request-Id
      in: header
      description: A unique identifier used to trace and track each request.
      required: false
      example: 019c96a0-0a98-7287-9a31-786e0809c769
      schema:
        type: string
        format: uuid
    Authorization:
      name: Authorization
      in: header
      required: false
      schema:
        type: string
      description: >
        Bearer JWT token for authentication.

        Required when `PLUGIN_AUTH_ENABLED=true` (enforced in multi-tenant
        deployments).

        Optional in default OSS single-tenant mode.

        Format: `Bearer <token>`
  schemas:
    CreatePortfolioResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the portfolio.
          format: uuid
        organizationId:
          type: string
          format: uuid
          description: The unique identifier of the Organization.
        ledgerId:
          type: string
          description: The unique identifier of the Ledger.
          format: uuid
        entityId:
          type: string
          description: The unique identifier of the user responsible for the portfolio.
        name:
          type: string
          description: The name of the Portfolio.
          maxLength: 256
        status:
          $ref: '#/components/schemas/StatusOrganization'
        metadata:
          $ref: '#/components/schemas/Metadata'
        createdAt:
          type: string
          format: date-time
          description: Timestamp of creation (UTC).
        updatedAt:
          type: string
          format: date-time
          description: Timestamp of last update (UTC).
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp of soft deletion, if applicable (UTC).
    ErrorFormat:
      type: object
      description: The response message error.
      required:
        - code
        - title
        - message
      properties:
        code:
          type: string
          description: A unique, stable identifier for the error.
        title:
          type: string
          description: A brief summary of the issue.
        message:
          type: string
          description: Detailed guidance for resolving the error.
        entityType:
          type: string
          description: >-
            The type of entity the error relates to (e.g. organization, ledger,
            account, transaction). Optional.
        fields:
          type: object
          additionalProperties: true
          description: Additional information about the fields that caused the error.
    StatusOrganization:
      type: object
      description: An object containing information about the status.
      properties:
        code:
          type: string
          maxLength: 100
          description: The name of the status.
        description:
          type:
            - string
            - 'null'
          maxLength: 256
          description: The description of the status.
    Metadata:
      type: object
      additionalProperties:
        oneOf:
          - type: string
            maxLength: 2000
          - type: number
          - type: boolean
      description: >-
        An object containing key-value pairs to add as metadata, where the field
        `name` is the key and the field `value` is the value. For example, to
        add a Cost Center, use `'costCenter': 'BR_11101997'`.


        **Constraints:** keys must be at most 100 characters; string values at
        most 2000 characters. Nested objects are not allowed (values must be
        string, number, or boolean), the structure may not exceed a maximum
        depth of 10, and a maximum of 100 keys is permitted.
  examples:
    Error0065:
      value:
        code: '0065'
        title: Invalid Path Parameter
        message: >-
          The provided path parameter {{parameter_name}} is not in the expected
          format. Please ensure the parameter adheres to the required format and
          try again.
      summary: Invalid Path Parameter
    Error0079:
      value:
        code: '0079'
        title: Date Range Exceeds Limit Error
        message: >-
          The range between 'initialDate' and 'finalDate' exceeds the permitted
          limit of {{limit}} months. Please adjust the dates and try again.
      summary: Date Range Exceeds Limit Error
    Error0080:
      value:
        code: '0080'
        title: Pagination Limit Exceeded
        message: >-
          The pagination limit exceeds the maximum allowed of {{pageLimit}}
          items per page. Please verify the limit and try again.
      summary: Pagination Limit Exceeded
    Error0081:
      value:
        code: '0081'
        title: Invalid Sort Order
        message: >-
          The 'sort_order' field must be 'asc' or 'desc'. Please provide a valid
          sort order and try again.
      summary: Invalid Sort Order
    Error0083:
      value:
        code: '0083'
        title: Invalid Date Range Error
        message: >-
          Both 'initialDate' and 'finalDate' fields are required and must be in
          the 'yyyy-mm-dd' format. Please provide valid dates and try again.
      summary: Invalid Date Range Error
    Error0041:
      summary: Token Missing
      value:
        code: '0041'
        title: Token Missing
        message: >-
          A valid token must be provided in the request header. Please include a
          token and try again.
    Error0042:
      summary: Invalid Token
      value:
        code: '0042'
        title: Invalid Token
        message: >-
          The provided token is expired, invalid or malformed. Please provide a
          valid token and try again.
    Error0043:
      summary: Insufficient Privileges
      value:
        code: '0043'
        title: Insufficient Privileges
        message: >-
          You do not have the necessary permissions to perform this action.
          Please contact your administrator if you believe this is an error.
    Error0037:
      summary: Ledger ID Not Found
      value:
        code: '0037'
        title: Ledger ID Not Found
        message: >-
          The provided ledger ID does not exist in our records. Please verify
          the ledger ID and try again.
    Error0038:
      summary: Organization ID Not Found
      value:
        code: '0038'
        title: Organization ID Not Found
        message: >-
          The provided organization ID does not exist in our records. Please
          verify the organization ID and try again.
    Error0046:
      summary: Internal Server Error
      value:
        code: '0046'
        title: Internal Server Error
        message: >-
          The server encountered an unexpected error. Please try again later or
          contact support.

````