Skip to main content
GET
Returns every active market recorded on the instance bound to your API key: the markets it deployed and the markets it took the lender-of-record role on. Archived and inactive markets are excluded. The stored record is served by default and onChain is null. Live per-market state is opt-in through includeOnChain, because enriching a list runs a position sync per market and turns a list read into an unbounded chain scan. For live state on a single market, prefer Get Market or Get Market Metrics. Enrichment is best effort. When the chain cannot be read for a market, its onChain block carries isOnChain: false and zeroed figures, plus readFailed: true for a market that has a deployed contract. The stored fields are served regardless, so check onChain.isOnChain before reading from it.

Query Parameters

boolean
default:"false"
Set to true to read live contract state for every market in the list. Any other value leaves onChain as null.

Response Fields

object

Lender of record

array

Rate and term offering

Set at deployment. The rate mode, fixed-rate ceiling, term configuration, extension switch and reserve ratio can each change afterwards through their own endpoints. These columns are healed from the chain whenever the market is read in detail or an offering change is confirmed, so a list read can trail the chain. Rate values are basis-point strings, durations are strings of seconds.
array

Oracle staleness

Read once per oracle across the whole list and attached to every market, so the list is safe to poll.
array
The stored totals are refreshed when loan and liquidity transactions are confirmed through this API, and when the market is synchronized from the chain. Treat the onChain block as authoritative for live figures.

Market IDs

Every route that takes marketId in its path, and Get Router Stats in its query, takes the market’s record ID: the id this list returns, such as cmssh7p1k0001cghxq2m4v8rz. The market’s contract address is marketAddress, and it is not accepted in its place. Each instance that deployed a market or took the lender-of-record role on it keeps its own record of the market, so one contract address can carry a different ID on each instance. A contract address sent as marketId answers 404 MARKET_NOT_FOUND. When your instance holds a market at that address, the message names its record ID, and details carries marketId and marketAddress, so the call can be repeated with the ID. When it holds none, details carries marketAddress alone. Any other ID your instance does not hold answers MARKET_NOT_FOUND with no details.
The queue and adoption routes, the asset data routes and the pledge routes are keyed by the contract address instead. See Base Path.