From integrate-jupiter
Guides migration of existing Jupiter swap integrations from Metis (v1) or Ultra to Swap API v2. Covers base URL updates, parameter renames like userPublicKey to taker, and transitions from quote+swap-instructions to /build or /order endpoints.
npx claudepluginhub jup-ag/agent-skills --plugin integrate-jupiterThis skill uses the workspace's default tool permissions.
Migrate existing Jupiter swap integrations from **Metis (v1)** or **Ultra** to the unified **Swap API v2**.
Guides integration of Jupiter APIs on Solana (Swap, Lend, Perps, Trigger, Recurring, Tokens, Price, Portfolio, Prediction Markets, Send, Studio, Lock, Routing) for endpoint selection, flows, error handling, and production hardening.
Integrate Uniswap token swaps into React/Next.js frontends, Node.js backends/scripts, or smart contracts via Trading API or Universal Router.
Integrates PancakeSwap token swaps into React/Next.js frontends, Node/Python backends, and smart contracts via Routing API, Smart Router SDK, or direct calls.
Share bugs, ideas, or general feedback.
Migrate existing Jupiter swap integrations from Metis (v1) or Ultra to the unified Swap API v2.
Target Base URL: https://api.jup.ag/swap/v2
Auth: x-api-key from portal.jup.ag (unchanged)
Use when:
api.jup.ag/swap/v1/quote, api.jup.ag/swap/v1/swap-instructions, or ultra-api.jup.ag./build or /order endpoint.Do not use when:
integrating-jupiter skill instead).Triggers: ultra, metis, ultra swap, ultra api, ultra-api.jup.ag, /ultra/v1, swap/v1, swap-instructions, migrate swap, ultra migration, metis migration, swap v1 to v2, v1 to v2, upgrade jupiter, swap-instructions deprecated, deprecated swap, old jupiter api, swap upgrade, update swap api, quote endpoint deprecated, swap stopped working, swap broken, ExactOut removed, swapMode removed, userPublicKey, parameter rename, addressLookupTable, response format changed
| Source | Target | Effort | When to choose |
|---|---|---|---|
Ultra → /order | GET /swap/v2/order + POST /swap/v2/execute | Minimal (URL change only) | Default for Ultra users |
Metis → /build | GET /swap/v2/build | Moderate (parameter + response mapping) | Need transaction composability |
Metis → /order | GET /swap/v2/order + POST /swap/v2/execute | Moderate (flow change) | Don't need tx modification, want managed execution |
Each path has a dedicated example with before/after code, parameter mappings, and response changes:
/order — Minimal migration, base URL change only/build — Consolidates 2 calls into 1, parameter and response mapping/order — Flow change to managed execution with multi-router competitionultra-api.jup.ag, /ultra/v1/, /swap/v1/quote, /swap/v1/swap-instructions — all should be replaceduserPublicKey → taker (for /build path)swapMode removal: V2 only supports ExactIn. If using ExactOut, redesign the flow — this mode is no longer availableslippageBps default: /build defaults to 50 bps if omitted. For /order, verify the default if your integration relies on a specific valueinputAmountResult/outputAmountResult for the /execute response (the canonical v2 field names)/build, switch from addressLookupTableAddresses (array) to addressesByLookupTableAddress (object) — remove RPC ALT resolution codebps field (canonical) instead of percentRemove this skill once Jupiter decommissions the v1 (/swap/v1) endpoints and the Ultra (ultra-api.jup.ag) domain. At that point all integrations will already be on v2.
Review by: 2026-09-01 — check if v1/Ultra endpoints have been decommissioned.