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.| Type | Description |
|---|---|
PORTFOLIO | A standard portfolio (default) |
INDEX_PORTFOLIO | A portfolio that tracks a basket of tokens with dynamic rebalancing (better visibility on Avo) |
Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name for the managed portfolio (1-30 characters). Example: My Index Portfolio |
type | string (enum) | Yes | PORTFOLIO or INDEX_PORTFOLIO |
beneficiary_wallet | string | No | The wallet that will receive deployer fees. Must have some initial SOL (minimum rent exemption amount). 32-44 characters. Example: 7xkXtg2Cw87d97TXJ3DpbD5jBkheTqA83TZRuJosgAsU |
description | string | No | Optional description for the portfolio (max 500 characters). Example: A curated index of top tokens |
image | file (binary) | No | Optional image file (JPEG or PNG, max 10MB) |
POST
https://api.avo.so/api/portfolio/createAuthorization:
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..."
}
