In this changelog:
Field deprecation: a field that is still present in the schema but not maintained anymore. Will be removed at a later stage.
Field removal: a field that is or will be removed from the schema. Using this field in a query will throw an error.
Legacy rewards API deprecation
Implementation ETA - May 6th, 2026
Announced on March 13, 2026
Rewards distribution has migrated from the legacy Morpho Universal Rewards Distributor (URD) system to Merkl. All new campaigns from July 2025 onwards use Merkl exclusively.
Today, we announce the deprecation of the legacy rewards API endpoints (rewards.morpho.org/docs).
Unclaimed rewards from historical Morpho programs (pre-Merkl migration), can still be claimed via https://rewards-legacy.morpho.org/
pnl API fields removal
Implemented on April 2, 2026
Announced on February 17, 2026
Removed fields:
vaultPosition.state.roeUsdvaultPosition.historicalState.pnl/pnlUsd/roe/roeUsdvaultV2Position.roeUsdvaultV2Position.historicalState.pnl/pnlUsd/roe/roeUsdmarketPosition.state.pnl/pnlUsd/roe/roeUsdmarketPosition.state.supplyPnl/supplyPnlUsd/supplyRoe/supplyRoeUsdmarketPosition.state.borrowRoeUsdmarketPosition.state.collateralPnlUsd/collateralRoeUsdmarketPosition.state.marginPnl/marginPnlUsd/marginRoe/marginRoeUsdmarketPosition.historicalState.supplyPnl/supplyPnlUsd/supplyRoe/supplyRoeUsdmarketPosition.historicalState.borrowPnl/borrowPnlUsd/borrowRoe/borrowRoeUsdmarketPosition.historicalState.collateralPnlUsd/collateralRoeUsdmarketPosition.historicalState.marginPnl/marginPnlUsd/marginRoe/marginRoeUsduser.state.vaultsPnlUsd/vaultsRoeUsd/vaultV2sPnlUsd/vaultV2sRoeUsd/marketsPnlUsd/marketsRoeUsd/marketsSupplyPnlUsd/marketsSupplyRoeUsd/marketsBorrowPnlUsd/marketsBorrowRoeUsd/marketsCollateralPnlUsd/marketsCollateralRoeUsd/marketsMarginPnlUsd/marketsMarginRoeUsduser.historicalState.vaultsPnlUsd/vaultsRoeUsd/vaultV2sPnlUsd/vaultV2sRoeUsd/marketsPnlUsd/marketsRoeUsd/marketsSupplyPnlUsd/marketsSupplyRoeUsd/marketsBorrowPnlUsd/marketsBorrowRoeUsd/marketsCollateralPnlUsd/marketsCollateralRoeUsd/marketsMarginPnlUsd/marketsMarginRoeUsd
The fields that will be kept are:
vaultPosition.state.pnlvaultPosition.state.pnlUsd(changed definition from "p&l if each interaction was realizing profit/loss in USD" to "currently p&l in underlying assets quoted in USD at the latest price")vaultPosition.state.roevaultV2Position.pnl/pnlUsd/roemarketPosition.state.borrowPnl/borrowPnlUsd/borrowRoe
API fields removal
Implemented on April 2, 2026
Announced on January 26, 2026
This is the first removal notice of the Morpho API. One can expect this kind of removal notice every 6 months. This is a cleanup fields removal, removing only fields that are marked as deprecated for more than 1 year, with an alternative or a non longer maintained feature.
Fields removed & alternatives
Field | Alternative |
| NA |
| |
| NA |
| NA |
| NA |
| NA |
| NA |
| NA |
| |
| |
| |
| NA |
| |
| |
| |
| |
|
|
Changes represented by market(s) / vault(s) are also applied to marketByUniqueKey and vaultByAddress queries.
Limiting the maximum complexity of a query
16/10/2025
Action
GraphQL complexity details:
- Max allowed complexity: 1,000,000
- Base cost per operation: 10
- Each field adds cost; some fields declare explicit costs and/or multipliers.
Troubleshoot
Most queries are unaffected but you can check your queries' complexity in https://api.morpho.org/graphql -> the complexity number is returned as an extension.
If one of you query is above the threshold, you have the following alternatives:
- Trim the selection set: keep only fields you actually use. Prefer cheap snapshots (state.*) over histories when possible.
- Lower fan-out: reduce first (e.g., 25 or 50), then paginate.
- Split the work: fetch a light list first (IDs + a few cheap fields), then run follow-up queries for heavy history on a subset.
- Tune multipliers: for fields like currentIrmCurve(numberOfPoints: N), lower N.
Search limitation
20/09/2025
Rational
The numberOfResults was previously unbounded so the query can yield a huge amount of results which can have an impact on the performance of the Morpho API.
Action
The numberOfResults parameter in the search root resolver (previously unconstrained) will be constrained to be within [0, 1000] (its default value 5 remains unchanged)
Here is an example of search query
Fields removal
19/09/2025
Rational
Some rewards fields were wrongly computed since the Merkl integration:
yearlySupplyTokens
yearlyBorrowTokens
amountPerSuppliedToken
amountPerBorrowedToken
Action
These fields will always be set to 0 and be removed in the schema.
Troubleshoot
The Morpho API is integrating Merkl, these fields shouldn’t be used and instead supplyApy and borrowApy fields should satisfy integrators needs.
The only removed use-cases along with this 4 fields should be:
- displaying rewards for an unpriced asset
- computing the apy with a custom price (fdv feature on the Morpho app)
