curl --request GET \
--url https://api.vaults.fyi/beta/borrow/markets/ \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vaults.fyi/beta/borrow/markets/"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.vaults.fyi/beta/borrow/markets/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vaults.fyi/beta/borrow/markets/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaults.fyi/beta/borrow/markets/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vaults.fyi/beta/borrow/markets/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vaults.fyi/beta/borrow/markets/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"itemsOnPage": 123,
"data": [
{
"marketId": "<string>",
"name": "<string>",
"network": {
"name": "mainnet",
"chainId": 123,
"networkCaip": "<string>"
},
"protocol": {
"protocolId": "<string>",
"name": "<string>",
"displayName": "<string>",
"product": "<string>",
"version": "<string>",
"protocolUrl": "<string>",
"description": "<string>",
"protocolLogo": "<string>"
},
"marketRootAddress": "<string>",
"assetsData": [
{
"marketAssetId": "<string>",
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>",
"oraclePriceUsd": "<string>"
},
"isCollateralEnabled": true,
"supportsHistoricalData": true,
"assetConfig": {
"isBorrowEnabled": true,
"borrowInterestFeeRate": 0.5,
"borrowCap": "<string>",
"supplyCap": "<string>"
},
"supplyRate": 1,
"borrowRate": 1,
"utilizationRate": 1,
"totalSupplied": {
"native": "<string>",
"usd": "<string>"
},
"totalBorrowed": {
"native": "<string>",
"usd": "<string>"
},
"availableLiquidity": {
"native": "<string>",
"usd": "<string>"
},
"availableToBorrow": {
"native": "<string>",
"usd": "<string>"
},
"interestRateModel": {
"model": "single-kink",
"baseRate": 1,
"optimalUtilization": 0.5,
"slope1": 1,
"slope2": 1
},
"defaultRiskParameters": {
"maxLtv": 0.5,
"liquidationThreshold": 0.5,
"liquidationPenalty": 0.5
},
"pairwiseRiskParameters": {}
}
]
}
],
"errors": {
"unsupportedNetworks": [
"<string>"
],
"unsupportedCollateralAssets": [
"<string>"
],
"unsupportedBorrowAssets": [
"<string>"
],
"unsupportedProtocols": [
"<string>"
]
},
"nextPage": 123
}{
"statusCode": 123,
"error": "Bad Request",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Unauthorized",
"message": "An API key is required to access this service. Sign up at https://portal.vaults.fyi/signup to generate a key. We offer a Pay-As-You-Go plan so you only pay for what you use, with no commitments.",
"errorId": "<string>"
}{
"x402Version": 123,
"resource": {
"url": "<string>",
"description": "<string>",
"mimeType": "<string>",
"serviceName": "<string>",
"tags": [
"<string>"
],
"iconUrl": "<string>"
},
"error": "<string>",
"accepts": [
{
"scheme": "exact",
"network": "<string>",
"amount": "<string>",
"payTo": "<string>",
"maxTimeoutSeconds": 123,
"asset": "<string>",
"extra": {
"name": "<string>",
"version": "<string>"
}
}
],
"extensions": {}
}{
"error": "Forbidden",
"message": "This API key has exhausted its available credits. To resume service, please visit https://portal.vaults.fyi/signup to top-up your credits",
"errorId": "<string>"
}{
"error": "Not Found",
"message": "<string>"
}{
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Unprocessable Entity",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Internal Server Error",
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Service Unavailable",
"message": "<string>",
"errorId": "<string>"
}List borrow markets
Retrieves a paginated list of supported borrow markets across all supported networks.
curl --request GET \
--url https://api.vaults.fyi/beta/borrow/markets/ \
--header 'x-api-key: <api-key>'import requests
url = "https://api.vaults.fyi/beta/borrow/markets/"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.vaults.fyi/beta/borrow/markets/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vaults.fyi/beta/borrow/markets/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaults.fyi/beta/borrow/markets/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vaults.fyi/beta/borrow/markets/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vaults.fyi/beta/borrow/markets/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"itemsOnPage": 123,
"data": [
{
"marketId": "<string>",
"name": "<string>",
"network": {
"name": "mainnet",
"chainId": 123,
"networkCaip": "<string>"
},
"protocol": {
"protocolId": "<string>",
"name": "<string>",
"displayName": "<string>",
"product": "<string>",
"version": "<string>",
"protocolUrl": "<string>",
"description": "<string>",
"protocolLogo": "<string>"
},
"marketRootAddress": "<string>",
"assetsData": [
{
"marketAssetId": "<string>",
"asset": {
"address": "<string>",
"assetCaip": "<string>",
"name": "<string>",
"symbol": "<string>",
"decimals": 123,
"assetGroup": "<string>",
"assetLogo": "<string>",
"assetPriceInUsd": "<string>",
"oraclePriceUsd": "<string>"
},
"isCollateralEnabled": true,
"supportsHistoricalData": true,
"assetConfig": {
"isBorrowEnabled": true,
"borrowInterestFeeRate": 0.5,
"borrowCap": "<string>",
"supplyCap": "<string>"
},
"supplyRate": 1,
"borrowRate": 1,
"utilizationRate": 1,
"totalSupplied": {
"native": "<string>",
"usd": "<string>"
},
"totalBorrowed": {
"native": "<string>",
"usd": "<string>"
},
"availableLiquidity": {
"native": "<string>",
"usd": "<string>"
},
"availableToBorrow": {
"native": "<string>",
"usd": "<string>"
},
"interestRateModel": {
"model": "single-kink",
"baseRate": 1,
"optimalUtilization": 0.5,
"slope1": 1,
"slope2": 1
},
"defaultRiskParameters": {
"maxLtv": 0.5,
"liquidationThreshold": 0.5,
"liquidationPenalty": 0.5
},
"pairwiseRiskParameters": {}
}
]
}
],
"errors": {
"unsupportedNetworks": [
"<string>"
],
"unsupportedCollateralAssets": [
"<string>"
],
"unsupportedBorrowAssets": [
"<string>"
],
"unsupportedProtocols": [
"<string>"
]
},
"nextPage": 123
}{
"statusCode": 123,
"error": "Bad Request",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Unauthorized",
"message": "An API key is required to access this service. Sign up at https://portal.vaults.fyi/signup to generate a key. We offer a Pay-As-You-Go plan so you only pay for what you use, with no commitments.",
"errorId": "<string>"
}{
"x402Version": 123,
"resource": {
"url": "<string>",
"description": "<string>",
"mimeType": "<string>",
"serviceName": "<string>",
"tags": [
"<string>"
],
"iconUrl": "<string>"
},
"error": "<string>",
"accepts": [
{
"scheme": "exact",
"network": "<string>",
"amount": "<string>",
"payTo": "<string>",
"maxTimeoutSeconds": 123,
"asset": "<string>",
"extra": {
"name": "<string>",
"version": "<string>"
}
}
],
"extensions": {}
}{
"error": "Forbidden",
"message": "This API key has exhausted its available credits. To resume service, please visit https://portal.vaults.fyi/signup to top-up your credits",
"errorId": "<string>"
}{
"error": "Not Found",
"message": "<string>"
}{
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Unprocessable Entity",
"message": "<string>",
"errorId": "<string>"
}{
"error": "Internal Server Error",
"message": "<string>",
"errorId": "<string>"
}{
"statusCode": 123,
"error": "Service Unavailable",
"message": "<string>",
"errorId": "<string>"
}Authorizations
Query Parameters
Page number (starting from 0)
x >= 0Number of items per page
0 < x <= 1000Networks to be included by canonical network slug.
mainnet, optimism, arbitrum, polygon, gnosis, base, unichain, swellchain, celo, worldchain, berachain, ink, bsc, hyperliquid, plasma, avalanche, katana, linea, mega-eth, monad, etherlink, robinhood Networks to be excluded by canonical network slug. Ignored if allowedNetworks is specified.
mainnet, optimism, arbitrum, polygon, gnosis, base, unichain, swellchain, celo, worldchain, berachain, ink, bsc, hyperliquid, plasma, avalanche, katana, linea, mega-eth, monad, etherlink, robinhood Collateral assets to be included by symbol, name, or address.
1Collateral assets to be excluded by symbol, name, or address. Ignored if allowedCollateralAssets is specified.
1Borrow assets to be included by symbol, name, or address.
1Borrow assets to be excluded by symbol, name, or address. Ignored if allowedBorrowAssets is specified.
1Protocols to be included by protocol ID or name.
1Protocols to be excluded by protocol ID or name. The parameter is ignored if "allowedProtocols" is specified.
1Minimum borrow market TVL in USD, computed from total supplied assets.
x >= 0Maximum borrow market TVL in USD, computed from total supplied assets.

