# Jupiter Swap Migration

Migration guide from Jupiter Metis (v1) or Ultra to Swap API v2.

- Repository: https://github.com/internet-court/internet-court-skill (7050 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add internet-court/internet-court-skill --skill jupiter-swap-migration -g -a claude-code -y`
Codex: `npx skills add internet-court/internet-court-skill --skill jupiter-swap-migration -g -a codex -y`
Cursor: `npx skills add internet-court/internet-court-skill --skill jupiter-swap-migration -g -a cursor -y`
Gemini CLI: `npx skills add internet-court/internet-court-skill --skill jupiter-swap-migration -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add internet-court/internet-court-skill`

## Description

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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Jupiter Swap Migration Guide

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](https://developers.jup.ag/) (unchanged)

## Use/Do Not Use

Use when:
- Migrating code that calls `api.jup.ag/swap/v1/quote`, `api.jup.ag/swap/v1/swap-instructions`, or `ultra-api.jup.ag`.
- Updating Jupiter swap endpoints to v2.
- Switching from Metis two-step flow to the unified `/build` or `/order` endpoint.

Do not use when:
- Building a new Jupiter integration from scratch (use `integrating-jupiter` skill instead).
- Working with non-swap Jupiter APIs (Lend, Trigger, Recurring, etc.).

**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`

---

## Migration Paths

| 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 |

## Path Details

Each path has a dedicated example with before/after code, parameter mappings, and response changes:

The rest: https://github.com/internet-court/internet-court-skill/blob/HEAD/vendored/jupiter/jupiter-swap-migration/SKILL.md
