List vaults
curl --request GET \
--url https://api.cdp.coinbase.com/platform/v2/lend/vaults \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cdp.coinbase.com/platform/v2/lend/vaults"
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/lend/vaults', 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/lend/vaults",
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/lend/vaults"
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/lend/vaults")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cdp.coinbase.com/platform/v2/lend/vaults")
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{
"vaults": [
{
"vaultId": "vault_019f5f10-096a-7a23-86df-f479650d813f",
"address": "0x15966F1582CAEFB56CDB4Fba1dC622E41F2Ad33D",
"catalogVaultId": "cv_019ee022-3586-7473-8354-b2c32c18221a",
"underlyingAsset": "usdc",
"performanceFeeBps": 2000,
"feeRecipientAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"network": "base",
"status": "active",
"createdAt": "2026-09-15T15:39:37Z",
"metrics": {
"apyBps": 590,
"apyUpdatedAt": "2026-09-22T00:00:00Z",
"tvl": "1000",
"tvlUpdatedAt": "2026-09-22T00:00:00Z"
}
}
],
"nextPageToken": "eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ=="
}{
"errorType": "invalid_request",
"errorMessage": "pageSize must be between 1 and 1000."
}{
"errorType": "unauthorized",
"errorMessage": "The request is not properly authenticated."
}{
"errorType": "internal_server_error",
"errorMessage": "An internal server error occurred. Please try again later."
}{
"errorType": "service_unavailable",
"errorMessage": "Service unavailable. Please try again later."
}Lend
List vaults
Lists the vaults created by the project. Use pageSize and pageToken to page through the results. Each vault includes its current metrics, when a metrics snapshot has been observed for it.
GET
/
v2
/
lend
/
vaults
List vaults
curl --request GET \
--url https://api.cdp.coinbase.com/platform/v2/lend/vaults \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cdp.coinbase.com/platform/v2/lend/vaults"
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/lend/vaults', 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/lend/vaults",
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/lend/vaults"
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/lend/vaults")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cdp.coinbase.com/platform/v2/lend/vaults")
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{
"vaults": [
{
"vaultId": "vault_019f5f10-096a-7a23-86df-f479650d813f",
"address": "0x15966F1582CAEFB56CDB4Fba1dC622E41F2Ad33D",
"catalogVaultId": "cv_019ee022-3586-7473-8354-b2c32c18221a",
"underlyingAsset": "usdc",
"performanceFeeBps": 2000,
"feeRecipientAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
"network": "base",
"status": "active",
"createdAt": "2026-09-15T15:39:37Z",
"metrics": {
"apyBps": 590,
"apyUpdatedAt": "2026-09-22T00:00:00Z",
"tvl": "1000",
"tvlUpdatedAt": "2026-09-22T00:00:00Z"
}
}
],
"nextPageToken": "eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ=="
}{
"errorType": "invalid_request",
"errorMessage": "pageSize must be between 1 and 1000."
}{
"errorType": "unauthorized",
"errorMessage": "The request is not properly authenticated."
}{
"errorType": "internal_server_error",
"errorMessage": "An internal server error occurred. Please try again later."
}{
"errorType": "service_unavailable",
"errorMessage": "Service unavailable. Please try again later."
}Authorizations
A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.
Query Parameters
The number of vaults to return per page.
Required range:
1 <= x <= 1000The token for the next page of resources, if any.
Response
Successfully retrieved vaults.
Was this page helpful?