curl --request GET \
--url https://api.dev.endaoment.org/v1/portfolios \
--cookie NdaoAuth=import requests
url = "https://api.dev.endaoment.org/v1/portfolios"
headers = {"cookie": "NdaoAuth="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'NdaoAuth='}};
fetch('https://api.dev.endaoment.org/v1/portfolios', 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.dev.endaoment.org/v1/portfolios",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "NdaoAuth=",
]);
$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.dev.endaoment.org/v1/portfolios"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "NdaoAuth=")
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.dev.endaoment.org/v1/portfolios")
.header("cookie", "NdaoAuth=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.endaoment.org/v1/portfolios")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'NdaoAuth='
response = http.request(request)
puts response.read_body[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"contractAddress": "0x0000000000000000000000000000000000000000",
"type": "AaveUsdcV3",
"name": "Aave USDC V3",
"shortName": "Aave V3",
"description": "A USDC yield portfolio.",
"shortDescription": "USDC yield strategy",
"logoUrl": "https://example.org/portfolio.png",
"cap": "1000000000000",
"redemptionFeeBps": 0,
"depositFeeBps": 0,
"providerFeeBps": null,
"enabled": true,
"underlyingTokenContractAddress": null,
"aipPerSecondFeesWad": null,
"errorMarginWad": null,
"version": "V2",
"chainId": 1,
"settlementMinutes": null,
"minDeposit": null,
"minRedemption": null,
"categories": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Cash Management",
"description": "Portfolios focused on cash and cash-equivalent strategies.",
"colorRgb": "#627EEA",
"logoUrl": "https://example.org/logo.png"
}
],
"underlyingStockTicker": null,
"isExclusive": false,
"completed": null,
"totalInvestedInPortfolio": "1000000",
"positionCount": 12,
"currentApyBps": 350,
"quarterlyPerformanceBps": 125,
"updatedAt": "2026-05-26T20:00:00.000Z"
}
]List portfolios
Returns enabled public portfolios plus any portfolios the caller can access when authenticated. Use the optional fundId query parameter to list portfolios available to a specific fund. Authentication is optional; browser sessions may reveal portfolios connected to the caller.
curl --request GET \
--url https://api.dev.endaoment.org/v1/portfolios \
--cookie NdaoAuth=import requests
url = "https://api.dev.endaoment.org/v1/portfolios"
headers = {"cookie": "NdaoAuth="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'NdaoAuth='}};
fetch('https://api.dev.endaoment.org/v1/portfolios', 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.dev.endaoment.org/v1/portfolios",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "NdaoAuth=",
]);
$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.dev.endaoment.org/v1/portfolios"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "NdaoAuth=")
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.dev.endaoment.org/v1/portfolios")
.header("cookie", "NdaoAuth=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.endaoment.org/v1/portfolios")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'NdaoAuth='
response = http.request(request)
puts response.read_body[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"contractAddress": "0x0000000000000000000000000000000000000000",
"type": "AaveUsdcV3",
"name": "Aave USDC V3",
"shortName": "Aave V3",
"description": "A USDC yield portfolio.",
"shortDescription": "USDC yield strategy",
"logoUrl": "https://example.org/portfolio.png",
"cap": "1000000000000",
"redemptionFeeBps": 0,
"depositFeeBps": 0,
"providerFeeBps": null,
"enabled": true,
"underlyingTokenContractAddress": null,
"aipPerSecondFeesWad": null,
"errorMarginWad": null,
"version": "V2",
"chainId": 1,
"settlementMinutes": null,
"minDeposit": null,
"minRedemption": null,
"categories": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Cash Management",
"description": "Portfolios focused on cash and cash-equivalent strategies.",
"colorRgb": "#627EEA",
"logoUrl": "https://example.org/logo.png"
}
],
"underlyingStockTicker": null,
"isExclusive": false,
"completed": null,
"totalInvestedInPortfolio": "1000000",
"positionCount": 12,
"currentApyBps": 350,
"quarterlyPerformanceBps": 125,
"updatedAt": "2026-05-26T20:00:00.000Z"
}
]Authorizations
Query Parameters
Filter portfolios by fund access.
Response
Portfolios available to the caller
Unique identifier of the portfolio.
"123e4567-e89b-12d3-a456-426614174000"
On-chain contract address of the portfolio.
"0x0000000000000000000000000000000000000000"
Type of the portfolio.
AaveUsdc, CompoundUsdc, YearnUsdc, SingleToken, AaveUsdcV3, CompoundUsdcV3, TPlusN, PrivateWealth, IlliquidSellOverTime, IlliquidAsset, IlliquidLockedAdvisorManaged "AaveUsdcV3"
Name of the portfolio.
"Aave USDC V3"
Short display name of the portfolio.
"Aave V3"
Description of the portfolio.
"A USDC yield portfolio."
Short description of the portfolio.
"USDC yield strategy"
Logo URL for the portfolio.
"https://example.org/portfolio.png"
Portfolio cap in USDC micro-units (1000000 = 1 USD), when configured.
"1000000000000"
Redemption fee in basis points (100 basis points = 1%).
0
Deposit fee in basis points (100 basis points = 1%).
0
Provider fee in basis points (100 basis points = 1%), when configured.
null
Whether the portfolio is enabled for listing.
true
Target token contract address for single-token portfolios.
null
AIP per-second fee rate in WAD units, when configured.
null
Tolerable estimation error as a WAD value for redemption asset calculations.
null
Version of the portfolio implementation.
V1, V2 "V2"
EVM chain ID where the portfolio contract is deployed.
1
Minutes the portfolio waits before settling a trade request. Null means instantaneous settlement.
null
Minimum USDC deposit in micro-units (1000000 = 1 USD), when configured.
null
Minimum USDC redemption in micro-units (1000000 = 1 USD), when configured.
null
Categories associated with the portfolio.
Show child attributes
Show child attributes
Ticker of the underlying stock for stock-backed portfolios.
null
Whether the portfolio is exclusive to entities with explicit access.
false
Whether the portfolio is completed. Used for illiquid portfolios.
null
Sum of all investments made to this portfolio in USDC micro-units (1000000 = 1 USD).
"1000000"
Number of entity positions opened against the portfolio.
12
Current APY in basis points, when available.
350
Quarterly performance in basis points, when available.
125
ISO timestamp when the portfolio financials were last updated.
"2026-05-26T20:00:00.000Z"
Was this page helpful?