AVO Logo
Portfolio

/api/portfolio/create

Creates a new portfolio. Uses multipart/form-data to support optional image upload.

This is the first step towards creating a portfolio on Avo. This endpoint creates a portfolio with a DRAFT status (not live or visible to users) and an empty positions array. Target positions should be added later via the Update Portfolio endpoint.

Portfolio Types

The type field is currently for aesthetic purposes only. Use PORTFOLIO as the default option. However, if you're deciding between a standard portfolio and an index, we recommend building an INDEX_PORTFOLIO as it currently has better visibility on Avo.
TypeDescription
PORTFOLIOA standard portfolio (default)
INDEX_PORTFOLIOA portfolio that tracks a basket of tokens with dynamic rebalancing (better visibility on Avo)

Body Parameters

FieldTypeRequiredDescription
namestringYesName for the managed portfolio (1-30 characters). Example: My Index Portfolio
typestring (enum)YesPORTFOLIO or INDEX_PORTFOLIO
beneficiary_walletstringNoThe wallet that will receive deployer fees. Must have some initial SOL (minimum rent exemption amount). 32-44 characters. Example: 7xkXtg2Cw87d97TXJ3DpbD5jBkheTqA83TZRuJosgAsU
descriptionstringNoOptional description for the portfolio (max 500 characters). Example: A curated index of top tokens
imagefile (binary)NoOptional image file (JPEG or PNG, max 10MB)
POSThttps://api.avo.so/api/portfolio/create
Authorization:
name*
type*
beneficiary_wallet
description
curl -X POST "https://api.avo.so/api/portfolio/create" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -F "name=My Index Portfolio" \
  -F "type=INDEX_PORTFOLIO"
ResponsesOK
{
  "portfolio_id": "abc123..."
}