---
title: "Get external-wallet position totals"
method: GET
path: "/v1/earn/external-wallet/positions/summary"
tags: ["Earn"]
---

# Get external-wallet position totals

`GET /v1/earn/external-wallet/positions/summary`

Returns a complete live aggregate across the active partner project's end-user wallets, grouped by strategy and token. The service pages every stored claim before hydration. A total is omitted when any contributing live value is unavailable, never reported as zero or partial.

## Headers

- `x-project-id` string — Selects the active project for this request. Required for session/dashboard callers. Ignored when authenticating with an API key, whose scope is fixed to the key's project.

## Response `200`

Complete external-wallet position aggregate

- object — Standard success response envelope.
  - `data` object, required
    - `summary` object, required
      - `walletCount` integer, required
      - `positionCount` integer, required
      - `unavailablePositionCount` integer, required
      - `totalsByStrategy` object[], required
        - `provider` string, required
        - `providerReference` string, required
        - `label` string, required
        - `walletCount` integer, required
        - `positionCount` integer, required
        - `totalsByToken` object[], required
          - `tokenMint` string, required
          - `walletCount` integer, required
          - `positionCount` integer, required
          - `unavailablePositionCount` integer, required
          - `tokenValue` string — Exact live total. Absent when any contributing position is unavailable, so partial money is never presented as complete.
      - `totalsByToken` object[], required
        - `tokenMint` string, required
        - `walletCount` integer, required
        - `positionCount` integer, required
        - `unavailablePositionCount` integer, required
        - `tokenValue` string — Exact live total. Absent when any contributing position is unavailable, so partial money is never presented as complete.
  - `meta` object, required — Response metadata.
    - `requestId` string, required — Request identifier for tracing.
    - `timestamp` string, date-time, required — ISO 8601 timestamp.

## Other responses

- `400` — Error
- `401` — Error
- `403` — Error
- `429` — Error
- `500` — Error
- `503` — Error

## Changes

- **2026-08-31** `aedc48d5b49e` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/solana/apis/solana-developer-platform-api/changes/v1/earn/external-wallet/positions/summary/get.md)

---

[API](https://skmtc.dev/solana/apis/solana-developer-platform-api.md) · [All operations](https://skmtc.dev/solana/apis/solana-developer-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/solana/solana-developer-platform-api/revisions/4b7c413df72b/schema)
