Morpho Blue
For developers, query Morpho Blue market data, asset prices and yield, positions, oracle data, and historical APYs through REST.
How to query Morpho Blue data with the API?
The examples below use the REST API.
- REST calls use public
GETrequests againsthttps://api.morpho.orgwith standard public rate limits. Markets are addressed by a<chainId>:<marketId>selector and tokens by<chainId>:<address>. REST provides single-entity reads, a cursor-paginated market list throughGET /v1/blue/markets, and versioned lists of a user's vault positions. Aggregate cross-market overviews, oracle feed composition, USD-denominated market and position metrics, and reward APRs aren't available in the REST API yet. Current token USD spot prices are available throughGET /v0/tokens/{token-selector}/price.
Discovery and Listing
Markets List
GET /v1/blue/markets
curl -sS "https://api.morpho.org/v1/blue/markets?chain_id=8453&listed=true&limit=100" \
-H "accept: application/json"REST lists markets with cursor pagination and supports chain_id, loan_token, collateral_token, and listed filters. Broader sorting and aggregate filters aren't available in the REST API yet.
Market Parameters
GET /v0/blue/markets/{market-selector}
curl -sS "https://api.morpho.org/v0/blue/markets/8453:0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836" \
-H "accept: application/json"REST reads one market at a time by <chainId>:<marketId>. The response gives the immutable config: loan_token, collateral_token, oracle_address, irm_address, and lltv_wad. Use GET /v1/blue/markets to enumerate and filter across markets by chain_id, loan_token, collateral_token, and listed.
Market Metrics
Total Collateral, Borrow & Supply
GET /v0/blue/markets/{market-selector}/state
curl -sS "https://api.morpho.org/v0/blue/markets/8453:0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836/state" \
-H "accept: application/json"/state returns total_supply_assets, total_borrow_assets, their share counts (total_supply_shares, total_borrow_shares), and fee_wad. USD-denominated values and aggregate collateral totals aren't available in the REST API yet.
Market APY (Native & Rewards)
GET /v0/blue/markets/{market-selector}/apy-averages
curl -sS "https://api.morpho.org/v0/blue/markets/8453:0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836/apy-averages" \
-H "accept: application/json"/apy-averages returns supply_apy_averages and borrow_apy_averages, each keyed by fixed trailing windows (24h, 7d, 30d, 90d, 1y). Values exclude rewards — reward APRs aren't available in the REST API yet.
Asset Information
Assets (Price & Yield)
GET /v0/tokens/{token-selector}
GET /v0/tokens/{token-selector}/price
# Token identity + metadata
curl -sS "https://api.morpho.org/v0/tokens/1:0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0" \
-H "accept: application/json"
# Canonical USD spot price
curl -sS "https://api.morpho.org/v0/tokens/1:0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0/price" \
-H "accept: application/json"REST reads one token at a time by <chainId>:<address>. GET /v0/tokens/{token-selector} returns identity and metadata under data: chain_id, address, name, symbol, decimals, logo_uri, and tags. GET /v0/tokens/{token-selector}/price returns the token's chain_id and address alongside its USD spot-price data:
priceis the spot price in USD.timestampis the price point's Unix timestamp in seconds, encoded as a string.provideridentifies the upstream price data provider.
A known token without an available price returns HTTP 206 with price, timestamp, and provider set to null. An unknown token returns HTTP 404. Native token yield and multi-asset symbol filtering aren't available in the REST API yet.
Position Tracking
User Positions
User All Markets Position
GET /v0/blue/markets/{market-selector}/users/{user-address}/position
GET /v0/blue/markets/{market-selector}/users/{user-address}/position/performance
# Current market position
curl -sS "https://api.morpho.org/v0/blue/markets/1:0x698fe98247a40c5771537b5786b2f3f9d78eb487b4ce4d75533cd0e94d88a115/users/0xabcdefabcdefabcdefabcdefabcdefabcdefabcd/position" \
-H "accept: application/json"
# Realized and unrealized position performance
curl -sS "https://api.morpho.org/v0/blue/markets/1:0x698fe98247a40c5771537b5786b2f3f9d78eb487b4ce4d75533cd0e94d88a115/users/0xabcdefabcdefabcdefabcdefabcdefabcdefabcd/position/performance" \
-H "accept: application/json"REST returns a single user's position in a market — collateral_assets, supply_shares, and borrow_shares — keyed by <chainId>:<marketId> and user address. The performance route adds supply_net_earnings_assets, supply_return_on_capital, borrow_net_cost_assets, and borrow_cost_on_capital under average-cost accounting. Listing every position in a market, and USD-denominated values, aren't available in the REST API yet.
User Market Position
GET /v0/blue/markets/{market-selector}/users/{user-address}/position
GET /v1/vaults-v2/users/{user-address}/positions
# Market position
curl -sS "https://api.morpho.org/v0/blue/markets/1:0x698fe98247a40c5771537b5786b2f3f9d78eb487b4ce4d75533cd0e94d88a115/users/0x821880a3E2bac432d67E5155e72BB655Ef65fa5E/position" \
-H "accept: application/json"
# Vault V2 positions
curl -sS "https://api.morpho.org/v1/vaults-v2/users/0x821880a3E2bac432d67E5155e72BB655Ef65fa5E/positions?chain_ids=1&active_only=true&limit=100" \
-H "accept: application/json"REST reads Morpho Blue market positions one market at a time and lists a user's vault positions separately for V1 and V2. A combined cross-market/cross-vault overview and combined transaction feed aren't available in the REST API yet. Per-user vault activity is available through GET /v0/vaults-v1/{vault-selector}/users/{user-address}/position/activity and GET /v0/vaults-v2/{vault-selector}/users/{user-address}/position/activity; Morpho Blue market-position history is available through GET /v0/blue/markets/{market-selector}/users/{user-address}/position/history.
All Market Positions
GET /v0/blue/markets/{market-selector}/users/{user-address}/position
curl -sS "https://api.morpho.org/v0/blue/markets/1:0x698fe98247a40c5771537b5786b2f3f9d78eb487b4ce4d75533cd0e94d88a115/users/0xabcdefabcdefabcdefabcdefabcdefabcdefabcd/position" \
-H "accept: application/json"REST returns one user's position in a market (collateral_assets, supply_shares, borrow_shares). Listing every position in a market, and USD-denominated values, aren't available in the REST API yet.
Risk & Oracle Data
Oracle Data
More on oracles and ChainlinkOracleV2 oracles in the oracle section here.
All Markets
GET /v0/oracles/{oracle-selector}/state
curl -sS "https://api.morpho.org/v0/oracles/1:0x2a01EB9496094dA03c4E364Def50f5aD1280AD72/state" \
-H "accept: application/json"REST exposes the oracle's live quote — price, last_updated_at, last_indexed_block — by <chainId>:<oracleAddress>. Oracle feed composition isn't available in the REST API yet.
Specific Market
GET /v0/oracles/{oracle-selector}/state
curl -sS "https://api.morpho.org/v0/oracles/1:0x2a01EB9496094dA03c4E364Def50f5aD1280AD72/state" \
-H "accept: application/json"REST exposes the oracle's live quote (price, last_updated_at, last_indexed_block) by <chainId>:<oracleAddress>; the feed composition isn't available in the REST API yet.
Historical Data
REST returns trailing market APY and state history through GET /v0/blue/markets/{market-selector}/apy/history and GET /v0/blue/markets/{market-selector}/state/history, using the lookback query parameter with one of one_day, seven_days, thirty_days, ninety_days, one_year, or inception.
Historical APYs
GET /v0/blue/markets/{market-selector}/apy/history
curl -sS "https://api.morpho.org/v0/blue/markets/8453:0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836/apy/history?lookback=thirty_days" \
-H "accept: application/json"REST returns trailing supply/borrow APY history via fixed lookback windows (one_day, seven_days, thirty_days, ninety_days, one_year, inception). Arbitrary time ranges and custom intervals aren't available in the REST API yet.
Historical Market States
GET /v0/blue/markets/{market-selector}/state/history
curl -sS "https://api.morpho.org/v0/blue/markets/1:0x608929d6de2a10bacf1046ff157ae38df5b9f466fb89413211efb8f63c63833a/state/history?lookback=thirty_days" \
-H "accept: application/json"/state/history returns trailing total_supply_assets / total_borrow_assets history via fixed lookback windows (one_day … inception). USD-denominated series aren't available in the REST API yet.
Historical Asset Price
GET /v0/tokens/{token-selector}/price
curl -sS "https://api.morpho.org/v0/tokens/1:0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0/price" \
-H "accept: application/json"REST returns the current USD spot price (price, timestamp, provider); a historical price series isn't available in the REST API yet.
Morpho Midnight
For developers, query Morpho Midnight market data, books and quotes, positions, transactions, offer groups, and mempool validation through its REST API.
Morpho Vaults
Query Morpho Vault API data for discovery, metrics, curation, roles, fee wrappers, positions, earnings, and historical allocation and yield.