✓ Verified 🌐 Web Scrapers ✓ Enhanced Data

Ccxt

Interact with 100+ cryptocurrency exchanges — fetch markets, order books, tickers, place orders, che

Rating
4.8 (428 reviews)
Downloads
545 downloads
Version
1.0.0

Overview

Interact with 100+ cryptocurrency exchanges — fetch markets, order books, tickers, place orders, check balances.

Complete Documentation

View Source →

CCXT — Cryptocurrency Exchange Trading

You have access to the ccxt CLI tool which lets you interact with 100+ cryptocurrency exchanges (Binance, Bybit, OKX, Kraken, Coinbase, and many more). You can fetch market data, place orders, check balances, and stream live data.

Core Syntax

bash
ccxt <exchange_id> <methodName> [args...] [options]

Before Calling Any Method

If you're unsure about the required arguments for a method, run:

bash
ccxt explain <methodName>

This will show you the required and optional arguments with descriptions.

Available Options

FlagPurpose
--verboseShow raw request/response data
--sandboxUse testnet/sandbox environment
--rawOutput clean JSON without formatting
--swapTarget swap/perpetuals account
--futureTarget futures account
--spotTarget spot account
--optionTarget options account
--param key=valuePass extra exchange-specific params (repeatable)
--no-keysSkip API key loading

Common Operations

Market Data (Public — No API Keys Required)

Fetch markets (list all trading pairs on an exchange):

bash
ccxt <exchange> fetchMarkets --raw

Fetch a single ticker:

bash
ccxt <exchange> fetchTicker "BTC/USDT" --raw

Fetch multiple tickers:

bash
ccxt <exchange> fetchTickers --raw

Fetch order book:

bash
ccxt <exchange> fetchOrderBook "BTC/USDT" --raw

Fetch OHLCV candles:

bash
ccxt <exchange> fetchOHLCV "BTC/USDT" 1h undefined 10 --raw

Fetch recent trades:

bash
ccxt <exchange> fetchTrades "BTC/USDT" --raw

Fetch exchange status:

bash
ccxt <exchange> fetchStatus --raw

Fetch currencies:

bash
ccxt <exchange> fetchCurrencies --raw

Trading (Private — Requires API Keys)

Create an order:

bash
ccxt <exchange> createOrder "BTC/USDT" limit buy 0.001 50000 --raw
ccxt <exchange> createOrder "BTC/USDT" market buy 0.001 --raw

Create order with extra params:

bash
ccxt <exchange> createOrder "BTC/USDT" limit buy 0.001 50000 --param stopPrice=49000 --raw

Cancel an order:

bash
ccxt <exchange> cancelOrder "<order_id>" "BTC/USDT" --raw

Fetch open orders:

bash
ccxt <exchange> fetchOpenOrders "BTC/USDT" --raw

Fetch closed orders:

bash
ccxt <exchange> fetchClosedOrders "BTC/USDT" --raw

Fetch a specific order:

bash
ccxt <exchange> fetchOrder "<order_id>" "BTC/USDT" --raw

Account (Private — Requires API Keys)

Fetch balance:

bash
ccxt <exchange> fetchBalance --raw

Fetch balance for derivatives:

bash
ccxt <exchange> fetchBalance --swap --raw

Fetch my trades:

bash
ccxt <exchange> fetchMyTrades "BTC/USDT" --raw

Fetch positions (derivatives):

bash
ccxt <exchange> fetchPositions --swap --raw

Fetch deposit address:

bash
ccxt <exchange> fetchDepositAddress "BTC" --raw

Derivatives

Fetch funding rate:

bash
ccxt <exchange> fetchFundingRate "BTC/USDT:USDT" --raw

Fetch funding rate history:

bash
ccxt <exchange> fetchFundingRateHistory "BTC/USDT:USDT" --raw

Fetch mark price / index price:

bash
ccxt <exchange> fetchMarkOHLCV "BTC/USDT:USDT" 1h --raw
ccxt <exchange> fetchIndexOHLCV "BTC/USDT:USDT" 1h --raw

Important Rules

  • Always quote symbols that contain / or : — e.g., "BTC/USDT", "BTC/USDT:USDT".
  • Use undefined as a positional placeholder to skip optional arguments while providing later ones. For example: ccxt binance fetchOHLCV "BTC/USDT" 1h undefined 10 skips since but provides limit.
  • Use --raw when you need to parse the output programmatically or when the user needs clean JSON.
  • Use --sandbox for testing with testnet environments. Always recommend sandbox mode when the user is experimenting with orders.
  • ISO8601 datetimes (e.g., "2025-01-01T00:00:00Z") are auto-converted to milliseconds.
  • API keys must be configured via environment variables (e.g., BINANCE_APIKEY, BINANCE_SECRET) or the config file. If a private method fails due to missing credentials, instruct the user to set them up.
  • Derivatives symbols use the format "BASE/QUOTE:SETTLE" — e.g., "BTC/USDT:USDT" for USDT-margined perpetuals.
  • Be careful with order methods — always confirm amounts and prices with the user before executing createOrder. The CLI executes immediately with no confirmation prompt.
  • When the output is large (e.g., fetchMarkets returns hundreds of entries), consider piping through | head or filtering, or suggest the user narrows their query.
  • For the list of supported exchanges, you can check: ccxt exchanges or refer to https://docs.ccxt.com.

Authentication Setup

Tell users to configure credentials in one of two ways:

Option 1 — Environment variables:

bash
export BINANCE_APIKEY=your_api_key
export BINANCE_SECRET=your_secret

Option 2 — Config file (path shown in ccxt --help):

json
{
  "binance": {
    "apiKey": "your_api_key",
    "secret": "your_secret"
  }
}

Error Handling

  • If you get an AuthenticationError, the API keys are missing or invalid.
  • If you get an ExchangeNotAvailable or NetworkError, the exchange may be down or rate-limiting.
  • If you get an BadSymbol, the trading pair doesn't exist on that exchange — use fetchMarkets to check available pairs.
  • If you get an InsufficientFunds, the account doesn't have enough balance for the operation.

Installation

Terminal bash

openclaw install ccxt
    
Copied!

💻Code Examples

ccxt <exchange_id> <methodName> [args...] [options]

ccxt-exchangeid-methodname-args-options.txt
## Before Calling Any Method

If you're unsure about the required arguments for a method, run:

ccxt explain <methodName>

ccxt-explain-methodname.txt
This will show you the required and optional arguments with descriptions.

## Available Options

| Flag | Purpose |
|------|---------|
| `--verbose` | Show raw request/response data |
| `--sandbox` | Use testnet/sandbox environment |
| `--raw` | Output clean JSON without formatting |
| `--swap` | Target swap/perpetuals account |
| `--future` | Target futures account |
| `--spot` | Target spot account |
| `--option` | Target options account |
| `--param key=value` | Pass extra exchange-specific params (repeatable) |
| `--no-keys` | Skip API key loading |

## Common Operations

### Market Data (Public — No API Keys Required)

**Fetch markets (list all trading pairs on an exchange):**

ccxt <exchange> fetchCurrencies --raw

ccxt-exchange-fetchcurrencies---raw.txt
### Trading (Private — Requires API Keys)

**Create an order:**

ccxt <exchange> fetchOrder "<order_id>" "BTC/USDT" --raw

ccxt-exchange-fetchorder-orderid-btcusdt---raw.txt
### Account (Private — Requires API Keys)

**Fetch balance:**

ccxt <exchange> fetchDepositAddress "BTC" --raw

ccxt-exchange-fetchdepositaddress-btc---raw.txt
### Derivatives

**Fetch funding rate:**

ccxt <exchange> fetchIndexOHLCV "BTC/USDT:USDT" 1h --raw

ccxt-exchange-fetchindexohlcv-btcusdtusdt-1h---raw.txt
## Important Rules

1. **Always quote symbols** that contain `/` or `:` — e.g., `"BTC/USDT"`, `"BTC/USDT:USDT"`.
2. **Use `undefined`** as a positional placeholder to skip optional arguments while providing later ones. For example: `ccxt binance fetchOHLCV "BTC/USDT" 1h undefined 10` skips `since` but provides `limit`.
3. **Use `--raw`** when you need to parse the output programmatically or when the user needs clean JSON.
4. **Use `--sandbox`** for testing with testnet environments. Always recommend sandbox mode when the user is experimenting with orders.
5. **ISO8601 datetimes** (e.g., `"2025-01-01T00:00:00Z"`) are auto-converted to milliseconds.
6. **API keys** must be configured via environment variables (e.g., `BINANCE_APIKEY`, `BINANCE_SECRET`) or the config file. If a private method fails due to missing credentials, instruct the user to set them up.
7. **Derivatives symbols** use the format `"BASE/QUOTE:SETTLE"` — e.g., `"BTC/USDT:USDT"` for USDT-margined perpetuals.
8. **Be careful with order methods** — always confirm amounts and prices with the user before executing `createOrder`. The CLI executes immediately with no confirmation prompt.
9. When the output is large (e.g., `fetchMarkets` returns hundreds of entries), consider piping through `| head` or filtering, or suggest the user narrows their query.
10. For the list of supported exchanges, you can check: `ccxt exchanges` or refer to https://docs.ccxt.com.

## Authentication Setup

Tell users to configure credentials in one of two ways:

**Option 1 — Environment variables:**
example.json
{
  "binance": {
    "apiKey": "your_api_key",
    "secret": "your_secret"
  }
}

Tags

#browser_and-automation

Quick Info

Category Web Scrapers
Model Claude 3.5
Complexity One-Click
Author pcriadoperez
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install ccxt