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.
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.
By default, the request should include a Content-Type header set as application/json. Some requests require different header fields, as well as other Content-Type values. In this case, a proper header will be stated in an example.
When interacting with the API, please note that all numerical values, such as order amounts or timestamps, should be transmitted as strings. This ensures consistent data representation and prevents potential issues with floating-point precision'
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
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
/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
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
components:
schemas:
ExchangeAccountType:
enum: []
type: string
SigningFlowType:
enum: []
type: string
Portfolios:
properties:
portfolios:
description: List of portfolios
items:
$ref: '#/components/schemas/Portfolio'
type: array
required:
- portfolios
type: object
BalanceType:
enum:
- real
- margin
type: string
PortfolioStatus:
enum: []
type: string
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
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
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
PortfolioType:
enum:
- custody
- trading-vault
- trading
- external
- clearloop
type: string
Unit:
properties: {}
type: object