---
title: "/api/portfolio/create"
method: POST
path: "/api/portfolio/create"
tags: ["Portfolio"]
---

# /api/portfolio/create

`POST /api/portfolio/create`

## Request

- Base URL: `https://api.avo.so`
- URL: `https://api.avo.so/api/portfolio/create`
- Auth: HTTP bearer

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.

## Request body `multipart/form-data`

- object
  - `name` string, required: Name for the managed portfolio (1-30 characters). Example: My Index Portfolio
  - `type` 'PORTFOLIO' | 'INDEX_PORTFOLIO', required: PORTFOLIO or INDEX_PORTFOLIO
  - `beneficiary_wallet` string: The wallet that will receive deployer fees. Must have some initial SOL (minimum rent exemption amount). 32-44 characters. Example: 7xkXtg2Cw87d97TXJ3DpbD5jBkheTqA83TZRuJosgAsU
  - `description` string: Optional description for the portfolio (max 500 characters). Example: A curated index of top tokens
  - `image` string, binary: Optional image file (JPEG or PNG, max 10MB)

## Response `200`

OK

## Other responses

- `400`: Invalid request parameters
- `401`: Unauthorized
- `500`: Internal server error

---

[API](https://skmtc.dev/avo/apis/avo-public-api.md) - [All operations](https://skmtc.dev/avo/apis/avo-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/avo/apis/avo-public-api/revisions/1ee729b275f0?raw)
