Skip to content

Portfolio API /positions returns 200 with elements=[] + fetcherReports=[] for multiple wallets #828

Description

@amitkarpe

Summary

GET /portfolio/v1/positions/{address} is returning 200 OK with an empty payload shape for multiple wallets:

  • elements: []
  • fetcherReports: []
  • tokenInfo: {}

This happens consistently even for the wallet used in docs examples, which suggests a backend/indexing issue (or behavior drift) rather than a wallet-specific empty state.

Environment

  • Date: 2026-02-26
  • Region observed from response headers: x-amz-cf-pop: SIN2-P4
  • Auth: valid x-api-key (without key request returns 401 Unauthorized as expected)
  • Endpoint: https://api.jup.ag/portfolio/v1/positions/{address}

Reproduction

  1. Call:
    • GET https://api.jup.ag/portfolio/v1/positions/Hh2WB6rQu1vAFyRa25opVyYXgCYXrMXfeTTNxw6s68pv
    • GET https://api.jup.ag/portfolio/v1/positions/8NppHjP2E1FL6x29r3XrLA8SYfK5VQsjhxTFJxnvXocc
    • GET https://api.jup.ag/portfolio/v1/positions/jdocuPgEAjMfihABsPgKEvYtsmMzjUHeq9LX4Hvs7f3 (docs sample wallet)
  2. Include header x-api-key: <valid key>
  3. Observe response shape.

Observed response shape (all 3)

{
  "owner": "...",
  "date": 1772092xxxxxx,
  "duration": 199-250,
  "elements": [],
  "fetcherReports": [],
  "tokenInfo": {}
}

Additional checks

  • /portfolio/v1/platforms returns 200 with 7 platforms.
  • /portfolio/v1/staked-jup/{address} returns 200 (zero staked for tested wallets).
  • Calls without API key correctly return:
{"code":401,"message":"Unauthorized"}
  • Repeated requests (3 retries with backoff) return the same empty shape.

Why this seems suspicious

  • Empty elements can be valid, but empty fetcherReports and empty tokenInfo for multiple wallets + docs sample wallet suggests fetchers may not be running or payload assembly changed.
  • This also blocks diagnostics because API gives no per-fetcher status.

Request

Could you confirm whether this behavior is expected right now, or if Portfolio indexing/fetchers are degraded for this endpoint? If expected, please document the new semantics for fetcherReports and empty payload handling in the Portfolio docs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions