---
title: "List portfolios"
method: GET
path: "/admin/portfolios"
tags: ["Admin"]
---

# List portfolios

`GET /admin/portfolios`

## Request

- Base URL: `https://api.testnet.rise.trade`
- URL: `https://api.testnet.rise.trade/admin/portfolios`
- Auth: none required
- TypeScript: <https://skmtc.dev/rise/apis/risex-rest-api/docs/admin/portfolios/get.ts> (a function with typed inputs; its response is checked against the schema)

List all portfolios from in-memory state with filtering and sorting

## Query parameters

- `page` integer
- `limit` integer
- `sort_by` 'PORTFOLIO_SORT_BY_UNSPECIFIED' | 'PORTFOLIO_SORT_BY_USDC_BALANCE' | 'PORTFOLIO_SORT_BY_REALIZED_PNL' | 'PORTFOLIO_SORT_BY_POSITION_COUNT'
- `sort_direction` 'SORT_DIRECTION_UNSPECIFIED' | 'SORT_DIRECTION_ASC' | 'SORT_DIRECTION_DESC'
- `is_market_maker` boolean
- `with_position_only` boolean
- `market_id` string, int64
- `address_query` string

## Response `200`

A successful response.

- ApiListPortfoliosResponse
  - `portfolios` ApiPortfolioItem[]
    - `address` string
    - `usdc_balance` string
    - `realized_pnl` string
    - `positions` ApiPositionItem[]
      - `market_id` string, int64
      - `size` string
      - `avg_entry_price` string
      - `quote_balance` string
      - `margin_mode` integer
      - `leverage` string
      - `isolated_usdc_balance` string
    - `is_market_maker` boolean
    - `position_count` integer
  - `paging` ApiPaging
    - `page` string, int64
    - `per_page` string, int64
    - `total` string, int64
    - `last_page` string, int64

## Other responses

- `default`: An unexpected error response.

## Changes

- **2026-11-03** `98eabcd6a6ad`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rise/apis/risex-rest-api/changes/admin/portfolios/get.md)

---

[API](https://skmtc.dev/rise/apis/risex-rest-api.md) - [All operations](https://skmtc.dev/rise/apis/risex-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rise/apis/risex-rest-api/revisions/98eabcd6a6ad?raw)
