Copper.co Orders API

The orders API from Copper.co — 8 operation(s) for orders.

Operations 10

POST /dry-run-orders Dry Run Order
GET /orders Get Orders
POST /orders Create Order
POST /orders/ Create Multiple Orders
PATCH /orders/{acceptOtcOrderId} Accept Order
PATCH /orders/{cancelOrderId} Cancel Order
PATCH /orders/{coSignOrderId} Approve (co-sign) Order
GET /orders/{orderId} Get Order by ID
PATCH /orders/{orderId} Provide master password for Order
PATCH /orders/{startSigningOrderId} Start Signing

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/copper-co-orders-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

copper-co-orders-api-openapi.yml Raw ↑
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