---
title: "Create Portfolio"
method: POST
path: "/portfolios"
tags: ["portfolios"]
---

# Create Portfolio

`POST /portfolios`

## Request

- Base URL: `https://api.copper.co/platform`
- URL: `https://api.copper.co/platform/portfolios`
- Auth: none declared
- TypeScript: <https://skmtc.dev/copper-co/apis/copper-platform-api/docs/portfolios/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new portfolio

## Request body

- CreatePortfolio
  - `isDefiVault` boolean: Flag to indicate if the portfolio is a DeFi vault
  - `organizationId` string, required: Organization id
  - `parentPortfolioId` string: Parent portfolio id
  - `portfolioDescription` string: Portfolio description
  - `portfolioId` string, required: Portfolio id
  - `portfolioName` string, required: Portfolio name
  - `portfolioType` 'custody' | 'trading-vault' | 'trading' | 'external' | 'clearloop', required

## Response `200`

OK

- Portfolio
  - `createdAt` string, required: Portfolio creation date
  - `createdBy` string, required: Portfolio creator ID
  - `extra` PortfolioExtra
    - `autodiscoveredAccountStatus` string
    - `baseCurrency` string: Base currency for external account that use margin pair
    - `clearLoopDelegationsBlocked` boolean: Portfolio Delegations are disabled/blocked
    - `clearLoopPortfolioId` string: Identifier of a ClearLoop portfolio, if any
    - `clearLoopUnDelegationsBlocked` boolean: Portfolio Undelegations are disabled/blocked
    - `clientAccountId` string: Unique client exchange's account identifier used for ClearLoop
    - `customerId` string: External customer identifier from an exchange
    - `exchange` string: External exchange associated with this portfolio
    - `exchangeAccountType` string
    - `externalAccountId` string: Identifier of an external third-party account related to the portfolio
    - `hyperliquidTradingStatus` HyperliquidTradingStatus
      - `activationOrderId` string: Order ID of the most recent Hyperliquid activation order for this portfolio
      - `status` 'pending' | 'active' | 'inactive' | 'non-existent'
    - `parentPortfolioId` string: Identifier of a parent portfolio, if any
    - `quoteCurrency` string: Quote currency for external account that use margin pair
    - `showWalletBalance` 'real' | 'margin'
    - `usdWithdrawalLimit` string: Withdrawal limit of the portfolio in USD
  - `isActive` boolean, required: Portfolio active state
  - `organizationId` string: Organization ID
  - `portfolioDescription` string: Portfolio description
  - `portfolioId` string, required: Portfolio id
  - `portfolioName` string, required: Portfolio name
  - `portfolioType` 'custody' | 'trading-vault' | 'trading' | 'external' | 'clearloop', required
  - `status` string
  - `updatedAt` string: Portfolio update date
  - `updatedBy` string: Portfolio updater ID

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `409`: Conflict

---

[API](https://skmtc.dev/copper-co/apis/copper-platform-api.md) - [All operations](https://skmtc.dev/copper-co/apis/copper-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/copper-co/apis/copper-platform-api/revisions/44296120fc7d?raw)
