Copper.co Orders API
The orders API from Copper.co — 8 operation(s) for orders.
The orders API from Copper.co — 8 operation(s) for orders.
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-orders-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 Orders 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: orders
paths:
/dry-run-orders:
post:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DryRunOrderRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DryRunOrder'
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: Dry Run Order
tags:
- orders
/orders:
get:
parameters:
- description: Comma-separated list of portfolio IDs to filter by
in: query
name: portfolioIds
required: false
schema:
items:
type: string
type: array
- description: Comma-separated list of currencies to filter by `base_currency` or `quote_currency`
in: query
name: currencies
required: false
schema:
items:
type: string
type: array
- description: Comma-separated list of currencies to filter by `base_currency`
in: query
name: baseCurrencies
required: false
schema:
items:
type: string
type: array
- description: Comma-separated list of currencies to filter by `quote_currency`
in: query
name: quoteCurrencies
required: false
schema:
items:
type: string
type: array
- description: Comma-separated list of currencies to filter by `main_currency` (blockchain network)
in: query
name: mainCurrencies
required: false
schema:
items:
type: string
type: array
- description: Comma-separated list of order types to filter by. [See details](/enums/OrderType)
in: query
name: orderTypes
required: false
schema:
items:
$ref: '#/components/schemas/OrderType'
type: array
- description: Comma-separated list of statuses to filter by. [See details](/enums/OrderStatus)
in: query
name: statuses
required: false
schema:
items:
$ref: '#/components/schemas/OrderStatus'
type: array
- in: query
name: offset
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
default: '1000'
type: string
- description: Filter by external order ID
example:
- 6de6d2c3-ce34-4ae8-b26e-d050167fc5c3
in: query
name: externalOrderId
required: false
schema:
type: string
- description: Filter by transfer chain ID
in: query
name: transferChainId
required: false
schema:
type: string
- description: Filter by blockchain transaction ID
in: query
name: transactionId
required: false
schema:
type: string
- description: Search query by blockchain transaction ID, fromAddress or toAddress
in: query
name: searchQuery
required: false
schema:
type: string
- description: Filter by updated date since timestamp
in: query
name: updatedSince
required: false
schema:
type: string
- description: Filter by created date since timestamp
in: query
name: createdSince
required: false
schema:
type: string
- description: Filter by created date since timestamp
in: query
name: createdAtFrom
required: false
schema:
type: string
- description: Filter by created date to timestamp
in: query
name: createdAtTo
required: false
schema:
type: string
- description: Filter by terminated date since timestamp
in: query
name: terminatedAtFrom
required: false
schema:
type: string
- description: Filter by terminated date to timestamp
in: query
name: terminatedAtTo
required: false
schema:
type: string
- description: Comma-separated list of portfolio types to filter by. [See details](/enums/PortfolioType)
in: query
name: portfolioTypes
required: false
schema:
items:
$ref: '#/components/schemas/PortfolioType'
type: array
- description: Comma-separated list of portfolio types to exclude. [See details](/enums/PortfolioType)
in: query
name: excludedPortfolioTypes
required: false
schema:
items:
$ref: '#/components/schemas/PortfolioType'
type: array
- in: query
name: counterpartyId
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Orders'
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 Orders
tags:
- orders
post:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrder'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
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 Order
tags:
- orders
/orders/:
post:
description: Bulk orders creation. If the execution of an order fails, it will not affect the execution of other orders. Failed orders will be returned in the response. The bulk size should be less than 50 orders.
parameters:
- description: application/vnd.create-orders+json
in: header
name: Content-Type
required: false
schema:
type: string
requestBody:
content:
application/vnd.create-orders+json:
schema:
$ref: '#/components/schemas/CreateOrders'
responses:
'200':
content:
application/vnd.create-orders+json:
schema:
$ref: '#/components/schemas/Orders'
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 Multiple Orders
tags:
- orders
/orders/{acceptOtcOrderId}:
patch:
description: Accept counterparty settlement order
parameters:
- description: application/vnd.approve-counterparty-otc+json
in: header
name: Content-Type
required: false
schema:
type: string
- in: path
name: acceptOtcOrderId
required: true
schema:
type: string
responses:
'200':
content:
application/vnd.approve-counterparty-otc+json:
schema:
$ref: '#/components/schemas/Order'
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: Accept Order
tags:
- orders
/orders/{cancelOrderId}:
patch:
parameters:
- description: application/vnd.cancel-order+json
in: header
name: Content-Type
required: false
schema:
type: string
- in: path
name: cancelOrderId
required: true
schema:
type: string
requestBody:
content:
application/vnd.cancel-order+json:
schema:
$ref: '#/components/schemas/CancelOrder'
responses:
'200':
content:
application/vnd.cancel-order+json:
schema:
$ref: '#/components/schemas/Order'
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: Cancel Order
tags:
- orders
/orders/{coSignOrderId}:
patch:
parameters:
- description: application/vnd.co-sign-order+json
in: header
name: Content-Type
required: false
schema:
type: string
- in: path
name: coSignOrderId
required: true
schema:
type: string
requestBody:
content:
application/vnd.co-sign-order+json:
schema:
$ref: '#/components/schemas/UpdateOrderCoSigners'
responses:
'200':
content:
application/vnd.co-sign-order+json:
schema:
$ref: '#/components/schemas/Order'
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: Approve (co-sign) Order
tags:
- orders
/orders/{orderId}:
get:
parameters:
- in: path
name: orderId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
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 Order by ID
tags:
- orders
patch:
parameters:
- description: application/vnd.enter-master-password+json
in: header
name: Content-Type
required: false
schema:
type: string
- in: path
name: orderId
required: true
schema:
type: string
requestBody:
content:
application/vnd.enter-master-password+json:
schema:
$ref: '#/components/schemas/EnterMasterPassword'
responses:
'200':
content:
application/vnd.enter-master-password+json:
schema:
$ref: '#/components/schemas/Order'
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: Provide master password for Order
tags:
- orders
/orders/{startSigningOrderId}:
patch:
description: Start crypto signing for an order
parameters:
- description: application/vnd.start-signing+json
in: header
name: Content-Type
required: false
schema:
type: string
- in: path
name: startSigningOrderId
required: true
schema:
type: string
responses:
'200':
content:
application/vnd.start-signing+json:
schema:
$ref: '#/components/schemas/Order'
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: Start Signing
tags:
- orders
components:
schemas:
AddressCategory:
enum:
- smart-contract
- payable-smart-contract
- mining
- unknown
- self-hosted
- vasp
type: string
FeeLevel:
enum:
- low
- medium
- high
type: string
FeeType:
enum: []
type: string
DryRunOrder:
properties:
amount:
type: string
baseCurrency:
type: string
extra:
$ref: '#/components/schemas/OrderExtra'
type: object
mainCurrency:
type: string
orderType:
$ref: '#/components/schemas/OrderType'
description: '[See details](/enums/OrderType)'
portfolioId:
type: string
warning:
$ref: '#/components/schemas/Warning'
type: object
required:
- orderType
- portfolioId
- baseCurrency
type: object
BlockchainTransactionType:
enum:
- send
- multi-withdraw
- account-set
- approve-hot-key
- approve-builder-fee
- allowance
- smart-call
- multi-smart-call
- activate
- activate-trading
- stake-delegation
- stake-nomination
- stake-undelegation
- complete-withdrawal
- stake-complete-deposit
- take-reward
- pool-creation
- edit-pool
- governance-vote
- unjail
- importance-transfer
- transfer-stake
- rebond-stake
- chill
- cross-chain-send
- accept-deposit
- reject-deposit
- create-referral
- set-referral
type: string
PortfolioType:
enum:
- custody
- trading-vault
- trading
- external
- clearloop
type: string
UploadPartSignedTx:
properties: {}
type: object
RequestedNetworkFees:
properties:
feePerByte:
type: string
gasLimit:
type: string
gasPriceGwei:
type: string
maxFeePerGas:
type: string
maxPriorityFeePerGas:
type: string
type: object
CreateOrders:
properties:
orders:
description: List of orders to create
items:
$ref: '#/components/schemas/CreateOrder'
type: array
required:
- orders
type: object
LimitType:
enum:
- otc
- rfq
type: string
OrderType:
enum:
- sell
- buy
- deposit
- withdraw
- multi-withdraw
- wallet-message
- retrieved-deposit
- earn-reward
- earn-shared-reward
- claim-shared-reward
- cross-chain-deposit
- cross-chain-withdraw
type: string
ClearLoopExtra:
properties:
clearLoopExternalNetted:
description: Whether the order is linked to the ClearLoop multi-custody model that works by netting settlement amounts
type: boolean
clearLoopSettlementId:
description: Id uniquely identifying the ClearLoop settlement the order is part of
type: string
type: object
CurrencyConfigurationExtra:
properties: {}
type: object
TargetType:
enum:
- external
- portfolio
type: string
DepositOrigin:
enum: []
type: string
AddressType:
enum:
- externally-owned-account
- internal-account
- smart-contract
- payable-smart-contract
type: string
UpdateOrderCoSigners:
properties:
masterPassword:
description: A SHA-256 encrypted hash of the withdrawal password (also known as master password), if required.
type: string
type: object
CancelOrder:
properties:
reason:
type: string
type: object
CreateOrder:
properties:
agentAddress:
description: Agent address for orders created by agents on behalf of users
type: string
agentName:
description: Agent name for orders created by agents on behalf of users
type: string
amount:
description: The amount of order in baseCurrency
examples:
- '0.1'
type: string
baseCurrency:
description: The currency of the order amount
examples:
- BTC
type: string
blockchainTransactionType:
$ref: '#/components/schemas/BlockchainTransactionType'
description: Blockchain transaction type. [See details](/enums/BlockchainTransactionType)
builderFeeAddress:
description: Builder fee address for Hyperliquid builder approval and activation
type: string
deliveryType:
$ref: '#/components/schemas/DeliveryType'
default: payment-vs-payment
description: Settlement order type only applicable for settle orders. [See details](/enums/DeliveryType)
examples:
- payment-vs-payment
description:
description: The description of the order
examples:
- Withdrawal to my wallet
type: string
externalBroadcast:
default: 'false'
description: 'Sets broadcast mode. If true: manual broadcast. If false: automatic broadcast. Copper automatically broadcasts transactions to the network after fully signing'
examples:
- 'false'
type: boolean
externalOrderId:
description: Unique order identifier from client (should be unique for the portfolio)
type: string
feeLevel:
$ref: '#/components/schemas/FeeLevel'
description: 'Flat fees that Copper charges for withdrawing cryptocurrency to an external address. Flat fees are set per currency and do not change depending on transaction size and type. Flat fees are divided into thr
# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/copper-co/refs/heads/main/openapi/copper-co-orders-api-openapi.yml