openapi: 3.0.3
info:
title: Blockchain.com Exchange REST API
description: |
REST API for the Blockchain.com Exchange (`api.blockchain.com/v3/exchange`). Covers market
data (symbols, tickers, L2/L3 order books), trading (orders, trades, fills, fees) and payments
(accounts/balances, deposits, withdrawals, whitelist). Authenticated endpoints require an
`X-API-Token` header carrying the user's API key.
Generated from https://exchange.blockchain.com/api/ and the upstream Slate documentation in
https://github.com/blockchain/docs-exchange-api (archived) plus the live REST surface at
https://api.blockchain.com/v3/exchange.
version: '3.0.0'
contact:
name: Blockchain.com Exchange
url: https://exchange.blockchain.com
license:
name: Proprietary
url: https://www.blockchain.com/legal/terms
x-generated-from: documentation
x-last-validated: '2026-05-30'
servers:
- url: https://api.blockchain.com/v3/exchange
description: Blockchain.com Exchange v3 production host.
tags:
- name: Market Data
description: Public market data — symbols, tickers, order books.
- name: Trading
description: Authenticated order management and trade history.
- name: Payments
description: Authenticated account balances, deposits, withdrawals, beneficiaries.
security:
- ApiToken: []
paths:
# --------------------------------------------------------------
# MARKET DATA (public)
# --------------------------------------------------------------
/symbols:
get:
operationId: listSymbols
summary: Blockchain.com List Trading Symbols
description: Returns the full set of trading symbols and their metadata.
tags: [Market Data]
security: []
responses:
'200':
description: Map of symbol code to symbol metadata.
content:
application/json:
schema:
type: object
additionalProperties:
$ref: '#/components/schemas/Symbol'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/symbols/{symbol}:
get:
operationId: getSymbol
summary: Blockchain.com Get a Single Symbol
description: Returns metadata for a specific trading symbol.
tags: [Market Data]
security: []
parameters:
- $ref: '#/components/parameters/SymbolPath'
responses:
'200':
description: Symbol metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/Symbol'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/tickers:
get:
operationId: listTickers
summary: Blockchain.com List Tickers
description: Returns current price and 24-hour metrics for all trading pairs.
tags: [Market Data]
security: []
responses:
'200':
description: Array of tickers.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Ticker'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/tickers/{symbol}:
get:
operationId: getTicker
summary: Blockchain.com Get a Single Ticker
description: Returns the current price and 24-hour metrics for one trading pair.
tags: [Market Data]
security: []
parameters:
- $ref: '#/components/parameters/SymbolPath'
responses:
'200':
description: Single ticker.
content:
application/json:
schema:
$ref: '#/components/schemas/Ticker'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/l2/{symbol}:
get:
operationId: getL2OrderBook
summary: Blockchain.com Get Level-2 Order Book
description: Returns the aggregated price-level order book for a symbol.
tags: [Market Data]
security: []
parameters:
- $ref: '#/components/parameters/SymbolPath'
responses:
'200':
description: L2 order book.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderBook'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/l3/{symbol}:
get:
operationId: getL3OrderBook
summary: Blockchain.com Get Level-3 Order Book
description: Returns the full per-order book for a symbol.
tags: [Market Data]
security: []
parameters:
- $ref: '#/components/parameters/SymbolPath'
responses:
'200':
description: L3 order book.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderBook'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
# --------------------------------------------------------------
# TRADING (authenticated)
# --------------------------------------------------------------
/fees:
get:
operationId: getFees
summary: Blockchain.com Get Maker/taker Fees
description: Returns the current maker and taker fee rates for the authenticated user.
tags: [Trading]
responses:
'200':
description: Fee schedule.
content:
application/json:
schema:
$ref: '#/components/schemas/Fees'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/orders:
get:
operationId: listOrders
summary: Blockchain.com List Orders
description: Returns live and historic orders filtered by symbol, status, and time range.
tags: [Trading]
parameters:
- name: symbol
in: query
description: Trading symbol filter.
schema:
type: string
- name: from
in: query
description: Filter by orders created on or after this Unix timestamp (ms).
schema:
type: integer
format: int64
- name: to
in: query
description: Filter by orders created on or before this Unix timestamp (ms).
schema:
type: integer
format: int64
- name: status
in: query
description: Order status filter (e.g. `open`, `filled`, `cancelled`).
schema:
type: string
- name: limit
in: query
description: Maximum number of results to return.
schema:
type: integer
default: 100
responses:
'200':
description: Orders.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Order'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createOrder
summary: Blockchain.com Create a New Order
description: |
Submits a new order. Supports LIMIT, MARKET, STOP, and STOPLIMIT order types.
tags: [Trading]
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderRequest'
responses:
'200':
description: Order accepted.
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: cancelAllOrders
summary: Blockchain.com Cancel All Open Orders
description: Cancels every open order, optionally filtered by symbol.
tags: [Trading]
parameters:
- name: symbol
in: query
description: If supplied, only cancel orders for this symbol.
schema:
type: string
responses:
'200':
description: Cancellation accepted.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/orders/{orderId}:
get:
operationId: getOrder
summary: Blockchain.com Get a Single Order
description: Returns the current state of one order.
tags: [Trading]
parameters:
- $ref: '#/components/parameters/OrderIdPath'
responses:
'200':
description: Order detail.
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: cancelOrder
summary: Blockchain.com Cancel a Single Order
description: Cancels an open order.
tags: [Trading]
parameters:
- $ref: '#/components/parameters/OrderIdPath'
responses:
'200':
description: Cancellation accepted.
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/trades:
get:
operationId: listTrades
summary: Blockchain.com List Trades
description: Returns historical filled orders (including partial fills).
tags: [Trading]
parameters:
- name: symbol
in: query
schema:
type: string
- name: from
in: query
schema:
type: integer
format: int64
- name: to
in: query
schema:
type: integer
format: int64
- name: limit
in: query
schema:
type: integer
default: 100
responses:
'200':
description: Trades.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Trade'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/fills:
get:
operationId: listFills
summary: Blockchain.com List Fills
description: Returns individual fill executions including fees.
tags: [Trading]
parameters:
- name: symbol
in: query
schema:
type: string
- name: from
in: query
schema:
type: integer
format: int64
- name: limit
in: query
schema:
type: integer
default: 100
responses:
'200':
description: Fills.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Fill'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
# --------------------------------------------------------------
# PAYMENTS (authenticated)
# --------------------------------------------------------------
/accounts:
get:
operationId: listAccounts
summary: Blockchain.com List Account Balances
description: Returns balances across all currencies and account types.
tags: [Payments]
responses:
'200':
description: Account balances.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Account'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/accounts/{account}/{currency}:
get:
operationId: getAccountBalance
summary: Blockchain.com Get Account Balance
description: Returns the balance for a specific account type and currency.
tags: [Payments]
parameters:
- name: account
in: path
required: true
description: Account type (e.g. `primary`).
schema:
type: string
- name: currency
in: path
required: true
description: Currency ticker (e.g. `BTC`).
schema:
type: string
responses:
'200':
description: Account balance.
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/deposits:
get:
operationId: listDeposits
summary: Blockchain.com List Deposits
description: Returns deposit history.
tags: [Payments]
parameters:
- name: from
in: query
schema:
type: integer
format: int64
- name: to
in: query
schema:
type: integer
format: int64
responses:
'200':
description: Deposits.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Deposit'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/deposits/{depositId}:
get:
operationId: getDeposit
summary: Blockchain.com Get a Single Deposit
description: Returns the status of one deposit.
tags: [Payments]
parameters:
- name: depositId
in: path
required: true
schema:
type: string
responses:
'200':
description: Deposit detail.
content:
application/json:
schema:
$ref: '#/components/schemas/Deposit'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/deposits/{currency}/address:
post:
operationId: createDepositAddress
summary: Blockchain.com Create a Deposit Address
description: Generates a new deposit address for the specified currency.
tags: [Payments]
parameters:
- name: currency
in: path
required: true
description: Currency ticker (e.g. `BTC`).
schema:
type: string
responses:
'200':
description: New deposit address.
content:
application/json:
schema:
$ref: '#/components/schemas/DepositAddress'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/withdrawals:
get:
operationId: listWithdrawals
summary: Blockchain.com List Withdrawals
description: Returns withdrawal history.
tags: [Payments]
parameters:
- name: from
in: query
schema:
type: integer
format: int64
- name: to
in: query
schema:
type: integer
format: int64
responses:
'200':
description: Withdrawals.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Withdrawal'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createWithdrawal
summary: Blockchain.com Create a Withdrawal
description: Submits a withdrawal to a whitelisted beneficiary.
tags: [Payments]
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWithdrawalRequest'
responses:
'200':
description: Withdrawal accepted.
content:
application/json:
schema:
$ref: '#/components/schemas/Withdrawal'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/withdrawals/{withdrawalId}:
get:
operationId: getWithdrawal
summary: Blockchain.com Get a Single Withdrawal
description: Returns the status of one withdrawal.
tags: [Payments]
parameters:
- name: withdrawalId
in: path
required: true
schema:
type: string
responses:
'200':
description: Withdrawal detail.
content:
application/json:
schema:
$ref: '#/components/schemas/Withdrawal'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/whitelist:
get:
operationId: listWhitelist
summary: Blockchain.com List Whitelisted Beneficiaries
description: Returns the user's whitelisted withdrawal beneficiaries.
tags: [Payments]
responses:
'200':
description: Whitelist entries.
content:
application/json:
schema:
$ref: '#/components/schemas/Whitelist'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/whitelist/{currency}:
get:
operationId: listWhitelistByCurrency
summary: Blockchain.com List Whitelist by Currency
description: Returns the user's whitelisted beneficiaries for a specific currency.
tags: [Payments]
parameters:
- name: currency
in: path
required: true
schema:
type: string
responses:
'200':
description: Whitelist entries.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Beneficiary'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
securitySchemes:
ApiToken:
type: apiKey
in: header
name: X-API-Token
description: API key minted in the Exchange API settings panel; required on authenticated endpoints.
parameters:
SymbolPath:
name: symbol
in: path
required: true
description: Trading pair symbol (e.g. `BTC-USD`).
schema:
type: string
example: BTC-USD
OrderIdPath:
name: orderId
in: path
required: true
description: Order identifier.
schema:
type: string
example: "21745988181"
schemas:
Symbol:
type: object
description: Metadata describing one trading pair on the Exchange.
properties:
base_currency:
type: string
description: Base currency ticker.
example: BTC
base_currency_scale:
type: integer
description: Decimal precision of the base currency.
example: 8
counter_currency:
type: string
description: Counter currency ticker.
example: USD
counter_currency_scale:
type: integer
description: Decimal precision of the counter currency.
example: 2
min_price_increment:
type: number
description: Smallest price increment allowed.
example: 72525.0
min_price_increment_scale:
type: integer
example: 8
min_order_size:
type: integer
description: Minimum order size (in counter currency minor units).
min_order_size_scale:
type: integer
example: 8
max_order_size:
type: integer
max_order_size_scale:
type: integer
example: 8
lot_size:
type: integer
description: Lot size for orders.
lot_size_scale:
type: integer
example: 8
status:
type: string
description: Symbol status (`open` or `close`).
example: open
id:
type: integer
description: Internal symbol identifier.
auction_price:
type: number
example: 72525.0
auction_size:
type: number
auction_time:
type: integer
format: int64
example: 1748609400000
imbalance:
type: number
Ticker:
type: object
description: Current price and 24-hour metrics for a single trading pair.
properties:
symbol:
type: string
example: BTC-USD
price_24h:
type: number
description: 24-hour reference price.
example: 72525.0
volume_24h:
type: number
description: Trading volume over the last 24 hours.
example: 0.5
last_trade_price:
type: number
description: Most recent trade price.
example: 72525.0
OrderBook:
type: object
description: Aggregated (L2) or per-order (L3) order book for a symbol.
properties:
symbol:
type: string
example: BTC-USD
bids:
type: array
items:
$ref: '#/components/schemas/PriceLevel'
asks:
type: array
items:
$ref: '#/components/schemas/PriceLevel'
PriceLevel:
type: object
description: One side of the order book at a single price.
properties:
px:
type: number
description: Price.
example: 72525.0
qty:
type: number
description: Quantity available at this price.
example: 0.5
num:
type: integer
description: Number of orders at this price (L2 only).
Fees:
type: object
description: Maker/taker fee schedule.
properties:
makerRate:
type: number
description: Maker fee rate.
example: 72525.0
takerRate:
type: number
description: Taker fee rate.
example: 72525.0
volumeInUSD:
type: number
description: 30-day trading volume in USD used to compute the rate tier.
example: 0.5
Order:
type: object
description: An order submitted to the matching engine.
properties:
orderId:
type: integer
format: int64
gwOrderId:
type: integer
format: int64
clOrdId:
type: string
example: '21745988181'
symbol:
type: string
example: BTC-USD
ordType:
type: string
description: Order type — `limit`, `market`, `stop`, `stopLimit`.
timeInForce:
type: string
description: Time in force — `GTC`, `IOC`, `FOK`, `GTD`.
side:
type: string
description: "`buy` or `sell`."
example: buy
orderQty:
type: number
example: 0.5
minQty:
type: number
example: 0.5
cumQty:
type: number
example: 0.5
price:
type: number
example: 72525.0
stopPx:
type: number
ordStatus:
type: string
description: Status — `pending`, `open`, `filled`, `partial`, `cancelled`, `rejected`, `expired`.
example: open
expireDate:
type: integer
execID:
type: string
example: '21745988181'
avgPx:
type: number
CreateOrderRequest:
type: object
required: [clOrdId, ordType, symbol, side, orderQty]
description: Payload for submitting a new order.
properties:
clOrdId:
type: string
description: Client-supplied order identifier.
example: '21745988181'
ordType:
type: string
enum: [limit, market, stop, stopLimit]
example: limit
timeInForce:
type: string
enum: [GTC, IOC, FOK, GTD]
example: GTC
symbol:
type: string
example: BTC-USD
side:
type: string
enum: [buy, sell]
example: buy
orderQty:
type: number
example: 0.5
price:
type: number
example: 72525.0
stopPx:
type: number
minQty:
type: number
example: 0.5
expireDate:
type: integer
Trade:
type: object
description: A filled order or partial fill.
properties:
exOrdId:
type: integer
format: int64
clOrdId:
type: string
example: '21745988181'
symbol:
type: string
example: BTC-USD
side:
type: string
example: buy
price:
type: number
example: 72525.0
qty:
type: number
example: 0.5
fee:
type: number
timestamp:
type: integer
format: int64
example: 1748609400000
Fill:
type: object
description: A single execution leg, including fees.
properties:
execId:
type: string
example: '21745988181'
orderId:
type: integer
format: int64
symbol:
type: string
example: BTC-USD
side:
type: string
example: buy
price:
type: number
example: 72525.0
qty:
type: number
example: 0.5
fee:
type: number
feeCurrency:
type: string
example: BTC
timestamp:
type: integer
format: int64
example: 1748609400000
Account:
type: object
description: Balance for a single account/currency.
properties:
primary:
type: string
name:
type: string
example: My Entry
currency:
type: string
example: BTC
balance:
type: number
available:
type: number
balance_local:
type: number
available_local:
type: number
rate:
type: number
example: 72525.0
type:
type: string
Deposit:
type: object
description: A deposit record.
properties:
id:
type: string
example: '21745988181'
amount:
type: number
amount_local:
type: number
currency:
type: string
example: BTC
timestamp:
type: integer
format: int64
example: 1748609400000
address:
type: string
example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
txHash:
type: string
example: 00000000000000000004f4e7a18a09b1f8e96d6fb01d9b6fce4d12cb3f8a7e21
state:
type: string
description: Deposit state — `PENDING`, `CONFIRMED`, `REJECTED`.
example: open
DepositAddress:
type: object
description: A newly generated deposit address.
properties:
currency:
type: string
example: BTC
address:
type: string
example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Withdrawal:
type: object
description: A withdrawal record.
properties:
withdrawalId:
type: string
example: '21745988181'
amount:
type: number
currency:
type: string
example: BTC
beneficiary:
type: string
state:
type: string
description: Withdrawal state — `NONE`, `IN_PROGRESS`, `COMPLETE`, `REJECTED`.
example: open
timestamp:
type: integer
format: int64
example: 1748609400000
fee:
type: number
CreateWithdrawalRequest:
type: object
required: [currency, amount, beneficiary]
description: Payload for submitting a withdrawal.
properties:
currency:
type: string
description: Currency ticker.
example: BTC
amount:
type: string
description: Amount to withdraw (decimal string).
example: "0.0001"
beneficiary:
type: string
description: Beneficiary id (from `/whitelist`).
Beneficiary:
type: object
description: A whitelisted withdrawal destination.
properties:
id:
type: string
example: '21745988181'
address:
type: string
example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
currency:
type: string
example: BTC
state:
type: string
description: Beneficiary state — `ACTIVE`, `PENDING`, `REJECTED`.
example: open
name:
type: string
example: My Entry
whitelisted:
type: boolean
example: true
fiat:
type: boolean
example: true
agent:
type: object
description: Routing details for fiat beneficiaries.
properties:
account:
type: string
address:
type: string
code:
type: string
country:
type: string
name:
type: string
recipient:
type: string
routingNumber:
type: string
Whitelist:
type: object
description: Whitelist response listing capabilities and active beneficiaries.
properties:
capabilities:
type: array
items:
$ref: '#/components/schemas/WhitelistCapability'
enabled:
type: boolean
example: true
enabledAt:
type: string
format: date-time
example: '2026-05-30T14:30:00Z'
whitelisted:
type: array
items:
$ref: '#/components/schemas/Beneficiary'
WhitelistCapability:
type: object
description: Per-currency capability flags for the whitelist.
properties:
currency:
type: string
example: BTC
address:
type: boolean
example: true
xpub:
type: boolean
example: true
existingBeneficiaryOnly:
type: boolean
example: true
fiat:
type: boolean
example: true