Browse all leverage pairs
GET/v1/data/lending/pairs/leverage
Returns raw materialized view rows with all rate and liquidity fields. Supports single-chain address filtering or cross-chain asset-group mode.
Pairs whose COLLATERAL leg has no remaining supply capacity (depositableLong <= 0) are dropped by default — a market that cannot take the deposit is not an opportunity at any rate, and those rows sort to the top of an APR ranking precisely because nobody can reach them. depositableLong: null means uncapped, i.e. unlimited, and always passes. includeIlliquid=true keeps them.
Plain-text reference — GET /v1/data/lending/pairs/leverage
Parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chainId | query | string | no | Single chain ID (address-based filtering). Omit for cross-chain asset-group mode. See the ChainId schema for the full set of supported chains. |
chainIds | query | string | no | Comma-separated chain IDs for multi-chain (asset-group filtering) See the ChainId schema for the full set of supported chains. |
lender | query | string | no | Lender filter (UPPER_SNAKE_CASE) See the LenderId schema for the full set of accepted values. |
minApr | query | number | no | Minimum total APR |
maxApr | query | number | no | Maximum total APR |
minLeverage | query | number | no | Minimum leverage |
assetLong | query | string | no | Long asset address (single-chain mode) |
assetShort | query | string | no | Short asset address (single-chain mode) |
assetGroupLong | query | string | no | Long asset group (ILIKE partial match) |
assetGroupShort | query | string | no | Short asset group (ILIKE partial match) |
minDepositApr | query | number | no | Min effective deposit APR (deposit_rate + intrinsic_yield) |
minLtv | query | number | no | Minimum LTV ratio (0-1) |
maxBorrowRate | query | number | no | Max effective borrow rate (borrow_rate + intrinsic_yield) |
includeIlliquid | query | boolean | no | Keep pairs whose collateral leg has no remaining supply capacity (un-openable at any size). Off by default. |
minLiquidityUsdLong | query | number | no | Min collateral-side liquidity USD. This is withdrawable CASH in the market, NOT deposit capacity — see includeIlliquid for the capacity gate. |
minDepositsUsdLong | query | number | no | Min collateral-side deposits USD |
maxUtilizationLong | query | number | no | Max collateral-side utilization (0-1) |
minBorrowLiquidityUsd | query | number | no | Min debt-side borrow liquidity USD |
minDebtUsdShort | query | number | no | Min debt-side total debt USD |
maxUtilizationShort | query | number | no | Max debt-side utilization (0-1) |
start | query | integer | no | Pagination offset |
count | query | integer | no | Page size (max 100) |
sortBy | query | aprTotal, maxLeverage, depositRateLong, variableBorrowRateShort, intrinsicYieldLong, intrinsicYieldShort, … (13 values) | no | Sort field |
sortDir | query | ASC, DESC | no | Sort direction |
Response 200
| Field | Type | Description |
|---|---|---|
success | True | |
data | object | |
data.start | integer | |
data.count | integer | Number of entries in items. |
data.items | object[] | The result set for this response. |
data.items[].chainId | string | EVM chain id, as a decimal string. See the ChainId schema. |
data.items[].lender | string | Protocol identifier. See the LenderId schema. |
data.items[].marketLongUid | string | Market UID of the collateral side |
data.items[].marketShortUid | string | Market UID of the debt side |
data.items[].marketNameLong | string | Display name of the collateral market/vault (e.g. the Euler eVault name). Disambiguates rows that share the collateral/debt token symbols and lender. |
data.items[].marketNameShort | string | Display name of the debt market/vault. For Euler this is the controller (debt) eVault — the primary way to tell otherwise-identical WETH→USDC rows apart. |
data.items[].curatorNameLong | string | Curator/brand of the collateral market (Euler: resolved from the vault governor). Null for lenders without a curator, or until the curator registry is seeded. Render as "curatorName + symbol", falling back to marketNameLong. |
data.items[].curatorNameShort | string | Curator/brand of the debt (controller) market. Same semantics as curatorNameLong. |
data.items[].assetLong | string | Collateral asset address |
data.items[].assetShort | string | Debt asset address |
data.items[].assetGroupLong | string | |
data.items[].assetGroupShort | string | |
data.items[].symbolLong | string | Collateral token symbol |
data.items[].nameLong | string | Collateral token name |
data.items[].symbolShort | string | Debt token symbol |
data.items[].nameShort | string | Debt token name |
data.items[].collateralFactorLong | number | Liquidation collateral factor for the long side |
data.items[].borrowCollateralFactorLong | number | Borrow-adjusted collateral factor for the long side |
data.items[].borrowFactorLong | number | Borrow factor for the long side |
data.items[].collateralDisabledLong | boolean | Whether collateral is disabled for the long asset |
data.items[].debtDisabledLong | boolean | Whether debt is disabled for the long asset |
data.items[].collateralFactorShort | number | Liquidation collateral factor for the short side |
data.items[].borrowCollateralFactorShort | number | Borrow-adjusted collateral factor for the short side |
data.items[].borrowFactorShort | number | Borrow factor for the short side |
data.items[].collateralDisabledShort | boolean | Whether collateral is disabled for the short asset |
data.items[].debtDisabledShort | boolean | Whether debt is disabled for the short asset |
data.items[].eModeConfigId | string | E-mode configuration ID |
data.items[].eMode | string | E-mode category |
data.items[].aprBase | number | Base APR (deposit - borrow + intrinsic, before rewards) |
data.items[].aprTotal | number | Total APR (base + rewards) |
data.items[].maxLeverage | number | Highest leverage multiple reachable in this market. |
data.items[].ltv | number | Loan-to-value ratio (0-1) |
data.items[].depositRateLong | number | |
data.items[].variableBorrowRateShort | number | |
data.items[].intrinsicYieldLong | number |
Example response
{
"success": true,
"data": {
"start": 1,
"count": 1,
"items": [
{
"chainId": "1",
"lender": "AAVE_V3",
"marketLongUid": "string",
"marketShortUid": "string",
"marketNameLong": "string",
"marketNameShort": "string",
"curatorNameLong": "string",
"curatorNameShort": "string",
"assetLong": "string",
"assetShort": "string",
"assetGroupLong": "string",
"assetGroupShort": "string",
"symbolLong": "string",
"nameLong": "string",
"symbolShort": "string",
"nameShort": "string",
"collateralFactorLong": 0.94,
"borrowCollateralFactorLong": 0.92,
"borrowFactorLong": 1,
"collateralDisabledLong": true,
"debtDisabledLong": true,
"collateralFactorShort": 0.94,
"borrowCollateralFactorShort": 0.92,
"borrowFactorShort": 1,
"collateralDisabledShort": true,
"debtDisabledShort": true,
"eModeConfigId": "string",
"eMode": "string",
"aprBase": 1.0,
"aprTotal": 1.0,
"maxLeverage": 1.0,
"ltv": 1.0,
"depositRateLong": 1.0,
"variableBorrowRateShort": 1.0,
"intrinsicYieldLong": 1.0,
"intrinsicYieldShort": 1.0,
"variableBorrowDisabledShort": true,
"termsShort": [
{
"termId": 2,
"depositApr": 1.0,
"available": 1.0,
"durationDays": 7,
"durationSecs": 604800,
"apr": 3.85,
"aprAtAmount": 1.0,
"fillable": 1.0,
"capped": true,
"ladder": [
{
"apr": 1.0,
"units": "string",
"assets": 1.0
}
]
}
],
"fixedTerm": {
"model": "term",
"maturity": 1,
"fees": {},
"earlyRepay": {},
"provider": {},
"auction": {
"status": "open",
"canBorrow": true,
"canLend": true,
"secondsUntilClose": 263000,
"implications": [
"string"
],
"id": "string",
"startTime": 1,
"revealTime": 1,
"endTime": 1,
"minBorrowAmount": "1000000000",
"minLendAmount": "1000000000"
}
},
"rewardAprLong": 1.0,
"rewardAprShort": 1.0,
"rewardsLong": [
{}
],
"rewardsShort": [
{}
],
"totalDepositsLong": 1.0,
"totalDebtLong": 1.0,
"totalLiquidityLong": 1.0,
"totalDepositsShort": 1.0,
"totalDebtShort": 1.0,
"totalLiquidityShort": 1.0,
"totalDepositsUsdLong": 1.0,
"totalDebtUsdLong": 1.0,
"totalLiquidityUsdLong": 1.0,
"totalDepositsUsdShort": 1.0,
"totalDebtUsdShort": 1.0,
"totalLiquidityUsdShort": 1.0,
"borrowLiquidityShort": 1.0,
"withdrawLiquidityLong": 1.0,
"depositableLong": 1.0,
"utilizationLong": 1.0,
"utilizationShort": 1.0,
"underlyingInfoLong": {
"asset": {},
"prices": {},
"oraclePrice": {}
},
"underlyingInfoShort": {
"asset": {},
"prices": {},
"oraclePrice": {}
}
}
]
}
}
Request
Responses
- 200
- 400
- 429
- 500
- 502
Paginated leverage pairs
Validation error
Rate limited. Unauthenticated callers share a per-IP budget; send an x-api-key header to lift it. Retry with exponential backoff.
Unexpected server error. Safe to retry with backoff.
An upstream data source or protocol origin failed (error.code is ORIGIN_FAILED). error.details carries the per-origin status. This is also what a missing or malformed required parameter currently returns, rather than a 400.