curl --request GET \
--url https://api.gm.ondo.finance/v1/portfolios \
--header 'x-api-key: <api-key>'import requests
url = "https://api.gm.ondo.finance/v1/portfolios"
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.gm.ondo.finance/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.gm.ondo.finance/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_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.gm.ondo.finance/v1/portfolios"
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.gm.ondo.finance/v1/portfolios")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gm.ondo.finance/v1/portfolios")
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{
"portfolios": [
{
"symbol": "MAG7Xon",
"name": "Ondo Magnificent 7 and Crypto Portfolio",
"description": "The Ondo Magnificent 7 and Crypto Portfolio implements an aggressive growth strategy by pairing the mega-cap technology stocks known as the \"Magnificent Seven\" with leading crypto assets. The portfolio holds an 80% equal-weight allocation to Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, and Tesla, with the remaining 20% split between Bitcoin (15%) and Ethereum (5%).",
"category": "thematic",
"modelProvider": "ondo",
"inceptionDate": "2026-08-12T16:35:00Z",
"netAssetsUsd": "1885406.537181",
"dividendYield": "0.00198929",
"afterWithholdingDividendYield": "0.0013925",
"fees": {
"serviceFeeRateBeforeWaiver": "0.0009",
"waiverFraction": "1",
"serviceFeeRateAfterWaiver": "0"
},
"rebalance": {
"frequency": "Quarterly",
"reconstitutionType": "Fixed",
"lastRebalanceDate": "2026-08-12T16:36:00Z"
},
"constituentCount": 9,
"constituents": [
{
"symbol": "AAPLon",
"name": "Apple",
"quantity": "917.20457",
"targetWeight": "0.1143",
"currentWeight": "0.12556912",
"assetClass": "Equities",
"instrumentType": "Stock",
"sectorIndustry": [
"Technology"
],
"addresses": [
{
"networkChainId": "bsc-56",
"address": "0x390a684ef9cade28a7ad0dfa61ab1eb3842618c4",
"decimals": 18
},
{
"networkChainId": "ethereum-1",
"address": "0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c",
"decimals": 18
},
{
"networkChainId": "solana-900",
"address": "123mYEnRLM2LLYsJW3K6oyYh8uP1fngj732iG638ondo",
"decimals": 9
}
]
},
{
"symbol": "AMZNon",
"name": "Amazon",
"quantity": "905.66388",
"targetWeight": "0.1143",
"currentWeight": "0.10877632",
"assetClass": "Equities",
"instrumentType": "Stock",
"sectorIndustry": [
"Consumer Discretionary"
],
"addresses": [
{
"networkChainId": "bsc-56",
"address": "0x4553cfe1c09f37f38b12dc509f676964e392f8fc",
"decimals": 18
},
{
"networkChainId": "ethereum-1",
"address": "0xbb8774fb97436d23d74c1b882e8e9a69322cfd31",
"decimals": 18
},
{
"networkChainId": "solana-900",
"address": "14Tqdo8V1FhzKsE3W2pFsZCzYPQxxupXRcqw9jv6ondo",
"decimals": 9
}
]
},
"..."
],
"timestamp": 1791469800123
},
"..."
]
}{
"code": "MISSING_API_KEY",
"message": "missing API key",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#missing_api_key"
}{
"code": "RATE_LIMITED",
"message": "rate limit exceeded",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#rate_limited"
}{
"code": "INTERNAL_ERROR",
"message": "An internal server error occurred. Please see the returned message and documentation for details.",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#internal_error"
}{
"code": "INTERNAL_ERROR",
"message": "portfolio data unavailable",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#internal_error"
}Get All Portfolios
This endpoint returns all active Ondo Intelligent Portfolios. Each portfolio contains its product metadata, net assets, dividend yields, service fee, rebalance data, and constituents.
The response sorts the portfolios by symbol, and it sorts the constituents of each portfolio by symbol. Each entry in portfolios has the same fields as the response of Get a Portfolio.
Rates, weights, and yields are decimal fractions. For example, "0.0009" is 0.09% and "0.1143" is 11.43%. Dates are RFC 3339 timestamps in UTC.
This endpoint does not return prices. To get the price of a portfolio token, use Get Current Price for an Asset, Get OHLC Data for an Asset, or Get Market Data for an Asset with the portfolio symbol.
For caching details on this endpoint, please see: Endpoint Caching.
curl --request GET \
--url https://api.gm.ondo.finance/v1/portfolios \
--header 'x-api-key: <api-key>'import requests
url = "https://api.gm.ondo.finance/v1/portfolios"
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.gm.ondo.finance/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.gm.ondo.finance/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_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.gm.ondo.finance/v1/portfolios"
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.gm.ondo.finance/v1/portfolios")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gm.ondo.finance/v1/portfolios")
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{
"portfolios": [
{
"symbol": "MAG7Xon",
"name": "Ondo Magnificent 7 and Crypto Portfolio",
"description": "The Ondo Magnificent 7 and Crypto Portfolio implements an aggressive growth strategy by pairing the mega-cap technology stocks known as the \"Magnificent Seven\" with leading crypto assets. The portfolio holds an 80% equal-weight allocation to Apple, Microsoft, Alphabet, Amazon, NVIDIA, Meta, and Tesla, with the remaining 20% split between Bitcoin (15%) and Ethereum (5%).",
"category": "thematic",
"modelProvider": "ondo",
"inceptionDate": "2026-08-12T16:35:00Z",
"netAssetsUsd": "1885406.537181",
"dividendYield": "0.00198929",
"afterWithholdingDividendYield": "0.0013925",
"fees": {
"serviceFeeRateBeforeWaiver": "0.0009",
"waiverFraction": "1",
"serviceFeeRateAfterWaiver": "0"
},
"rebalance": {
"frequency": "Quarterly",
"reconstitutionType": "Fixed",
"lastRebalanceDate": "2026-08-12T16:36:00Z"
},
"constituentCount": 9,
"constituents": [
{
"symbol": "AAPLon",
"name": "Apple",
"quantity": "917.20457",
"targetWeight": "0.1143",
"currentWeight": "0.12556912",
"assetClass": "Equities",
"instrumentType": "Stock",
"sectorIndustry": [
"Technology"
],
"addresses": [
{
"networkChainId": "bsc-56",
"address": "0x390a684ef9cade28a7ad0dfa61ab1eb3842618c4",
"decimals": 18
},
{
"networkChainId": "ethereum-1",
"address": "0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c",
"decimals": 18
},
{
"networkChainId": "solana-900",
"address": "123mYEnRLM2LLYsJW3K6oyYh8uP1fngj732iG638ondo",
"decimals": 9
}
]
},
{
"symbol": "AMZNon",
"name": "Amazon",
"quantity": "905.66388",
"targetWeight": "0.1143",
"currentWeight": "0.10877632",
"assetClass": "Equities",
"instrumentType": "Stock",
"sectorIndustry": [
"Consumer Discretionary"
],
"addresses": [
{
"networkChainId": "bsc-56",
"address": "0x4553cfe1c09f37f38b12dc509f676964e392f8fc",
"decimals": 18
},
{
"networkChainId": "ethereum-1",
"address": "0xbb8774fb97436d23d74c1b882e8e9a69322cfd31",
"decimals": 18
},
{
"networkChainId": "solana-900",
"address": "14Tqdo8V1FhzKsE3W2pFsZCzYPQxxupXRcqw9jv6ondo",
"decimals": 9
}
]
},
"..."
],
"timestamp": 1791469800123
},
"..."
]
}{
"code": "MISSING_API_KEY",
"message": "missing API key",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#missing_api_key"
}{
"code": "RATE_LIMITED",
"message": "rate limit exceeded",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#rate_limited"
}{
"code": "INTERNAL_ERROR",
"message": "An internal server error occurred. Please see the returned message and documentation for details.",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#internal_error"
}{
"code": "INTERNAL_ERROR",
"message": "portfolio data unavailable",
"documentation": "https://docs.ondo.finance/api-reference/error-codes#internal_error"
}
