GET
https://api.cryptohopper.com/v1/market/portfolios
Returns the portfolios in the marketplace, sorted by number of sales. Each item includes a monthly chart and the profit of its latest test.
The list is under the key portfolio, with the number of items in result. All values of the items are strings or null. chart holds [unix time in seconds, average value] per month. Only published items in the marketplace store are returned.
Example request
curl "https://api.cryptohopper.com/v1/market/portfolios" \
-H "access-token: YOUR_ACCESS_TOKEN"
const response = await fetch('https://api.cryptohopper.com/v1/market/portfolios', {
method: 'GET',
headers: {
"access-token": "YOUR_ACCESS_TOKEN"
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api.cryptohopper.com/v1/market/portfolios",
headers={
"access-token": "YOUR_ACCESS_TOKEN"
},
)
data = response.json()
$ch = curl_init('https://api.cryptohopper.com/v1/market/portfolios');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'access-token: YOUR_ACCESS_TOKEN',
],
]);
$data = json_decode(curl_exec($ch), true);
Parameters
Headers
| Name | Type | Required | Description |
|---|---|---|---|
access-token |
string | Required | The OAuth access token of the user. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
start |
string | Optional | Offset for paging. Default 0. |
exchange |
string | Optional | Only return items for this exchange, for example binance. Only letters, digits and underscores are accepted; any other value is ignored. |
limit |
string | Optional | Maximum number of items to return, 1 to 500. Default 500; 0 or a value above 500 also returns 500. |
available_in_app |
string | Optional | Meant to limit the list to items sold in the mobile app. In the current code a value sent here is compared to an integer and never matches, so it does not filter the list. |
quote_currency |
string | Optional | Only return items with this quote currency, for example USDT. Default all. |
Response
{
"data": {
"portfolio": [
{
"exchange": "binance",
"quote_currency": "USDT",
"risk_level": "low",
"allowed_coins": [
"BTC",
"ETH",
"SOL"
],
"chart": [
[
"1754006400",
"2.35"
]
],
"profit": "12.40",
"id": "11020",
"item_id": "11020",
"type": "portfolio",
"name": "Blue Chip Basket",
"description": "Rebalanced portfolio of large cap coins.",
"logo": "https://cdn.cryptohopper.com/images/marketplace/11020.png",
"feature_image": "https://cdn.cryptohopper.com/images/marketplace/11020_feature.png",
"top_item": "0",
"link": "https://www.cryptohopper.com/marketplace/item?item_id=11020",
"rating": null,
"total_votes": "0",
"sales": "15",
"price_id": "3",
"price": "9.00",
"created": "2026-01-05 09:30:00",
"price_currency": "USD",
"max_downloads": "0",
"seller_id": "321",
"seller_name": "Example Trading",
"seller_logo": "https://cdn.cryptohopper.com/images/marketplace/sellers/321.png",
"available_in_app": "1"
}
],
"result": 1
}
}