Skip to content

docs: [portfolio] add hidden Portfolio v2 API docs - #949

Merged
0xYankee merged 4 commits into
mainfrom
feat/portfolio-v2-docs
Aug 31, 2026
Merged

docs: [portfolio] add hidden Portfolio v2 API docs#949
0xYankee merged 4 commits into
mainfrom
feat/portfolio-v2-docs

Conversation

@0xYankee

Copy link
Copy Markdown
Collaborator

Summary

Add documentation for the Portfolio API V2 positions endpoints so integrators (starting with Solana, parent SPOT-210) can migrate off v1. v2 is a positions-only, multi-chain API with a redesigned per-fetcher response envelope.

All pages are hidden (hidden: true, not in docs.json nav, excluded from llms.txt) and are shared by direct URL with whitelisted organisations only. Per YY, the docs deliberately do not include any access/request path, so there is no discoverable way in.

Schema is source-verified against jup-ag/portfolio @ a5e347f (@jup-ag/portfolio-core types + packages/routes-portfolio-v2).

Changes

  • openapi-spec/portfolio/v2/portfolio.yaml (new) — models GET /positions/{address} (and the ?address= query form), the SSE variant GET /positions/{address}/sse, and the Fluid compatibility variant GET /fluid/positions/{address}. Full response schema: per-fetcher envelope, 5 element types, 3 asset types, the Amount fixed/floating union, per-fetcher error branch, and the 503 body.
  • portfolio/v2/index.mdx (new) — hidden guide: base URL + auth (whitelisted, no request path), params, response model, V2Amount decode, error handling (200 partial vs 503), SSE, Fluid, a v1 → v2 migration section, and a complete TypeScript example.
  • api-reference/portfolio/v2/{get-positions,stream-positions,get-fluid-positions}.mdx (new) — hidden openapi: wrappers.
  • .claude/rules/product-learning.md — new Jupiter Portfolio API section with sources and v2 facts.

v1 pages, spec, and nav are untouched. v2 has no /platforms or /staked-jup equivalent; those stay on v1.

Linear Issues

Checklist

  • node generate-llms-from-docs.js run — no v2 entries appear (hidden confirmed), llms.txt unchanged
  • mint broken-links passes
  • mint openapi-check — OpenAPI definition valid; mint validate — build validation passed
  • All new pages have title, description, llmsDescription and hidden: true
  • docs.json navigation unchanged (pages intentionally not in nav)
  • No redirects needed (new paths only)
  • Changelog entry — not applicable (hidden/whitelisted API, not a public announcement)
  • .claude/rules/ updated with learnings

Notes for reviewer

  • Base URL api.jup.ag/portfolio/v2 confirmed by YY; the /portfolio/v2 prefix is applied by the gateway (not in the source repo).
  • /fluid/positions/{address} is a Solana-only legacy-compatibility serializer restricted to three staking fetchers; it is documented lightly with a loose response schema by design.

Add source-verified, whitelisted-only Portfolio v2 positions docs so
integrators can migrate off v1. All pages are hidden (hidden: true, not in
docs.json nav, excluded from llms.txt) and shared by direct URL. Per YY, no
access/request path is mentioned anywhere.

- openapi-spec/portfolio/v2/portfolio.yaml: /positions (+ query form), SSE, and
  Fluid compatibility variant, built from jup-ag/portfolio @ a5e347f
- portfolio/v2/index.mdx: guide with response model, V2Amount, SSE, fluid, and
  a v1 to v2 migration section
- api-reference/portfolio/v2/{get-positions,stream-positions,get-fluid-positions}.mdx
- product-learning.md: new Jupiter Portfolio API section

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mintlify

mintlify Bot commented Aug 28, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Jupiter 🟢 Ready View Preview Aug 28, 2026, 7:28 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SSE streaming is no longer available. Remove the /positions/{address}/sse
path from the spec, the streaming section and card from the guide, and delete
the stream-positions API reference page. Record in product-learning that the
route exists in source but must not be documented until live again.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Fluid compatibility variant is a narrow single-integration shim, not a
general-purpose endpoint. Remove /fluid/positions/{address} from the spec,
the guide (section, table row, card), and delete the API reference page so the
v2 docs focus on /positions. Record the reasoning in product-learning.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@0xYankee
0xYankee merged commit c2beabc into main Aug 31, 2026
4 checks passed
@0xYankee
0xYankee deleted the feat/portfolio-v2-docs branch August 31, 2026 04:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant