Copper.co Portfolios API
The portfolios API from Copper.co — 2 operation(s) for portfolios.
The portfolios API from Copper.co — 2 operation(s) for portfolios.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/copper-co-portfolios-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: Copper API is based on the REST API interface provided for data exchange between a client and a server with the use of HTTPS requests and responses.
title: Copper Platform Portfolios API
version: latest
servers:
- description: platform.copper.co
url: https://api.copper.co/platform
- description: demo.copper.co
url: https://api.stage.copper.co/platform
- description: testnet.copper.co
url: https://api.testnet.copper.co/platform
tags:
- name: Portfolios
paths:
/portfolios:
get:
description: Retrieve your portfolios (in UI terms - accounts)
parameters:
- description: Filter by portfolio types. [See details](/enums/PortfolioType)
example:
- custody,external
in: query
name: portfolioTypes
required: false
schema:
items:
$ref: '#/components/schemas/PortfolioType'
type: array
- description: Filter by portfolio types not in. [See details](/enums/PortfolioType)
example:
- trading,trading-vault
in: query
name: excludedPortfolioTypes
required: false
schema:
items:
$ref: '#/components/schemas/PortfolioType'
type: array
- description: Filter by portfolio id
in: query
name: portfolioId
required: false
schema:
type: string
- description: Filter by organization id
example:
- CPTL
in: query
name: organizationId
required: false
schema:
type: string
- description: Filter by is active
in: query
name: isActive
required: false
schema:
default: 'true'
type: boolean
- description: Filter only DeFi vaults
in: query
name: isDefiVault
required: false
schema:
type: boolean
- description: Filter by signing enabled signing flow type
in: query
name: signingFlowType
required: false
schema:
$ref: '#/components/schemas/SigningFlowType'
type: string
- description: Offset for pagination
in: query
name: offset
required: false
schema:
type: string
- description: Limit for pagination
in: query
name: limit
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Portfolios'
description: OK
'400':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- bad-request
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Bad Request
'403':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- forbidden
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Forbidden
'409':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- conflict
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Conflict
summary: Get Portfolios
tags:
- Portfolios
operationId: getPortfolios
x-operation-id-source: derived
post:
description: Create a new portfolio
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePortfolio'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Portfolio'
description: OK
'400':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- bad-request
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Bad Request
'403':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- forbidden
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Forbidden
'409':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- conflict
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Conflict
summary: Create Portfolio
tags:
- Portfolios
operationId: postPortfolios
x-operation-id-source: derived
/portfolios/{portfolioId}:
delete:
parameters:
- in: path
name: portfolioId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Unit'
description: OK
'400':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- bad-request
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Bad Request
'403':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- forbidden
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Forbidden
'409':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- conflict
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Conflict
summary: Archive Portfolio
tags:
- Portfolios
operationId: deletePortfoliosByPortfolioId
x-operation-id-source: derived
get:
parameters:
- in: path
name: portfolioId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Portfolio'
description: OK
'400':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- bad-request
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Bad Request
'403':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- forbidden
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Forbidden
'409':
content:
application/json:
schema:
properties:
error:
description: The machine-readable error code
examples:
- conflict
type: string
message:
description: A human-readable message providing more details about the error
type: string
type: object
description: Conflict
summary: Retrieve Portfolio by ID
tags:
- Portfolios
operationId: getPortfoliosByPortfolioId
x-operation-id-source: derived
components:
schemas:
PortfolioExtra:
properties:
autodiscoveredAccountStatus:
$ref: '#/components/schemas/AutodiscoveredAccountStatus'
description: Sub-status used to determine the state of walled-garden or clearloop portfolio
baseCurrency:
description: Base currency for external account that use margin pair
type: string
clearLoopDelegationsBlocked:
description: Portfolio Delegations are disabled/blocked
type: boolean
clearLoopPortfolioId:
description: Identifier of a ClearLoop portfolio, if any
type: string
clearLoopUnDelegationsBlocked:
description: Portfolio Undelegations are disabled/blocked
type: boolean
clientAccountId:
description: Unique client exchange's account identifier used for ClearLoop
type: string
customerId:
description: External customer identifier from an exchange
type: string
exchange:
description: External exchange associated with this portfolio
examples:
- okex
type: string
exchangeAccountType:
$ref: '#/components/schemas/ExchangeAccountType'
description: External portfolio exchange account type
externalAccountId:
description: Identifier of an external third-party account related to the portfolio
type: string
parentPortfolioId:
description: Identifier of a parent portfolio, if any
type: string
quoteCurrency:
description: Quote currency for external account that use margin pair
type: string
showWalletBalance:
$ref: '#/components/schemas/BalanceType'
description: Type of balance shown for the external account. [See details](/enums/BalanceType)
usdWithdrawalLimit:
description: Withdrawal limit of the portfolio in USD
type: string
type: object
AutodiscoveredAccountStatus:
enum: []
type: string
Portfolio:
properties:
createdAt:
description: Portfolio creation date
examples:
- '1617235200000'
type: string
createdBy:
description: Portfolio creator ID
type: string
extra:
$ref: '#/components/schemas/PortfolioExtra'
description: Portfolio extra data
type: object
isActive:
description: Portfolio active state
type: boolean
organizationId:
description: Organization ID
examples:
- 1fa95ae7-5f74-4258-a4c6-687b39d7941d
type: string
portfolioDescription:
description: Portfolio description
examples:
- My portfolio description
type: string
portfolioId:
description: Portfolio id
type: string
portfolioName:
description: Portfolio name
examples:
- My portfolio
type: string
portfolioType:
$ref: '#/components/schemas/PortfolioType'
description: Portfolio type. [See details](/enums/PortfolioType)
examples:
- custody
status:
$ref: '#/components/schemas/PortfolioStatus'
description: Portfolio status
examples:
- active
updatedAt:
description: Portfolio update date
examples:
- '1617235200000'
type: string
updatedBy:
description: Portfolio updater ID
type: string
required:
- portfolioId
- portfolioName
- portfolioType
- createdBy
- createdAt
- isActive
type: object
ExchangeAccountType:
enum: []
type: string
Portfolios:
properties:
portfolios:
description: List of portfolios
items:
$ref: '#/components/schemas/Portfolio'
type: array
required:
- portfolios
type: object
Unit:
properties: {}
type: object
PortfolioType:
enum:
- custody
- trading-vault
- trading
- external
- clearloop
type: string
CreatePortfolio:
properties:
isDefiVault:
description: Flag to indicate if the portfolio is a DeFi vault
type: boolean
organizationId:
description: Organization id
type: string
parentPortfolioId:
description: Parent portfolio id
type: string
portfolioDescription:
description: Portfolio description
examples:
- My portfolio description
type: string
portfolioId:
description: Portfolio id
type: string
portfolioName:
description: Portfolio name
examples:
- My portfolio
type: string
portfolioType:
$ref: '#/components/schemas/PortfolioType'
description: Portfolio type. [See details](/enums/PortfolioType)
examples:
- custody
required:
- portfolioId
- portfolioName
- portfolioType
type: object
SigningFlowType:
enum: []
type: string
PortfolioStatus:
enum: []
type: string
BalanceType:
enum:
- real
- margin
type: string