Migration guide from Jupiter Metis (v1) or Ultra to Swap API v2. Use when migrating existing Jupiter swap integrations, updating base URLs, or transitioning from quote+swap-instructions to the unified build endpoint.
64
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Medium
Suggest reviewing before use
The canonical home for this skill is jupiter-swap-migration in jup-ag/agent-skills
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 developers.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.
Migration is split into three profile-targeted guides (the old single migration page no longer exists):
a2211e3
Canonical home
since Sep 14, 2026
Also appears in
since Sep 8, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.