curl --request GET \
--url https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products', 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.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"borrowProducts": [
{
"borrowProductId": "bp_07fb56c0-9afe-5440-8ff2-5b0e115458df",
"network": "base",
"name": "mGLO / USDC",
"venue": {
"venueId": "bp_venue_2978db31-f1ff-570f-8329-6e37d6cae04e",
"entrypointAddress": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb",
"name": "Morpho Blue base-mainnet"
},
"assets": [
{
"assetId": "bp_asset_7426b5c4-a556-5005-8fee-eb156d491aef",
"token": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"capabilities": [
{
"type": "debt",
"enabled": true
}
]
},
{
"assetId": "bp_asset_11c0f1d0-3ff3-535e-9c57-3fbbc44f1b79",
"token": {
"address": "0xfcc9cc1209651ed8867332d6f664cf82743a2584",
"symbol": "mGLO",
"decimals": 18
},
"capabilities": [
{
"type": "collateral",
"enabled": true
}
]
}
],
"snapshot": {
"blockNumber": 49573788,
"blockHash": "0xd8419d2f10b821985b2a2d8b2f15ab3ffc14dc55bcfb75b0537dabaad4ded07c",
"blockTimestamp": 1785936923,
"observedAt": "2026-08-10T20:37:34Z"
},
"protocolDetails": {
"type": "morpho_blue",
"marketParams": {
"onchainMarketId": "0x29ae7ac08be3a58e11151fed74701fb8e6ffd8e76b1870cf17ad70f332752d0b",
"loanToken": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"collateralToken": {
"address": "0xfcc9cc1209651ed8867332d6f664cf82743a2584",
"symbol": "mGLO",
"decimals": 18
},
"oracleAddress": "0x182e072f2c9c58c6f19f144c97986f7496c6a109",
"interestRateModelAddress": "0x46415998764c29ab2a25cbea6254146d50d22687",
"lltvBps": 9150
}
}
},
{
"borrowProductId": "bp_576a97bb-4ea4-5872-afcd-a6f62452fcbe",
"network": "base",
"name": "cbBTC / USDC",
"venue": {
"venueId": "bp_venue_2978db31-f1ff-570f-8329-6e37d6cae04e",
"entrypointAddress": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb",
"name": "Morpho Blue base-mainnet"
},
"assets": [
{
"assetId": "bp_asset_dc53459b-8146-50ec-83cf-361ca8d4f929",
"token": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"capabilities": [
{
"type": "debt",
"enabled": true
}
]
},
{
"assetId": "bp_asset_15ecfce2-be4c-5665-8362-902c9d08e27d",
"token": {
"address": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"symbol": "cbBTC",
"decimals": 8
},
"capabilities": [
{
"type": "collateral",
"enabled": true
}
]
}
],
"snapshot": {
"blockNumber": 49573788,
"blockHash": "0xd8419d2f10b821985b2a2d8b2f15ab3ffc14dc55bcfb75b0537dabaad4ded07c",
"blockTimestamp": 1785936923,
"observedAt": "2026-08-10T20:37:34Z"
},
"protocolDetails": {
"type": "morpho_blue",
"marketParams": {
"onchainMarketId": "0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836",
"loanToken": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"collateralToken": {
"address": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"symbol": "cbBTC",
"decimals": 8
},
"oracleAddress": "0x663becd10dae6c4a3dcd89f1d76c1174199639b9",
"interestRateModelAddress": "0x46415998764c29ab2a25cbea6254146d50d22687",
"lltvBps": 8600
}
}
}
],
"nextPageToken": "eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ=="
}List borrow products
Lists the borrow products available across all supported networks and protocols. If a network and/or protocol query parameter is supplied, then borrow products are filtered and returned accordingly. A borrow product is a protocol-native representation of a borrowable market, describing the venue that hosts it, the assets that can be borrowed or posted as collateral, and their collateral and debt capabilities. For example, a Morpho Blue market that lends USDC against cbBTC.
curl --request GET \
--url https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products', 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.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cdp.coinbase.com/platform/v2/embedded-wallet-api/evm/borrow-products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"borrowProducts": [
{
"borrowProductId": "bp_07fb56c0-9afe-5440-8ff2-5b0e115458df",
"network": "base",
"name": "mGLO / USDC",
"venue": {
"venueId": "bp_venue_2978db31-f1ff-570f-8329-6e37d6cae04e",
"entrypointAddress": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb",
"name": "Morpho Blue base-mainnet"
},
"assets": [
{
"assetId": "bp_asset_7426b5c4-a556-5005-8fee-eb156d491aef",
"token": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"capabilities": [
{
"type": "debt",
"enabled": true
}
]
},
{
"assetId": "bp_asset_11c0f1d0-3ff3-535e-9c57-3fbbc44f1b79",
"token": {
"address": "0xfcc9cc1209651ed8867332d6f664cf82743a2584",
"symbol": "mGLO",
"decimals": 18
},
"capabilities": [
{
"type": "collateral",
"enabled": true
}
]
}
],
"snapshot": {
"blockNumber": 49573788,
"blockHash": "0xd8419d2f10b821985b2a2d8b2f15ab3ffc14dc55bcfb75b0537dabaad4ded07c",
"blockTimestamp": 1785936923,
"observedAt": "2026-08-10T20:37:34Z"
},
"protocolDetails": {
"type": "morpho_blue",
"marketParams": {
"onchainMarketId": "0x29ae7ac08be3a58e11151fed74701fb8e6ffd8e76b1870cf17ad70f332752d0b",
"loanToken": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"collateralToken": {
"address": "0xfcc9cc1209651ed8867332d6f664cf82743a2584",
"symbol": "mGLO",
"decimals": 18
},
"oracleAddress": "0x182e072f2c9c58c6f19f144c97986f7496c6a109",
"interestRateModelAddress": "0x46415998764c29ab2a25cbea6254146d50d22687",
"lltvBps": 9150
}
}
},
{
"borrowProductId": "bp_576a97bb-4ea4-5872-afcd-a6f62452fcbe",
"network": "base",
"name": "cbBTC / USDC",
"venue": {
"venueId": "bp_venue_2978db31-f1ff-570f-8329-6e37d6cae04e",
"entrypointAddress": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb",
"name": "Morpho Blue base-mainnet"
},
"assets": [
{
"assetId": "bp_asset_dc53459b-8146-50ec-83cf-361ca8d4f929",
"token": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"capabilities": [
{
"type": "debt",
"enabled": true
}
]
},
{
"assetId": "bp_asset_15ecfce2-be4c-5665-8362-902c9d08e27d",
"token": {
"address": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"symbol": "cbBTC",
"decimals": 8
},
"capabilities": [
{
"type": "collateral",
"enabled": true
}
]
}
],
"snapshot": {
"blockNumber": 49573788,
"blockHash": "0xd8419d2f10b821985b2a2d8b2f15ab3ffc14dc55bcfb75b0537dabaad4ded07c",
"blockTimestamp": 1785936923,
"observedAt": "2026-08-10T20:37:34Z"
},
"protocolDetails": {
"type": "morpho_blue",
"marketParams": {
"onchainMarketId": "0x9103c3b4e834476c9a62ea009ba2c884ee42e94e6e314a26f04d312434191836",
"loanToken": {
"address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"decimals": 6
},
"collateralToken": {
"address": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf",
"symbol": "cbBTC",
"decimals": 8
},
"oracleAddress": "0x663becd10dae6c4a3dcd89f1d76c1174199639b9",
"interestRateModelAddress": "0x46415998764c29ab2a25cbea6254146d50d22687",
"lltvBps": 8600
}
}
}
],
"nextPageToken": "eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ=="
}Authorizations
A JWT signed using the developer's own JWT private key (in the case of JWT authentication), or an end user JWT signed by CDP, encoded in base64. This is used for End User Account APIs.
Query Parameters
The ID of the CDP Project. Required for end users authenticated using custom auth (i.e. a non-CDP JWT provider).
^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"8e03978e-40d5-43e8-bc93-6894a57f9324"
The EVM network name to list borrow products for. The name of the EVM network that a borrow product is deployed on.
base "base"
The lending protocol whose borrow products to list. The lending protocol that operates the borrow product.
morpho_blue "morpho_blue"
The number of resources to return per page.
The token for the next page of resources, if any.
Response
Successfully listed borrow products.
Response containing a list of borrow products.
Was this page helpful?