Skip to main content
GET
/
v2
/
portfolios
curl --request GET \
  --url 'https://api.glider.fi/v2/portfolios?limit=50' \
  --header 'x-api-key: gldr_sk_your_api_key'
{
  "success": true,
  "data": {
    "portfolios": [
      {
        "portfolioId": "pf_01JWZEE2MF30KVRMRX53N88VA4",
        "userAccountId": "eip155:0:0xabcdef0000000000000000000000000000000001",
        "strategyId": "01JWZEE2MF30KVRMRX53N88VA4",
        "strategyName": "Conservative Yield",
        "strategyDescription": "Multi-chain balanced allocation strategy",
        "vaultAccountIds": [
          "eip155:8453:0xe3a2d1f49aee887e42655b56371d4d76bbf58058"
        ],
        "schedule": {
          "status": "active",
          "frequency": "daily",
          "intervalMs": 86400000,
          "nextDueAt": "2026-04-16T12:00:00.000Z",
          "lastRebalanceAt": "2026-04-15T12:00:00.000Z"
        },
        "createdAt": "2026-04-10T08:30:00.000Z"
      }
    ]
  },
  "nextCursor": "eyJjIjoiMjAyNi0wNC0xMFQwODozMDowMC4wMDBaIiwiaSI6InBmXzAxSldaRUUyTUYzMEtWUk1SWDUzTjg4VkE0In0"
}
Returns all portfolios (mirror strategy instances) owned by the authenticated tenant. Each entry is a DB-only projection — identity, strategy, per-chain vaults, and rebalance schedule state. Real-time balances and USD values are served by GET /v2/portfolios/{portfolioId}/positions; keep them separate so list polling stays cheap.
  • Auth: x-api-key header (required)
  • Scope: portfolios:read
All on-chain identifiers on this surface are CAIP-shaped. End-user wallets use the chain-agnostic CAIP-10 form eip155:0:<address> (per CAIP-10 §Abstract Account Addresses — the same EOA works on every EIP-155 chain). Vaults are chain-bound CAIP-10s (eip155:<chainId>:<address>) because each Kernel smart account only exists at that (chain, address) tuple. Raw addresses and numeric chain IDs never appear on the wire.
Owner accounts are assumed to be EVM EOAs. Today every B2B-enrolled portfolio owner is an eip155 externally-owned account — the enrollment route only accepts EVM addresses. The userAccountId field is always emitted in the eip155:0:<address> form. When enrollment opens to non-EVM chains or smart-contract accounts this assumption has to be revisited: the owner namespace will need to be derived from the address itself, and the wire field may need to become chain-bound for account kinds that lack a chain-agnostic form (Solana, ERC-4337 entries, etc.).
Results are cursor-paginated in createdAt descending order (tiebreak by portfolioId). Pass the nextCursor value from the previous response as the cursor query parameter to fetch the next page. nextCursor is null when there are no more results. Archived portfolios are excluded.
userAccountId
string
Filter to a single end-user’s portfolios under this tenant. CAIP-10 account identifier. For EVM EOAs, use the chain-agnostic form eip155:0:0x<address>. Mixed-case input is accepted; the address part is normalized to lowercase server-side.
strategyId
string
Filter to portfolios mirroring a specific strategy (ULID returned by POST /v2/strategies).
status
string
Filter by rebalance schedule status. One of active, paused. When set, portfolios without a schedule row are excluded.
limit
integer
default:"50"
Max portfolios per page. Min 1, max 200.
cursor
string
Opaque pagination cursor from a previous response.
Common error responses:
  • 400 when a filter value is malformed (invalid CAIP-10, unknown status enum, bad cursor) or limit is out of range
  • 401 when x-api-key header is missing or the key is invalid
  • 403 when the API key lacks the portfolios:read scope
  • 500 on unexpected server errors
curl --request GET \
  --url 'https://api.glider.fi/v2/portfolios?limit=50' \
  --header 'x-api-key: gldr_sk_your_api_key'
{
  "success": true,
  "data": {
    "portfolios": [
      {
        "portfolioId": "pf_01JWZEE2MF30KVRMRX53N88VA4",
        "userAccountId": "eip155:0:0xabcdef0000000000000000000000000000000001",
        "strategyId": "01JWZEE2MF30KVRMRX53N88VA4",
        "strategyName": "Conservative Yield",
        "strategyDescription": "Multi-chain balanced allocation strategy",
        "vaultAccountIds": [
          "eip155:8453:0xe3a2d1f49aee887e42655b56371d4d76bbf58058"
        ],
        "schedule": {
          "status": "active",
          "frequency": "daily",
          "intervalMs": 86400000,
          "nextDueAt": "2026-04-16T12:00:00.000Z",
          "lastRebalanceAt": "2026-04-15T12:00:00.000Z"
        },
        "createdAt": "2026-04-10T08:30:00.000Z"
      }
    ]
  },
  "nextCursor": "eyJjIjoiMjAyNi0wNC0xMFQwODozMDowMC4wMDBaIiwiaSI6InBmXzAxSldaRUUyTUYzMEtWUk1SWDUzTjg4VkE0In0"
}