Get Borrow Vaults
Retrieve all Fluid borrow vaults and their current market data for a specific chain.
Each vault represents a collateral/borrow market (e.g., ETH as collateral, USDC as borrow token).
Endpoint
GET /v2/{chainId}/vaultsBase URL
https://api.fluid.instadapp.ioPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
chainId | integer | Yes | The chain ID (e.g., 1 for Ethereum mainnet). |
Example Request
curl -X GET "https://api.fluid.instadapp.io/v2/1/vaults"Response
Returns an array of vault objects, each describing a single borrow vault and its configuration, tokens, and current liquidity state.
Response Structure
[
{
"id": "string",
"type": "string",
"address": "string",
"supplyToken": {
"token0": { "...": "Asset Object" },
"token1": { "...": "Asset Object (zero address for single-token vaults)" }
},
"borrowToken": {
"token0": { "...": "Asset Object" },
"token1": { "...": "Asset Object (zero address for single-token vaults)" }
},
"rewards": [ "...Vault Reward Object..." ],
"totalSupply": "string",
"totalSupplyLiquidity": "string",
"totalBorrow": "string",
"totalBorrowLiquidity": "string",
"collateralFactor": "integer",
"liquidationThreshold": "integer",
"liquidationMaxLimit": "integer",
"liquidationPenalty": "integer",
"withdrawalGap": "integer",
"withdrawLimit": "string",
"withdrawableUntilLimit": "string",
"withdrawable": "string",
"borrowLimit": "string",
"borrowableUntilLimit": "string",
"borrowable": "string",
"borrowLimitUtilization": "string",
"minimumBorrowing": "string",
"totalPositions": "integer",
"oracle": "string",
"oraclePriceLiquidate": "string",
"oraclePriceOperate": "string",
"metadata": { "pegged": "boolean" },
"liquiditySupplyData": {
"token0": { "...": "Liquidity Token Data Object" },
"token1": { "...": "Liquidity Token Data Object" },
"dex": { "...": "DEX AMM data (advanced)" }
},
"liquidityBorrowData": {
"token0": { "...": "Liquidity Token Data Object" },
"token1": { "...": "Liquidity Token Data Object" },
"dex": { "...": "DEX AMM data (advanced)" }
},
"supplyDexData": { "...": "DEX AMM data for collateral side (advanced)" },
"borrowDexData": { "...": "DEX AMM data for borrow side (advanced)" }
}
]Vault Object
| Field | Type | Description |
|---|---|---|
id | string | Vault identifier used by the API. |
type | string | Vault type/category (e.g., 1, 2, 3, 4 – internal protocol classifications). |
address | string | Vault contract address. |
supplyToken | object | Collateral token pair used for supplying (see Token Pair Object). |
borrowToken | object | Borrow token pair used for borrowing (see Token Pair Object). |
rewards | array | Optional array of reward programs for borrowing/supplying (see Vault Reward Object). |
totalSupply | string | Total collateral supplied to the vault (in collateral token0 decimals). |
totalSupplyLiquidity | string | Total supply including interest/liquidity adjustments. |
totalBorrow | string | Total amount borrowed from the vault (in borrow token0 decimals). |
totalBorrowLiquidity | string | Total borrow including interest/liquidity adjustments. |
collateralFactor | integer | Maximum borrowable percentage of collateral in basis points (e.g., 8500 = 85%). |
liquidationThreshold | integer | Health factor threshold for liquidation, in basis points (e.g., 9000 = 90%). |
liquidationMaxLimit | integer | Maximum loan-to-value before the entire vault (in borrow token0 decimals). |
borrowableUntilLimit | string | Remaining amount that can be borrowed before hitting borrowLimit. |
borrowable | string | Currently borrowable amount given all protocol constraints. |
borrowLimitUtilization | string | Utilization ratio of borrowLimit (scaled integer). |
minimumBorrowing | string | Minimum borrow amount allowed (in borrow token0 decimals). |
totalPositions | integer | Number of open positions (NFTs) in this vault. |
oracle | string | Address of the price oracle contract used for this vault. |
oraclePriceLiquidate | string | Price used for liquidation checks (scaled integer). |
oraclePriceOperate | string | Price used for operate-level actions (deposits/borrows/repays/withdraws). |
metadata | object | Vault metadata flags, e.g., { "pegged": true }. |
liquiditySupplyData | object | Detailed collateral-side liquidity (see Liquidity Token Data Object). |
liquidityBorrowData | object | Detailed borrow-side liquidity (see Liquidity Token Data Object). |
supplyDexData | object | DEX AMM data for the collateral side (if the vault uses an AMM). |
borrowDexData | object | DEX AMM data for the borrow side (if the vault uses an AMM). |
Token Pair Object
supplyToken and borrowToken share the same structure:
| Field | Type | Description |
|---|---|---|
token0 | object | Primary token for this side (collateral or borrow). |
token1 | object | Secondary token for this side; frequently the zero address placeholder. |
Each token0 / token1 uses the Asset Object format below.
Asset Object
| Field | Type | Description |
|---|---|---|
address | string | Token contract address (or 0xeeee... sentinel for native ETH-like tokens). |
name | string | Token name (e.g., ETH, USD Coin). |
symbol | string | Token symbol (e.g., ETH, USDC). |
decimals | integer | Number of decimals the token uses. |
price | string | Current token price in USD. |
chainId | string | Chain ID as a string (e.g., "1"). |
logoUrl | string | URL for the token logo. |
coingeckoId | string | CoinGecko identifier, if available. |
updatedAt | string | ISO 8601 timestamp of the last price update. |
stakingApr | string | (Optional) Staking APR for LST/LRT tokens (basis points). |
Vault Reward Object
| Field | Type | Description |
|---|---|---|
token | object | Reward token information (uses the Asset Object format). |
rate | string | Reward APR in basis points (e.g., 404 = 4.04%). |
endTime | integer | Unix timestamp (milliseconds) when the reward program ends. |
type | string | (Optional) Reward classification (e.g., borrow). |
rewardType | string | Reward mechanism type (merkle or other). |
metadata | object | Metadata for the reward, e.g., Merkle program details. |
Reward Metadata (Merkle)
If rewardType is merkle, metadata.merkle is:
| Field | Type | Description |
|---|---|---|
programId | string | Identifier for the reward program. |
merkleContract | string | Address of the Merkle distributor contract. |
Liquidity Token Data Object
Used inside liquiditySupplyData.token0, liquidityBorrowData.token0, etc.
| Field | Type | Description |
|---|---|---|
modeWithInterest | boolean | Whether this side accrues interest over time. |
supply / borrow | string | Total supply / borrow on this side (in token decimals). |
withdrawalLimit | string | Per-side withdrawal limit (collateral side only). |
borrowLimit | string | Per-side borrow limit (borrow side only). |
lastUpdateTimestamp | string | Unix timestamp of the last liquidity update. |
expandPercent | string | Limit expansion percentage in basis points. |
expandDuration | string | Expansion duration in seconds. |
baseWithdrawalLimit | string | Base withdrawal cap before expansion. |
baseBorrowLimit | string | Base borrow cap before expansion. |
maxBorrowLimit | string | Maximum possible borrow cap. |
withdrawableUntilLimit | string | Withdrawable amount given the limit. |
withdrawable | string | Currently withdrawable amount. |
borrowableUntilLimit | string | Borrowable amount given the limit. |
borrowable | string | Currently borrowable amount on this side. |
DEX entries (supplyDexData, borrowDexData, and liquidity*Data.dex) contain additional AMM-specific fields (reserves, price, fee, etc.) that are useful for advanced analytics but not required for basic borrowing flows.
Example Response
[
{
"id": "1",
"type": "1",
"address": "0xeAbBfca72F8a8bf14C4ac59e69ECB2eB69F0811C",
"supplyToken": {
"token0": {
"address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"name": "ETH",
"symbol": "ETH",
"decimals": 18,
"price": "1830.23",
"chainId": "1",
"logoUrl": "https://coin-images.coingecko.com/coins/images/279/large/ethereum.png?1696501628",
"coingeckoId": "ethereum",
"updatedAt": "2026-02-24T08:54:03.000+00:00"
},
"token1": {
"address": "0x0000000000000000000000000000000000000000"
}
},
"borrowToken": {
"token0": {
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"price": "0.999877813172",
"chainId": "1",
"logoUrl": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602",
"coingeckoId": "usd-coin",
"updatedAt": "2026-02-24T08:54:01.000+00:00"
},
"token1": {
"address": "0x0000000000000000000000000000000000000000"
}
},
"rewards": [],
"totalSupply": "64125422826312802528397",
"totalSupplyLiquidity": "64125422826282696574237",
"totalBorrow": "84898725823558",
"totalBorrowLiquidity": "84898715340011",
"collateralFactor": 8700,
"liquidationThreshold": 9200,
"liquidationMaxLimit": 9500,
"liquidationPenalty": 100,
"withdrawalGap": 500,
"withdrawLimit": "32062711413141348287118",
"withdrawableUntilLimit": "28856411415386941631194",
"withdrawable": "17638507359050003978161",
"borrowLimit": "127348073010017",
"borrowableUntilLimit": "42449315220648",
"borrowable": "42449315220648",
"borrowLimitUtilization": "243704331491637",
"minimumBorrowing": "11278",
"totalPositions": 878,
"oracle": "0x5b2860C6D6F888319C752aaCDaf8165C21095E3a",
"oraclePriceLiquidate": "1830651198785853618",
"oraclePriceOperate": "1830651198785853618",
"metadata": { "pegged": false },
"liquiditySupplyData": { "...": "..." },
"liquidityBorrowData": { "...": "..." },
"supplyDexData": { "...": "..." },
"borrowDexData": { "...": "..." }
}
]Notes
- All numeric values are returned as strings to avoid precision loss with large numbers.
- Prices (
oraclePrice*, tokenprice) are scaled integers; you may need to divide by asset-specific scaling factors before displaying them. - Factors and limits such as
collateralFactor,liquidationThreshold, andliquidationPenaltyare expressed in basis points. token0is the primary collateral/borrow token;token1is often unused for single-asset vaults.- DEX-related fields are primarily used for advanced routing and analytics and can be ignored for basic borrowing flows.
Error Responses
Standard HTTP error codes may be returned:
400 Bad Request– Invalid parameters (e.g., invalid chain ID).404 Not Found– Chain ID or endpoint not found.500 Internal Server Error– Server error.

