Skip to main content

Morpho API changelog

Morpho API changelog is now supported on the Morpho documentation here:

https://docs.morpho.org/tools/offchain/api/changelog/


Starting June 1, 2026 this page won't be updated.

You can also use the deprecation warning feature to receive update about API fields.
More about this feature here:

https://docs.morpho.org/tools/offchain/api/get-started/#deprecation-warnings


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.


Deprecation/Removal Rollout - May 2026 to October 2026

The below fields will be fully removed from the Morpho API on May 20, 2026

Deprecated Field

Replacement

Deprecation date

AssetsFilters.id_in

address_in

2026-02-11

AssetsFilters.whitelisted

listed

2025-12-22

CuratorFilters.chainId

chainId_in

2025-09-09

Market.allTimeApys

state.allTimeApy

2025-09-09

Market.quarterlyApys

state.quarterlyApys

2025-09-09

Market.uniqueKey

marketId

2026-03-30

Market.weeklyApys

state.weeklyApys

2025-09-09

Market.whitelisted

listed

2026-01-29

Market.yearlyApys

state.yearlyApys

2025-09-09

MarketFilters.

collateralAssetId_in

collateralAssetSelector_in

2026-01-29

MarketFilters.id_in

selector_in

2026-01-29

MarketFilters.loanAssetId_in

loanAssetSelector_in

2026-01-29

MarketFilters.whitelisted

listed

2026-02-27

MarketHistory.

allTimeNetBorrowApy

allTimeBorrowApy

2026-01-19

MarketHistory.

allTimeNetSupplyApy

allTimeSupplyApy

2026-01-19

MarketHistory.rateAtUTarget

apyAtTarget

2025-12-23

MarketPosition.borrowAssets

state.borrowAssets

2025-09-09

MarketPosition.borrowAssetsUsd

state.borrowAssetsUsd

2025-09-09

MarketPosition.borrowShares

state.borrowShares

2025-09-09

MarketPosition.collateral

state.collateral

2025-09-09

MarketPosition.collateralUsd

state.collateralUsd

2025-09-09

MarketPosition.supplyAssets

state.supplyAssets

2025-09-09

MarketPosition.supplyAssetsUsd

state.supplyAssetsUsd

2025-09-09

MarketPosition.supplyShares

state.supplyShares

2025-09-09

MarketPosition.whitelisted

listed

2026-02-03

MarketPositionFilters.

marketId_in

marketUniqueKey_in

2026-02-11

MarketPositionFilters.

marketWhitelisted

marketListed

2026-02-27

MarketPositionFilters.userId_in

userAddress_in

2026-01-20

MarketState.rateAtUTarget

apyAtTarget

2026-01-07

MarketStateReward.borrowApy

borrowApr

2024-05-28

MarketStateReward.supplyApy

supplyApr

2024-05-28

MorphoBlueFilters.id_in

address_in

2026-02-11

MorphoChainlinkOracleData.vault

baseOracleVault

2025-09-09

MorphoChainlinkOracleV2Data.

baseVault

baseOracleVault

2025-09-09

MorphoChainlinkOracleV2Data.

quoteVault

quoteOracleVault

2025-09-09

PublicAllocatorFilters.id_in

address_in

2026-02-11

PublicAllocatorSharedLiquidity.allocationMarket

withdrawMarket

2025-12-17

PublicAllocatorSharedLiquidity.market

supplyMarket

2025-12-17

PublicallocatorReallocateFilters.marketId_in

marketSelector_in

2026-01-27

PublicallocatorReallocateFilters.vaultId_in

vaultSelector_in

2026-01-27

Query.asset

assetByAddress

2026-02-12

Query.market

marketById

2025-09-09

Query.marketAverageApys

state

2025-07-28

Query.marketByUniqueKey

marketById

2026-04-01

Query.morphoBlue

morphoBlueByAddress

2026-02-12

Query.search

markets and vaults

2026-03-20

Query.transaction

transactions

2026-02-12

Query.user

userByAddress

2026-02-12

Query.vault

vaultByAddress

2026-02-12

Query.vaultFactory

vaultFactoryByAddress

2026-02-12

RiskAnalysis.isUnderReview

analysis.isUnderReview

2025-09-09

RiskAnalysis.rating

analysis.rating

2025-09-09

RiskAnalysis.score

analysis.score

2025-09-09

RiskAnalysis.timestamp

analysis.timestamp

2025-09-09

TransactionFilters.assetId_in

assetAddress_in

2026-02-11

TransactionFilters.

assetSymbol_in

assetAddress_in

2026-02-16

TransactionFilters.marketId_in

marketUniqueKey_in

2026-02-11

TransactionFilters.userId_in

userAddress_in

2026-02-11

TransactionFilters.vaultId_in

vaultAddress_in

2026-02-11

TransactionFilters.

assetsUsd_gte

N/A

2026-02-16

TransactionFilters.

assetsUsd_lte

N/A

2026-02-16

TransactionFilters.

badDebtAssetsUsd_gte

N/A

2026-02-16

TransactionFilters.

badDebtAssetsUsd_lte

N/A

2026-02-16

TransactionFilters.

repaidAssetsUsd_gte

N/A

2026-02-16

TransactionFilters.

repaidAssetsUsd_lte

N/A

2026-02-16

TransactionFilters.

seizedAssetsUsd_gte

N/A

2026-02-16

TransactionFilters.

seizedAssetsUsd_lte

N/A

2026-02-16

UsersFilters.assetId_in

assetAddress_in

2026-02-11

UsersFilters.id_in

address_in

2026-02-11

UsersFilters.marketId_in

marketUniqueKey_in

2026-02-11

UsersFilters.vaultId_in

vaultAddress_in

2026-02-11

Vault.dailyApy

state.

avgNetApyExcludingRewards

(lookback: ONE_DAY)

2026-01-15

Vault.dailyApys

state.

avgNetApyExcludingRewards

(lookback: ONE_DAY) and state.avgNetApy

(lookback: ONE_DAY)

2026-01-15

Vault.monthlyApy

state.avgNetApyExcludingRewards(lookback: THIRTY_DAYS)

2026-01-15

Vault.monthlyApys

state.

avgNetApyExcludingRewards

(lookback: THIRTY_DAYS) and state.avgNetApy

(lookback: THIRTY_DAYS)

2026-01-15

Vault.pendingCaps

state.pendingConfigs

2026-01-15

Vault.promoted

featured

2026-02-11

Vault.riskAnalysis

warnings

2025-11-26

Vault.weeklyApys

state.

avgNetApyExcludingRewards(lookback: SEVEN_DAYS) and state.avgNetApy

(lookback: SEVEN_DAYS)

2026-01-15

Vault.whitelisted

listed

2026-02-11

VaultFilters.assetId_in

assetAddress_in

2026-02-11

VaultFilters.curator_in

curatorAddress_in

2026-02-11

VaultFilters.id_in

address_in

2026-02-11

VaultFilteVaultFilters.promoted

featured

2026-02-11

VaultFilters.whitelisted

listed

2026-02-11

VaultHistoryDto.curator

vault.adminEvents

2026-04-20

VaultHistoryDto.feeRecipient

vault.adminEvents

2026-04-20

VaultHistoryDto.guardian

vault.adminEvents

2026-04-20

VaultHistoryDto.owner

vault.adminEvents

2026-04-20

VaultHistoryDto.sharePrice

sharePriceNumber

2026-01-15

VaultHistoryDto.skimRecipient

vault.adminEvents

2026-04-20

VaultMetadata.curators

state.curators

2025-09-09

VaultPosition.assets

state.assets

2025-09-09

VaultPosition.assetsUsd

state.assetsUsd

2025-09-09

VaultPosition.shares

state.shares

2025-09-09

VaultPosition.whitelisted

listed

2025-12-22

VaultPositionFilters.userId_in

userAddress_in

2026-01-20

VaultPositionFilters.vaultId_in

vaultAddress_in

2026-01-20

VaultPositionFilters.

vaultWhitelisted

vaultListed

2026-02-11

VaultReallocateFilters.

marketId_in

marketUniqueKey_in

2026-02-11

VaultReallocateFilters.

vaultId_in

vaultAddress_in

2026-02-11

VaultState.allTimeApy

avgNetApyExcludingRewards

2026-02-15

VaultState.allTimeNetApy

avgNetApy

2026-02-15

VaultState.avgApy

avgNetApyExcludingRewards

2026-02-15

VaultState.biweeklyApy

avgNetApyExcludingRewards

2026-02-15

VaultState.biweeklyNetApy

avgNetApy

2026-02-15

VaultState.monthlyApy

avgNetApyExcludingRewards

2026-02-15

VaultState.monthlyNetApy

avgNetApy

2026-02-15

VaultState.pendingGuardian

pendingConfigs

2026-01-15

VaultState.

pendingGuardianValidAt

pendingConfigs

2026-01-15

VaultState.pendingTimelock

pendingConfigs

2026-01-15

VaultState.

pendingTimelockValidAt

pendingConfigs

2026-01-15

VaultState.quarterlyApy

avgNetApyExcludingRewards

2026-02-15

VaultState.quarterlyNetApy

avgNetApy

2026-02-15

VaultState.sharePrice

sharePriceNumber

2026-01-15

VaultState.yearlyApy

avgNetApyExcludingRewards

2026-02-15

VaultState.yearlyNetApy

avgNetApy

2026-02-15

VaultV2.gates

gatesConfig

2025-11-25

VaultV2.whitelisted

listed

2025-12-22

VaultV2sFilters.assetId_in

address_in

2026-02-11

VaultV2sFilters.curator_in

curatorAddress_in

2025-11-25

VaultV2sFilters.whitelisted

listed

2026-02-11

The below fields will be fully removed from the Morpho API on June 24, 2026

Deprecated Field

Replacement

Deprecation date

Asset.

historicalSpotPriceEth

N/A

2026-01-20

Asset.riskAnalysis

N/A

2026-01-20

AssetsFilters.

credoraRiskScore_gte

N/A

2025-11-26

AssetsFilters.

credoraRiskScore_lte

N/A

2025-11-26

Curator.url

socials.url

2025-09-09

Market.concentration

N/A

2025-09-09

Market.oracleFeed

oracle.data

2025-10-14

Market.riskAnalysis

N/A

2025-09-09

MarketConcentration.

borrowHhi

N/A

2026-01-28

MarketConcentration.

supplyHhi

N/A

2026-01-28

MarketFilters.

credoraRiskScore_gte

N/A

2025-11-26

MarketFilters.

credoraRiskScore_lte

N/A

2025-11-26

MarketHistory.fee

N/A

2026-01-07

MarketHistory.price

N/A

2026-01-19

MarketOracleAccuracy.

averagePercentDifference

N/A

2025-09-09

MarketOracleAccuracy.

maxPercentDifference

N/A

2025-09-09

MarketStateReward.

amountPerBorrowedToken

N/A

2025-09-12

MarketStateReward.

amountPerSuppliedToken

N/A

2025-09-12

MarketStateReward.

yearlyBorrowTokens

N/A

2025-09-12

MarketStateReward.

yearlySupplyTokens

N/A

2025-09-12

OracleFeed.description

N/A

2025-10-08

OracleFeed.

historicalPrice

N/A

2025-10-08

OracleFeed.pair

N/A

2025-10-08

OracleFeed.price

N/A

2025-10-08

OracleFeed.vendor

N/A

2025-10-08

OracleVault.decimals

N/A

2025-10-20

OracleVault.pair

N/A

2025-10-20

OracleVault.vendor

N/A

2025-10-20

Query.transactionByHash

N/A

2025-01-02

VaultAllocationDto.

enabled

N/A

2026-01-15

VaultFilters.

credoraRiskScore_gte

N/A

2025-11-26

VaultFilters.

credoraRiskScore_lte

N/A

2025-11-26

VaultStateReward.

amountPerSuppliedToken

N/A

2026-03-20

VaultStateReward.

yearlySupplyTokens

N/A

2026-03-20

The below fields will be fully removed from the Morpho API on July 29, 2026

Deprecated Field

Replacement

Deprecation date

Asset.isWhitelisted

isListed

2025-12-22

Market.collateralPrice

state.price

2025-09-09

Market.creatorAddress

morphoBlue

2026-01-27

Query.transactions

vaultV2Transactions,

vaultV1Transactions, marketTransactions

2026-04-23

VaultState.lastTotalAssets

totalAssets

2026-04-16

The below fields will be fully removed from the Morpho API on August 26, 2026

Deprecated Field

Replacement

Deprecation date

Market.dailyApys

state.dailyApys

2025-09-09

VaultV2.avgApy

avgNetApyExcludingRewards

2026-02-15

The below fields will be fully removed from the Morpho API on September 30, 2026

Deprecated Field

Replacement

Deprecation date

Asset.oraclePriceUsd

price.usd

2026-02-05

Asset.spotPriceEth

N/A

2026-01-20

Asset.totalSupply

N/A

2026-01-20

Market.monthlyApys

state.monthlyApys

2025-09-09

Market.oracleInfo

oracle.data

2025-10-14

VaultState.dailyApy

avgNetApyExcludingRewards

2026-02-15

VaultState.dailyNetApy

avgNetApy

2026-02-15

VaultState.

netApyWithoutRewards

netApyExcludingRewards

2026-02-15

VaultState.rewards

allRewards

2026-03-30

VaultState.weeklyApy

avgNetApyExcludingRewards

2026-02-15

VaultState.weeklyNetApy

avgNetApy

2026-02-15

The below fields will be fully removed from the Morpho API on October 21, 2026

Deprecated Field

Replacement

Deprecation date

Asset.priceUsd

price.usd

2026-03-19

Market.oracleAddress

oracle.address

2025-10-14

Market.targetBorrowUtilization

N/A

2026-04-13

Market.targetWithdrawUtilization

N/A

2026-04-13

VaultMetadata.forumLink

N/A

2026-04-10

VaultV2Metadata.forumLink

N/A

2026-04-10


Morpho Vault V1 - historical admin fields deprecation

Implemented on April 23, 2026

Announced on April 23, 2026

The jobs backing the admin-address time series on Morpho Vaults V1 have been retired. The following fields remain in the schema for backwards compatibility but are no longer maintained and will be removed at a later stage.

Deprecated fields & alternatives

Field

Alternative

vault.historicalState.curator

vault.adminEvents(where: { type_in: ["setCurator"] })

vault.historicalState.feeRecipient

vault.adminEvents(where: { type_in: ["setFeeRecipient"] })

vault.historicalState.guardian

vault.adminEvents(where: { type_in: ["setGuardian"] })

vault.historicalState.owner

vault.adminEvents(where: { type_in: ["ownershipTransferred"] })

vault.historicalState.skimRecipient

vault.adminEvents(where: { type_in: ["setSkimRecipient"] })

Apply the same pattern for the other four fields, using the matching type_in value and ... on <Event>Data fragment:

setFeeRecipient

SetFeeRecipientEventData { feeRecipient }

setGuardian

SetGuardianEventData { guardian }

vault.historicalState.guardian

vault.adminEvents(where: { type_in: ["setGuardian"] })

ownershipTransferred

OwnershipEventData { owner }

setSkimRecipient

SetSkimRecipientEventData { skimRecipient }


Legacy rewards API deprecation

Implemented on 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.roeUsd

  • vaultPosition.historicalState.pnl/pnlUsd/roe/roeUsd

  • vaultV2Position.roeUsd

  • vaultV2Position.historicalState.pnl/pnlUsd/roe/roeUsd

  • marketPosition.state.pnl/pnlUsd/roe/roeUsd

  • marketPosition.state.supplyPnl/supplyPnlUsd/supplyRoe/supplyRoeUsd

  • marketPosition.state.borrowRoeUsd

  • marketPosition.state.collateralPnlUsd/collateralRoeUsd

  • marketPosition.state.marginPnl/marginPnlUsd/marginRoe/marginRoeUsd

  • marketPosition.historicalState.supplyPnl/supplyPnlUsd/supplyRoe/supplyRoeUsd

  • marketPosition.historicalState.borrowPnl/borrowPnlUsd/borrowRoe/borrowRoeUsd

  • marketPosition.historicalState.collateralPnlUsd/collateralRoeUsd

  • marketPosition.historicalState.marginPnl/marginPnlUsd/marginRoe/marginRoeUsd

  • user.state.vaultsPnlUsd/vaultsRoeUsd/vaultV2sPnlUsd/vaultV2sRoeUsd/marketsPnlUsd/marketsRoeUsd/marketsSupplyPnlUsd/marketsSupplyRoeUsd/marketsBorrowPnlUsd/marketsBorrowRoeUsd/marketsCollateralPnlUsd/marketsCollateralRoeUsd/marketsMarginPnlUsd/marketsMarginRoeUsd

  • user.historicalState.vaultsPnlUsd/vaultsRoeUsd/vaultV2sPnlUsd/vaultV2sRoeUsd/marketsPnlUsd/marketsRoeUsd/marketsSupplyPnlUsd/marketsSupplyRoeUsd/marketsBorrowPnlUsd/marketsBorrowRoeUsd/marketsCollateralPnlUsd/marketsCollateralRoeUsd/marketsMarginPnlUsd/marketsMarginRoeUsd

The fields that will be kept are:

  • vaultPosition.state.pnl

  • vaultPosition.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.roe

  • vaultV2Position.pnl/pnlUsd/roe

  • marketPosition.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

_crossVersionVaults

NA

marketAverageApys

market(s).state

transactionByHash

NA

marketOracleAccuracy

NA

asset.historicalSpotPriceEth

NA

asset.spotPriceEth

NA

asset.riskAnalysis

NA

asset.totalSupply

NA

curators.items.url

curators.items.socials.url

market(s).allTimeApys

market(s).dailyApys

market(s).monthlyApys

market(s).quaterlyApys

market(s).weeklyApys

market(s).yearlyApys

market(s).state.allTimeBorrowApy

market(s).state.dailyApys

market(s).state.monthlyApys

market(s).state.quaterlyApys

market(s).state.weeklyApys

market(s).state.yearlyApys

market(s).collateralPrice

market(s).state.price

market(s).concentration

NA

market(s).oracleAddress

market(s).oracleFeed

market(s).oracleInfo

market(s).oracle.address

market(s).oracle.data...

market(s).oracle.data...

vault(s).dailyApy(s)

vault(s).monthlyApy(s)

vault(s).weeklyApy(s)

vault(s).pendingCaps

vault(s).state.dailyApy

vault(s).state.monthlyApy

vault(s).state.weeklyApy

vault(s).state.pendingConfigs

marketPosition(s).borrowAssets

marketPosition(s).borrowAssetsUsd

marketPosition(s).borrowShares

marketPosition(s).collateral

marketPosition(s).collateralUsd

marketPosition(s).supplyAssets

marketPosition(s).supplyAssetsUsd

marketPosition(s).supplyShares

marketPosition(s).state.borrowAssets

marketPosition(s).state.borrowAssetsUsd

marketPosition(s).state.borrowShares

marketPosition(s).state.collateral

marketPosition(s).state.collateralUsd

marketPosition(s).state.supplyAssets

marketPosition(s).state.supplyAssetsUsd

marketPosition(s).state.supplyShares

vaultPosition(s).assets

vaultPosition(s).assetsUsd

vaultPosition(s).shares

vaultPosition(s).state.assets

vaultPosition(s).state.assetsUsd

vaultPosition(s).state.shares

on MorphoChainlinkOracleV2Data

.baseVault


on MorphoChainlinkOracleV2Data

.quoteVault

on MorphoChainlinkOracleData

.vault

on MorphoChainlinkOracleV2Data

.baseOracleVault


on MorphoChainlinkOracleV2Data .quoteOracleVault

on MorphoChainlinkOracleData

.baseOracleVault

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)


Did this answer your question?