From 7df8822e633d48457a13f9d1348825dd20e61d61 Mon Sep 17 00:00:00 2001 From: YY <0xyankee@gmail.com> Date: Tue, 7 Jul 2026 20:05:09 +0800 Subject: [PATCH 1/2] chore: [changelog] redirect docs changelog to dev platform blog The changelog now lives on the Developer Platform blog at developers.jup.ag/blog?tag=Changelog (one post per month). The docs Changelog tab links out, changelog/index.mdx is removed (URL covered by a Cloudflare domain-level redirect), and the contributor workflow points new entries at the developer-platform repo. Fixes DEV-718 Co-Authored-By: Claude Fable 5 --- .claude/rules/decisions.md | 13 + AGENTS.md | 30 +- changelog/index.mdx | 584 ----------------------------------- docs.json | 7 +- llms.txt | 6 - swap/v1/add-fees-to-swap.mdx | 2 +- 6 files changed, 27 insertions(+), 615 deletions(-) delete mode 100644 changelog/index.mdx diff --git a/.claude/rules/decisions.md b/.claude/rules/decisions.md index 3a11031a..8cb2bf10 100644 --- a/.claude/rules/decisions.md +++ b/.claude/rules/decisions.md @@ -216,6 +216,7 @@ Track all redirects added to `vercel.json` here for visibility: | `/docs/studio/*` | `/studio/*` | 2026-03-28 | Product folders moved to root (DEVREL-133) | | `/docs/trigger/*` | `/trigger/*` | 2026-03-28 | Product folders moved to root (DEVREL-133) | | `/docs/ultra/*` | `/ultra/*` | 2026-03-28 | Product folders moved to root (DEVREL-133) | +| `developers.jup.ag/docs/changelog` | `https://developers.jup.ag/blog?tag=Changelog` | 2026-07-07 | Changelog consolidated on dev platform blog, Cloudflare domain-level rule (DEV-718) | ### [2026-04-06] Hidden pages for private integrator docs **Status:** implemented @@ -268,3 +269,15 @@ Track all redirects added to `vercel.json` here for visibility: - Reorganise sidebar: Swap (overview), Meta-Aggregator (order-and-execute + API refs), Router (build + submit + API refs), Advanced, Routing Integration, Guides, Migration **Rationale:** Two clear paths reduce decision fatigue. Absorbing fees and routing eliminates page-hopping for core concepts. Profile-targeted migration pages let developers find their specific upgrade path without reading irrelevant content. **Migration notes:** Redirects added for `swap/fees` → `swap/order-and-execute`, `swap/routing` → `swap`, `swap/build/other-instructions` → `swap/build/common-instructions`. + +### [2026-07-07] Changelog consolidated on the Developer Platform blog +**Status:** implemented +**Scope:** navigation | redirect +**Files affected:** `docs.json`, `changelog/index.mdx` (deleted), `AGENTS.md`/`CLAUDE.md`, `llms.txt` +**Linear issue:** DEV-595 (sub-issues DEV-717 blog backfill, DEV-718 docs redirect) + +**Context:** Two changelogs existed: the docs Changelog tab (`changelog/index.mdx`) and the Developer Platform blog's Changelog section (`/blog?tag=Changelog`). The blog has far more visibility and sits alongside the platform, and dual-maintenance guaranteed drift. +**Decision:** The blog is the single changelog home. All docs changelog history (Jan 2025 – Jun 2026) was backfilled as one blog post per month (`changelog-YYYY-MM` slugs) in the `developer-platform` repo. The docs Changelog tab became an external `href` to `https://developers.jup.ag/blog?tag=Changelog`, `changelog/index.mdx` was deleted, and `developers.jup.ag/docs/changelog` hard-redirects to the blog via a Cloudflare domain-level rule (same mechanism as DEVREL-133). +**Rationale:** One source of truth, more visibility, and a standardised monthly format (breaking changes first, per-product sections, "WTM" explanations, modelled on the solana_devs changelog and Linear's changelog method). The format is codified in `developer-platform` `web/content/blog/_changelog-template.mdx` and `web/content/blog/README.md`. +**Alternatives considered:** (1) Keep the docs page as a frozen archive with the tab linking out — rejected, two URLs for one concept. (2) Cross-post to both — rejected, guaranteed drift. +**Migration notes:** Existing `/updates → /changelog` redirects in `docs.json` kept (they chain into the Cloudflare rule). New changelog entries go to the `developer-platform` repo; see the Changelog section of `AGENTS.md`. diff --git a/AGENTS.md b/AGENTS.md index 5cee82e9..4e176e72 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -200,7 +200,16 @@ Do the work following the Writing and Reviewing guidelines below. After writing: #### Changelog -If your changes affect a public API or product, add a changelog entry to `updates/index.mdx`. +The changelog lives on the Developer Platform blog, NOT in this repo (decided 2026-07-07, DEV-595). +It is published as one blog post per month in the `developer-platform` repo at +`web/content/blog/changelog-YYYY-MM.mdx`, tagged `["Changelog"]`, rendered at +https://developers.jup.ag/blog?tag=Changelog. + +If your changes affect a public API or product, add (or update) the current month's changelog +post in `~/Documents/Projects/developer-platform/web/content/blog/`. Follow the format in that +repo's `web/content/blog/_changelog-template.mdx` and the rules in `web/content/blog/README.md` +(breaking changes first, one section per product area, bold one-line change + "WTM" explanation ++ full docs URLs). This is a separate repo, so it means a separate PR there. **When to add an entry:** - New API endpoints or products @@ -214,21 +223,6 @@ If your changes affect a public API or product, add a changelog entry to `update - Internal refactors with no user-facing change - Adding guides or blog posts (these are content, not changelog) -**Format:** Use the existing `` component, grouped by month (newest first): - -```mdx - -## Feature or Change Title - -Brief description of what changed and what developers need to do. - -- Key detail or migration step -- Link to relevant docs page - -``` - -Within a month, order entries by importance. Use clear headings that describe the change. - #### Capture learnings As you work, capture reusable knowledge in `.claude/rules/` so future sessions inherit it automatically. @@ -435,7 +429,7 @@ Always run/check before committing: 6. No placeholder text like "TODO" or "Lorem ipsum" left in content 7. OpenAPI spec changes in `openapi-spec/` are reflected in `api-reference/` pages 8. Images/assets added to `static/` are actually referenced somewhere -9. Changelog entry in `updates/index.mdx` if changes affect a public API or product +9. Changelog entry added to the current month's post in the `developer-platform` repo (`web/content/blog/changelog-YYYY-MM.mdx`) if changes affect a public API or product 10. `.claude/rules/` updated if you discovered product behaviour, made IA decisions, or established conventions ## Pull Requests @@ -483,7 +477,7 @@ gh pr diff - [ ] All pages have `title`, `description`, `llmsDescription` - [ ] `docs.json` navigation updated (if applicable) - [ ] Redirects added (if paths changed) -- [ ] Changelog entry added to `updates/index.mdx` (if API/product change) +- [ ] Changelog entry added to the current month's post in the `developer-platform` repo (if API/product change) - [ ] `.claude/rules/` updated with any learnings or decisions ``` diff --git a/changelog/index.mdx b/changelog/index.mdx deleted file mode 100644 index 266c7b39..00000000 --- a/changelog/index.mdx +++ /dev/null @@ -1,584 +0,0 @@ ---- -title: "Changelog" -description: "Latest announcements and breaking changes across Jupiter APIs." -llmsDescription: "Changelog for Jupiter developer APIs, SDKs, and docs. Tracks breaking changes, migration deadlines, new endpoint behaviour, product updates, and links to the relevant developer documentation." ---- - - - Follow our various announcements channels to stay up to date with recent updates and announcements. - - - - Discord - - - Telegram - - - - ---- - - - -## Swap API: JupiterZ Integrator Fees - -Swap API `/order` supports integrator fees on JupiterZ routes. Requests using `referralAccount` and `referralFee` can receive RFQ quotes when JupiterZ is the best eligible route. - -Integrator-sponsored gas is separate. Setting `payer` to a wallet different from `taker` still restricts routing to Metis. - -- [Order & Execute](/swap/order-and-execute) -- [Gasless Swaps](/swap/advanced/gasless) - ---- - -## Jupiter Lend: Borrow API - -The Jupiter Lend Borrow REST API is now documented. Read borrow vaults and user positions, and build collateralised borrow transactions over HTTP. - -- `GET https://api.jup.ag/lend/v1/borrow/vaults` and `GET /borrow/positions` for vault config and user positions -- `POST /borrow/operate` and `POST /borrow/operate-instructions` build a transaction that creates a position, deposits collateral, borrows, repays, and withdraws using signed `colAmount` and `debtAmount` -- [Borrow API guide](/lend/borrow/api) -- [Borrow API reference](/api-reference/lend/borrow/vaults) - ---- - -## Express Verification: Pay in SOL, USDC, or JUPUSD - -The Express Verification API now accepts SOL, USDC, and JUPUSD in addition to JUP. Non-JUP currencies are converted to 1000 JUP via Ultra. - -Pass `paymentCurrency` to `craft-txn` and `execute`. On non-JUP paths, `craft-txn` returns the swap input amounts and `execute` takes a `paymentAmount`. - -- [Express Verification API](/tokens/verification) - - - ---- - - - -## Trigger API: Upcoming Craft Deposit Request Change - - -**Action Required** - A breaking change is planned for Thursday, May 14, 2026 at 4:00 AM UTC / 12:00 PM SGT. Update Trigger V2 integrations that craft price-order deposits before enforcement. - - -`POST https://api.jup.ag/trigger/v2/deposit/craft` will require explicit order metadata when crafting deposits for price orders: - -* Add `orderType: "price"` to the craft-deposit request body -* Add `orderSubType: "single"`, `"oco"`, or `"otoco"` based on the order you will create -* Requests that omit `orderType`, or omit `orderSubType` for price orders, will return a `4xx` after enforcement - -No change is required on `POST /trigger/v2/orders/price`. The deposit craft response may include `inputTokenAccount`, and includes `outputTokenAccount` for `orderSubType: "otoco"`. You do not need to pass those token account fields into the create-order request. - -- [Create Trigger Order](/trigger/create-order) -- [Craft Deposit API Reference](/api-reference/trigger/deposit-craft) - - - ---- - - - -## Prediction Markets API: Breaking Changes - - -**Action Required** - Two breaking changes are rolling out in April 2026. Update your integration before the deadlines below. - - -### `markets[].metadata` removal - April 10, 2026 - -All fields previously nested under `markets[].metadata` are moving to the top level of the market object. This affects all `/events/*` and `/markets` GET endpoints. - -| Old path | New path | -| :--- | :--- | -| `markets[].metadata.title` | `markets[].title` | -| `markets[].metadata.isTeamMarket` | `markets[].isTeamMarket` | -| `markets[].metadata.rulesPrimary` | `markets[].rulesPrimary` | -| `markets[].metadata.rulesSecondary` | `markets[].rulesSecondary` | -| `markets[].metadata.openTime` | `markets[].openTime` | -| `markets[].metadata.closeTime` | `markets[].closeTime` | - -After April 10, `markets[].metadata` will no longer be included in responses. Update your code to read these fields from the top-level market object. - -### Minimum order size increase to $5 - April 14, 2026 - -The minimum order amount is increasing from $1 to $5. Orders below $5 will be rejected starting April 14. Ensure all order amounts in your integration are at least $5. - -- [Prediction Market Docs](/prediction) -- [API Reference](/api-reference/prediction/create-order) - ---- - -## Transaction Submission API - -`POST https://api.jup.ag/tx/v1/submit` is now publicly available. Submit any signed Solana transaction through Jupiter's optimised landing infrastructure, including Jupiter Beam for sub-second landing and MEV protection. - -* Requires a minimum tip of 0.001 SOL to one of the supported tip receiver addresses -* Works with any signed Solana transaction, not just Jupiter swaps - -- [Transaction Submission Docs](/transaction/submit) -- [API Reference](/api-reference/transaction/submit) - ---- - -## Swap API: RTSE Slippage Estimation - -Real-Time Slippage Estimation (RTSE) documentation is now available. RTSE estimates slippage based on current market conditions. - -* Automatic with `/order` - no configuration needed -* Opt-in with `/build` via `slippageBps=rtse` - -- [Slippage Estimation (RTSE)](/swap/advanced/slippage) - ---- - -## VRFD Express Verification API - -The VRFD Express Verification API lets token projects verify their tokens on Jupiter through a three-step flow: - -1. **Check eligibility** - confirm the token meets verification requirements -2. **Craft transaction** - build the verification transaction -3. **Execute verification** - submit and complete verification - -New Tokens documentation, API reference pages, and verification OpenAPI spec are now available. - -- [Verification Docs](/tokens/verification) -- [API Reference](/api-reference/tokens/verify-check-eligibility) - ---- - -## Jupiter Developer Platform - -Portal documentation has been rewritten for the Jupiter Developer Platform launch, covering the full platform experience: - -* **Setup** - creating an account and generating API keys -* **Plans** - free and paid tiers with rate limits and features -* **Rate Limits** - per-endpoint limits and how throttling works -* **Migration** - moving from `lite-api.jup.ag` to `api.jup.ag` -* **Responses** - standard response formats and error codes -* **FAQ** - common questions and troubleshooting - -- [Get Started](/portal/setup) -- [Migration Guide](/portal/migration) - ---- - -## JupUSD and JUICED Developer Documentation - -Developer documentation for JupUSD and JUICED is now available: - -* **JupUSD** - mint and redeem Jupiter's native stablecoin, with API integration guides -* **JUICED** - collateral integration documentation for leveraged vault positions - -- [JupUSD Docs](/jupusd) -- [JUICED Docs](/jupusd/juiced) - - - ---- - - - -## Swap API V2 - -The unified Swap API consolidates Ultra and Metis into a single entry point at `api.jup.ag/swap/v2`. Three endpoints: - -* **`GET /order`**: default path. Returns an assembled transaction with the best price across all routers (Metis, JupiterZ, Dflow, OKX). Includes RTSE, Jupiter Beam, gasless, and RFQ competition. Sign and send to `/execute`. -* **`GET /build`**: advanced path. Returns raw swap instructions for building custom transactions (add custom instructions, CPI, composability). Metis-only routing, no Jupiter swap fees. -* **`POST /execute`**: managed transaction landing for `/order` transactions. -Start with the Meta-Aggregator (`/order`). It gives the best price because all routers compete, including JupiterZ market makers who often beat onchain routing on major pairs. Only use the Router (`/build`) if you need to modify the transaction. - -Ultra and Metis APIs remain available. New integrations should use the Swap API, and existing integrations are encouraged to migrate when convenient. See the [migration guides](/swap/migration/metis-to-build) for details. - -- [Swap API overview](/swap) -- [Order & Execute](/swap/order-and-execute) -- [Build](/swap/build) -- [API Reference](/api-reference/swap) - ---- - -### Lend Earn API: Earnings endpoint schema change - -The `GET /lend/v1/earn/earnings` response schema has been updated: - -* **Removed:** `totalDeposits`, `totalWithdraws`, `totalBalance`, `totalAssets` fields -* **Changed:** `earnings` type from `string` to `number` -* **Added:** `slot` field (`number`) indicating the slot at which earnings were computed - ---- - -## Trigger Order API V2 - -The Trigger Order API has been upgraded to V2 with a new authentication model and expanded capabilities: - -* **Authentication flow** - challenge-response auth using wallet signatures instead of API keys -* **Vault registration** - register a vault to hold funds for trigger orders -* **Create and manage orders** - create, update, and cancel limit and DCA orders -* **Order history** - query active and historical orders with filtering - -The V1 API remains available but is no longer actively maintained. New integrations should use V2. - -- [Trigger Order V2 Docs](/trigger) -- [API Reference](/api-reference/trigger/challenge) - ---- - -## Jupiter CLI - -A new Jupiter CLI page is now available, along with a reworked AI section focused on trading and building workflows: - -* Use Jupiter APIs directly from the command line for swaps, price checks, and token lookups -* AI docs reorganised around practical trading and building use cases - -- [Jupiter CLI](/ai/cli) -- [AI Overview](/ai) - ---- - -### Metis Swap API: `forJitoBundle` Parameter - -A new `forJitoBundle` parameter is available on the Metis Swap quote endpoint. When set to `true`, it excludes DEXes that are incompatible with Jito bundles, ensuring the resulting transaction can be submitted as part of a Jito bundle. - -- [Quote API Reference](/api-reference/swap/v1/quote) - - - ---- - - - -## Prediction Market API - -Jupiter Prediction Market API is now available in beta. Trade on the outcomes of real-world events across categories like Sports, Crypto, Politics, E-sports, Culture, Economics, and Tech. - -* Binary prediction markets on Solana with YES/NO contracts -* Buy and sell contracts at dynamic prices reflecting market sentiment -* Track positions, P&L, and trading history via dedicated endpoints -* Claim JupUSD payouts when predictions are correct - - -The Prediction Market API is currently in beta and subject to breaking changes. - - - - - - ---- - - - -## Ultra Manual Mode - -Ultra now supports manual mode for integrators building user-facing trading UIs. Override automatic slippage, priority fee, and broadcast settings when explicit control over execution behaviour is needed. - -* Intended for manual trading experiences (similar to jup.ag's manual mode) or personal, self-directed usage -* Default Ultra behaviour remains recommended for production integrations -* Transactions with manual overrides fall outside Jupiter's supported execution model - - - - - ---- - - - -## Portfolio API (Beta) - -The Jupiter Portfolio API is now available in beta, providing comprehensive portfolio tracking across the Solana ecosystem. - -* Query user DeFi positions across protocols on Solana (lending, staking, LP positions) -* Retrieve staked JUP amounts -* Built by the Sonarwatch team, now part of Jupiter - - - - - ---- - - - -## Deprecate Lite API URL - - -**Update (February 2026):** The deprecation has been postponed for a few months while we implement a new pricing structure. There is no immediate deadline, but we recommend migrating at your convenience. - - -* We'll be deprecating the Lite API URL `lite-api.jup.ag`. -* ~~This will take effect on 31st January 2026.~~ Postponed - new date TBA. -* Please migrate to the API URL `api.jup.ag`. -* The paths remain unchanged, only domain/hostname changes. -* Generate an API key for free at [https://portal.jup.ag](https://portal.jup.ag). - -**Action Required** -* **For free users**: Migrate to `api.jup.ag` **and use with an API key**. -* **For paid users**: No action is required. -* **For Ultra users**: If you are using `lite-api.jup.ag/ultra`, please migrate to `api.jup.ag/ultra` and use with an API key. - - - ---- - -## Metis Binary Migration - - - - -* [Tweet announcement](https://x.com/jupiterexchange/status/1990479870502031424?s=46) - -**Breaking Changes** -* Migrated self-hosted binary to https://metis.builders -* Renamed to `Metis Binary` -* Requires a `BINARY_KEY` or `--binary-key` to authenticate the usage of the binary -* Refer to [Binary Key](https://metis.builders/docs/binary-key) for more details - ---- - -### Ultra API - -### Deprecate `ctLikes` and `smartCtLikes` response field in search endpoint -* We'll be deprecating the `ctLikes` and `smartCtLikes` response field in the search endpoints. -* This will take effect next week and it affects the search endpoints in Ultra API. -* If you are using the field for any purpose, please move off and stop using it. - ---- - -### Tokens API - -### Deprecate `ctLikes` and `smartCtLikes` response field in search endpoint -* We'll be deprecating the `ctLikes` and `smartCtLikes` response field in the search endpoints. -* This will take effect next week and it affects the search endpoints in Tokens API. -* If you are using the field for any purpose, please move off and stop using it. - ---- - -## Metis Swap API - -### `routePlan[].percent` may return null -* The `routePlan[].percent` field in the Metis Swap API quote response may return `null` - due to an an upgrade on the routing algorithm. -* Please update your code to handle null values for this field. -* This change will affect `instructionVersion=V2` only and has taken effect. -* [npm package version 6.0.47](https://www.npmjs.com/package/@jup-ag/api/v/6.0.47) - has been released with the latest schema. - -### Deprecate `feeAmount` and `feeMint` fields in `SwapInfo` -* We will be deprecating the `feeAmount` and `feeMint` fields from the `routePlan[].swapInfo` schema in a quote response. -* Since `outAmount` already factor in these fees. -* These fees are related to each AMM's own fee, not to any Jupiter or platform fees you may add. -* To smooth the migration, we will just show `0` for `feeAmount` and the input mint as the `feeMint`. -* Refer to [`SwapInfo` API Reference](/api-reference/swap/v1/quote#response-route-plan-swap-info) for more details. -* [npm package version 6.0.47](https://www.npmjs.com/package/@jup-ag/api/v/6.0.47) - has been released with the latest schema. - -### `nativeDestinationAccount` -* We've added a new parameter to the Metis Swap API that lets you send native SOL - directly to any account. -* This is similar to `destinationTokenAccount`, but instead of receiving - WSOL in a token account, you receive native SOL in a regular account. -* Refer to [`nativeDestinationAccount` API Reference](/api-reference/swap/v1/swap#body-native-destination-account) - for more details. -* [npm package version 6.0.46](https://www.npmjs.com/package/@jup-ag/api/v/6.0.46) - has been released with the latest schema. - ---- - -## Ultra Swap API - -### `receiver` parameter -* A new `receiver` parameter has been added to the Ultra Swap API. -* This allows specifying a different wallet to receive the output tokens, decoupling the payer from the recipient. -* Refer to the [Ultra API Reference](/api-reference/ultra) for details. - - - - - -## Ultra V3 -We're excited to introduce Ultra V3, featuring major improvements on quoting -and swap execution for the Ultra Swap API. - -* [Read the full technical deep dive in the Jupiter Developers Blog](https://developers.jup.ag/blog/ultra-v3). - -* **Improved Routers in Meta Aggregation**: Granular splitting of 0.01%; and began usage -of Golden-section and Brent's method for routing algorithms. - -* **Ultra Signaling for Tighter Prop AMM Quotes**: Ultra signals to Prop AMMs, allowing -them to confidently provide tighter quotes by distinguishing Ultra trades as "non-toxic" -order flow from other "toxic" order flow - 3 bps tighter (50% better) quotes for our Ultra -users compared to other platforms. - -* **Predictive Execution to Simulate Executable Price & Potential Slippage**: Simulates routes -on-chain to verify executable price versus quote and predict potential slippage to select the -route with the least overall incurred slippage at the time of execution. - -* **Jupiter Beam: Sub-Second Transaction Landing & MEV Protection**: Transaction sending -infrastructure helps reduce landing time by 50-66% compared to traditional methods and -significantly reduces MEV opportunities by 34x. - -* **Real-Time Slippage Estimator (RTSE) Optimizations**: Automatically prioritize -slippage-protected routes over purely price-optimized routes and increase volatility -sensitivity for tokens with high historical volatility patterns. - -* **Gasless Support Coverage**: Expanded gasless support coverage to Token2022 tokens, -memecoin-to-memecoin swaps (when liquidity permits), and reduced minimum trade size to ~$10 USD. - -* **Just-In-Time Market Revival**: Dynamically re-indexes markets to enable tradability for all tokens. - -* **Reduce Pre-Graduation Quote Latency**: Optimized pre-graduated bonding curve markets routing logic -by skipping multi-route aggregation to improve quote latency from 200ms to 10ms - a 90% improvement. - -* **[Try Ultra Swap API](/ultra)**: Ultra V3 features are live in the Ultra Swap API V1, try it and let us know your feedback! - ---- - -## Jupiter Aggregator V6 Program Update -* 4 new instruction types are introduced: - * `route_v2` - * `exact_out_route_v2` - * `shared_accounts_route_v2` - * `shared_accounts_exact_out_route_v2` -* You can find the details in the latest IDL: [Solscan](https://solscan.io/account/JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4#programIdl). -* V1 instructions will continue to be valid and usable. -* This enables: - * Collect fees when the swap pair consists of a Token2022 mint. - * Set fee beyond the previous cap of 255 bps. - -## Integrator Fee -**Ultra Swap API** -* Integrator fee for Ultra now supports Token2022 tokens. -* No additional parameters are required, simply create Token2022 referral token accounts for your referral account. -* You can find the details in the [Add Fees To Ultra Swap](/ultra/add-fees-to-ultra) guide. - -**Metis Swap API** -* Integrator fee for Metis Swap now supports Token2022 tokens. -* New [`instructionVersion` parameter](/api-reference/swap/v1/quote#parameter-instruction-version) is introduced to the Metis Swap API's Quote endpoint to support the new instruction types. -* To collect fees in Token2022 tokens, create Token2022 token accounts and pass in via `feeAccount`. -* You can find the details in the [Add Fees To Swap](/swap/v1/add-fees-to-swap) guide. - - - ---- - - -## Sunsetting Legacy Endpoints - -We’re sunsetting several legacy endpoints over the next few weeks by gradually reducing access/rate limits. Please migrate to the latest versions ASAP. - - -**Action Required** -* Old Quote API V6: `http://quote-api.jup.ag/v6/` -* Old Tokens API: `http://tokens.jup.ag` -* Old Price API: `http://price.jup.ag` -* Tokens V1: `http://lite-api.jup.ag/tokens/v1` -* Price V2: `http://lite-api.jup.ag/price/v2` - - - ---- - - -## Deprecation of Price API V2 and Tokens API V1 - -[**Price API upgrades to V3**](/price/v3) to support more reliable and timely pricing data - derived by the last swap price (across all transactions) and a set of heuristics to ensure the accuracy of the price and eliminate any outliers. - -[**Tokens API upgrades to V2**](/tokens/v2) to support an easier and reliable usage with new data addition such as [Organic Score](/tokens/organic-score), more trading categories like toporganicscore, and more. - - -**Action Required** -* If you are using **Price API V2** and **Tokens API V1** -* Please migrate to their new versions respectively -* The older versions will be deprecated by 30 September 2025 - - - ---- - - -## API Gateway: Improvements - -**Improved API Gateway!** - -For those that have been using the new hostnames at `api.jup.ag/**`, we have made improvements to the infrastructure - -* Reduced latency in responses and much more consistent now -* Infrastructure costs reduction (will help us look into reducing costs of the plans with higher rate limits) - -**Dual endpoint moving forward.** - -We will be deploying 2 different endpoints, 1 for free usage and 1 for plans with higher rate limits via [https://portal.jup.ag/](https://portal.jup.ag/) - -* `api.jup.ag` will serve only pro/paid users -* `lite-api.jup.ag` will be the endpoint to provide free usage - - -**Action Required (Free plan)** - -* Migrate to `lite-api.jup.ag` **BY 1 MAY 2025** -* The paths remain unchanged, only domain/hostname changes -* The same rate limits still apply -* You do not need an API Key to use the APIs for free -* If you are still on `api.jup.ag` without an API key, you will get a 401 response - -**NO Action Required (Pro plan)** - -* Your usage on `api.jup.ag` remains unchanged -* You can only use `api.jup.ag` with an API Key - - - ---- - - -## Trigger API: New Hostname and Breaking Changes - -* The `/limit/v2` path will be deprecated soon, please update your API calls to use the `/trigger/v1` path immediately. -* `/execute` endpoint is introduced. -* `/createOrder` endpoint now includes an additional `requestId` parameter to be used with the `/execute` endpoint. -* `/cancelOrder` endpoint only builds the transaction for 1 order, while `/cancelOrders` endpoint builds the transaction for multiple orders. -* The `tx` field in the responses are now `transaction` or `transactions`. -* `/getTriggerOrders` endpoint is introduces a new format to get either active or historical orders (based on the query parameters). -* [Please refer to the documentation for usage](/trigger/create-order). - - -| Old Paths | New Paths | -| :--- | :--- | -| `/limit/v2/createOrder` | `/trigger/v1/createOrder` | -| `/limit/v2/executeOrder` | `/trigger/v1/executeOrder` | -| `/limit/v2/cancelOrder` | `/trigger/v1/cancelOrder` `/trigger/v1/cancelOrders` | -| `/limit/v2/openOrders` `/limit/v2/orderHistory` | `/trigger/v1/getTriggerOrders` | - - - ---- - - -## API Gateway: New Hostnames and API Keys - -* API will now be served through new hostnames. -* API will now be served through API keys. -* API Keys will be distributed via [https://portal.jup.ag](https://portal.jup.ag) (Refer to [API Setup](/portal/setup) to get started). -* Old hostnames will be slowly phased out. -* Old hostnames during this period will have reduced rate limits to facilitate migration to the new API. - -| Service Types | Description | -| :---------------------- | :-------------------------------------------------------- | -| Free with no API key | Decreased rate limits to only accommodate for testing. | -| Paid plan with API key | Fixed rate limits, self served through an API dashboard. | - - - -| Old Hostnames | New Hostnames | -| :------------------------------------------------- | :----------------------------------------------------- | -| `quote-api.jup.ag/v6/quote` | `lite-api.jup.ag/swap/v1/quote` | -| `quote-api.jup.ag/v6/swap` | `lite-api.jup.ag/swap/v1/swap` | -| `quote-api.jup.ag/v6/swap-instructions` | `lite-api.jup.ag/swap/v1/swap-instructions` | -| `quote-api.jup.ag/v6/program-id-to-label` | `lite-api.jup.ag/swap/v1/program-id-to-label` | -| `price.jup.ag/v6` | `lite-api.jup.ag/price/v2` | -| `tokens.jup.ag/token/:mint` | `lite-api.jup.ag/tokens/v1/token/:mint` | -| `tokens.jup.ag/tokens?tags=:tags` | `lite-api.jup.ag/tokens/v1/tagged/:tag` | -| `tokens.jup.ag/tokens_with_markets` | `lite-api.jup.ag/tokens/v1/mints/tradable` | - - diff --git a/docs.json b/docs.json index 2b644793..e36ff8f5 100644 --- a/docs.json +++ b/docs.json @@ -647,12 +647,7 @@ }, { "tab": "Changelog", - "groups": [ - { - "group": " ", - "pages": ["changelog/index"] - } - ] + "href": "https://developers.jup.ag/blog?tag=Changelog" }, { "tab": "Resources", diff --git a/llms.txt b/llms.txt index c39e9db7..739e5296 100644 --- a/llms.txt +++ b/llms.txt @@ -485,12 +485,6 @@ Drop-in UI components (Plugin, Wallet Kit) and the Referral Program SDK. - [Referral Program](https://developers.jup.ag/docs/tool-kits/referral-program.md): The open-source Referral Program SDK enables developers to earn on-chain fees via Jupiter APIs (Swap, Trigger, Plugin) and can be integrated by any Solana program. -## Changelog - -Changelog, release notes, and developer blog. - -- [Changelog](https://developers.jup.ag/docs/changelog/index.md): Changelog for Jupiter developer APIs, SDKs, and docs. Tracks breaking changes, migration deadlines, new endpoint behaviour, product updates, and links to the relevant developer documentation. - ## Resources Support channels, brand assets, and community resources. diff --git a/swap/v1/add-fees-to-swap.mdx b/swap/v1/add-fees-to-swap.mdx index 6d1397c3..93a86cc4 100644 --- a/swap/v1/add-fees-to-swap.mdx +++ b/swap/v1/add-fees-to-swap.mdx @@ -38,7 +38,7 @@ By default, there are **zero** protocol fees on Jupiter Swap. Integrators have t * For ExactOut swaps, the `feeAccount`'s mint can only be the **input mint** of the swap pair. * Example, if you swap JUP to USDC, you cannot take fees in SOL, it has to be part of the swap pair. * It supports SPL and Token2022 tokens. - * [Refer to this update for support of Token2022 tokens](/updates#jupiter-aggregator-v6-program-update). + * [Refer to the October 2025 changelog for support of Token2022 tokens](https://developers.jup.ag/blog/changelog-2025-10). * Referral Program is no longer required for Metis Swap API. ### 1. Set up From 2c9b5cfce0b0393485a72069ebf67ee77bf8969b Mon Sep 17 00:00:00 2001 From: YY <0xyankee@gmail.com> Date: Wed, 8 Jul 2026 16:11:34 +0800 Subject: [PATCH 2/2] chore: [changelog] point redirect and workflow at developers.jup.ag/changelog The dev platform changelog moved from /blog?tag=Changelog to a full /changelog namespace (jup-ag/developer-platform#527). Update the tab href, the Cloudflare redirect target, the contributor workflow paths, and the October 2025 changelog link. Co-Authored-By: Claude Fable 5 --- .claude/rules/decisions.md | 6 +++--- AGENTS.md | 5 ++--- docs.json | 2 +- swap/v1/add-fees-to-swap.mdx | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.claude/rules/decisions.md b/.claude/rules/decisions.md index 8cb2bf10..a389da46 100644 --- a/.claude/rules/decisions.md +++ b/.claude/rules/decisions.md @@ -216,7 +216,7 @@ Track all redirects added to `vercel.json` here for visibility: | `/docs/studio/*` | `/studio/*` | 2026-03-28 | Product folders moved to root (DEVREL-133) | | `/docs/trigger/*` | `/trigger/*` | 2026-03-28 | Product folders moved to root (DEVREL-133) | | `/docs/ultra/*` | `/ultra/*` | 2026-03-28 | Product folders moved to root (DEVREL-133) | -| `developers.jup.ag/docs/changelog` | `https://developers.jup.ag/blog?tag=Changelog` | 2026-07-07 | Changelog consolidated on dev platform blog, Cloudflare domain-level rule (DEV-718) | +| `developers.jup.ag/docs/changelog` | `https://developers.jup.ag/changelog` | 2026-07-07 | Changelog consolidated on dev platform blog, Cloudflare domain-level rule (DEV-718) | ### [2026-04-06] Hidden pages for private integrator docs **Status:** implemented @@ -276,8 +276,8 @@ Track all redirects added to `vercel.json` here for visibility: **Files affected:** `docs.json`, `changelog/index.mdx` (deleted), `AGENTS.md`/`CLAUDE.md`, `llms.txt` **Linear issue:** DEV-595 (sub-issues DEV-717 blog backfill, DEV-718 docs redirect) -**Context:** Two changelogs existed: the docs Changelog tab (`changelog/index.mdx`) and the Developer Platform blog's Changelog section (`/blog?tag=Changelog`). The blog has far more visibility and sits alongside the platform, and dual-maintenance guaranteed drift. -**Decision:** The blog is the single changelog home. All docs changelog history (Jan 2025 – Jun 2026) was backfilled as one blog post per month (`changelog-YYYY-MM` slugs) in the `developer-platform` repo. The docs Changelog tab became an external `href` to `https://developers.jup.ag/blog?tag=Changelog`, `changelog/index.mdx` was deleted, and `developers.jup.ag/docs/changelog` hard-redirects to the blog via a Cloudflare domain-level rule (same mechanism as DEVREL-133). +**Context:** Two changelogs existed: the docs Changelog tab (`changelog/index.mdx`) and the Developer Platform site's changelog (`developers.jup.ag/changelog`). The blog has far more visibility and sits alongside the platform, and dual-maintenance guaranteed drift. +**Decision:** The blog is the single changelog home. All docs changelog history (Jan 2025 – Jun 2026) was backfilled as one post per month (`/changelog/YYYY-MM` URLs, content in `web/content/changelog/`) in the `developer-platform` repo. The docs Changelog tab became an external `href` to `https://developers.jup.ag/changelog`, `changelog/index.mdx` was deleted, and `developers.jup.ag/docs/changelog` hard-redirects to the blog via a Cloudflare domain-level rule (same mechanism as DEVREL-133). **Rationale:** One source of truth, more visibility, and a standardised monthly format (breaking changes first, per-product sections, "WTM" explanations, modelled on the solana_devs changelog and Linear's changelog method). The format is codified in `developer-platform` `web/content/blog/_changelog-template.mdx` and `web/content/blog/README.md`. **Alternatives considered:** (1) Keep the docs page as a frozen archive with the tab linking out — rejected, two URLs for one concept. (2) Cross-post to both — rejected, guaranteed drift. **Migration notes:** Existing `/updates → /changelog` redirects in `docs.json` kept (they chain into the Cloudflare rule). New changelog entries go to the `developer-platform` repo; see the Changelog section of `AGENTS.md`. diff --git a/AGENTS.md b/AGENTS.md index 4e176e72..98f7b8e1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -202,8 +202,7 @@ Do the work following the Writing and Reviewing guidelines below. After writing: The changelog lives on the Developer Platform blog, NOT in this repo (decided 2026-07-07, DEV-595). It is published as one blog post per month in the `developer-platform` repo at -`web/content/blog/changelog-YYYY-MM.mdx`, tagged `["Changelog"]`, rendered at -https://developers.jup.ag/blog?tag=Changelog. +`web/content/changelog/YYYY-MM.mdx`, rendered at https://developers.jup.ag/changelog. If your changes affect a public API or product, add (or update) the current month's changelog post in `~/Documents/Projects/developer-platform/web/content/blog/`. Follow the format in that @@ -429,7 +428,7 @@ Always run/check before committing: 6. No placeholder text like "TODO" or "Lorem ipsum" left in content 7. OpenAPI spec changes in `openapi-spec/` are reflected in `api-reference/` pages 8. Images/assets added to `static/` are actually referenced somewhere -9. Changelog entry added to the current month's post in the `developer-platform` repo (`web/content/blog/changelog-YYYY-MM.mdx`) if changes affect a public API or product +9. Changelog entry added to the current month's post in the `developer-platform` repo (`web/content/changelog/YYYY-MM.mdx`) if changes affect a public API or product 10. `.claude/rules/` updated if you discovered product behaviour, made IA decisions, or established conventions ## Pull Requests diff --git a/docs.json b/docs.json index e36ff8f5..93e111ad 100644 --- a/docs.json +++ b/docs.json @@ -647,7 +647,7 @@ }, { "tab": "Changelog", - "href": "https://developers.jup.ag/blog?tag=Changelog" + "href": "https://developers.jup.ag/changelog" }, { "tab": "Resources", diff --git a/swap/v1/add-fees-to-swap.mdx b/swap/v1/add-fees-to-swap.mdx index 93a86cc4..7451e401 100644 --- a/swap/v1/add-fees-to-swap.mdx +++ b/swap/v1/add-fees-to-swap.mdx @@ -38,7 +38,7 @@ By default, there are **zero** protocol fees on Jupiter Swap. Integrators have t * For ExactOut swaps, the `feeAccount`'s mint can only be the **input mint** of the swap pair. * Example, if you swap JUP to USDC, you cannot take fees in SOL, it has to be part of the swap pair. * It supports SPL and Token2022 tokens. - * [Refer to the October 2025 changelog for support of Token2022 tokens](https://developers.jup.ag/blog/changelog-2025-10). + * [Refer to the October 2025 changelog for support of Token2022 tokens](https://developers.jup.ag/changelog/2025-10). * Referral Program is no longer required for Metis Swap API. ### 1. Set up