Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
WEEX Futures exchange integration. Trade USDT-M perpetual futures with up to 125x leverage on WEEX.
WEEX Futures exchange integration. Trade USDT-M perpetual futures with up to 125x leverage on WEEX.
This item's current download entry is known to bounce back to a listing or homepage instead of returning a package file.
Use the source page and any available docs to guide the install because the item currently does not return a direct package file.
I tried to install a skill package from Yavira, but the item currently does not return a direct package file. Inspect the source page and any extracted docs, then tell me what you can confirm and any manual steps still required. Then review README.md for any prerequisites, environment setup, or post-install checks.
I tried to upgrade a skill package from Yavira, but the item currently does not return a direct package file. Compare the source page and any extracted docs with my current installation, then summarize what changed and what manual follow-up I still need. Then review README.md for any prerequisites, environment setup, or post-install checks.
Open AI Agent Skill for USDT-margined perpetual futures trading on WEEX exchange. Up to 125x leverage. Open Agent Skill: This skill is designed to work with any AI agent that supports bash/curl commands, including Claude, GPT, Gemini, LLaMA, Mistral, and other LLM-based agents.
๐ Futures Trading - USDT-M perpetual contracts up to 125x leverage ๐ฐ Account Management - Balance, positions, margin settings ๐ Market Data - Tickers, order book, candlesticks, funding rates ๐ฏ Advanced Orders - Trigger orders, TP/SL, conditional orders ๐ค AI Integration - Log AI trading decisions ๐ Universal Compatibility - Works with any AI agent supporting shell commands
VariableDescriptionRequiredWEEX_API_KEYAPI Key from WEEXYesWEEX_API_SECRETAPI SecretYesWEEX_PASSPHRASEAPI PassphraseYesWEEX_BASE_URLAPI base URLNo (default: https://api-contract.weex.com)
API_KEY="${WEEX_API_KEY}" SECRET="${WEEX_API_SECRET}" PASSPHRASE="${WEEX_PASSPHRASE}" BASE_URL="${WEEX_BASE_URL:-https://api-contract.weex.com}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") # Generate signature generate_signature() { local method="$1" local path="$2" local body="$3" local message="${TIMESTAMP}${method}${path}${body}" echo -n "$message" | openssl dgst -sha256 -hmac "$SECRET" -binary | base64 }
curl -s "${BASE_URL}/capi/v2/market/time" | jq '.'
curl -s "${BASE_URL}/capi/v2/market/contracts" | jq '.data[] | {symbol: .symbol, baseCoin: .underlying_index, quoteCoin: .quote_currency, contractVal: .contract_val, minLeverage: .minLeverage, maxLeverage: .maxLeverage, tickSize: .tick_size, sizeIncrement: .size_increment}'
SYMBOL="cmt_btcusdt" curl -s "${BASE_URL}/capi/v2/market/contracts?symbol=${SYMBOL}" | jq '.data'
SYMBOL="cmt_btcusdt" curl -s "${BASE_URL}/capi/v2/market/ticker?symbol=${SYMBOL}" | jq '.data | {symbol: .symbol, last: .last, high: .high_24h, low: .low_24h, volume: .volume_24h, markPrice: .markPrice}'
curl -s "${BASE_URL}/capi/v2/market/tickers" | jq '.data[] | {symbol: .symbol, last: .last, change: .priceChangePercent, volume: .volume_24h}'
SYMBOL="cmt_btcusdt" curl -s "${BASE_URL}/capi/v2/market/depth?symbol=${SYMBOL}&limit=15" | jq '.data | {asks: .asks[:5], bids: .bids[:5]}'
SYMBOL="cmt_btcusdt" LIMIT="50" curl -s "${BASE_URL}/capi/v2/market/trades?symbol=${SYMBOL}&limit=${LIMIT}" | jq '.data[] | {time: .time, price: .price, size: .size, side: (if .isBuyerMaker then "sell" else "buy" end)}'
SYMBOL="cmt_btcusdt" GRANULARITY="1h" # 1m, 5m, 15m, 30m, 1h, 4h, 12h, 1d, 1w LIMIT="100" curl -s "${BASE_URL}/capi/v2/market/candles?symbol=${SYMBOL}&granularity=${GRANULARITY}&limit=${LIMIT}" | jq '.data[] | {timestamp: .[0], open: .[1], high: .[2], low: .[3], close: .[4], volume: .[5]}'
SYMBOL="cmt_btcusdt" curl -s "${BASE_URL}/capi/v2/market/index?symbol=${SYMBOL}" | jq '.data | {symbol: .symbol, index: .index, timestamp: .timestamp}'
SYMBOL="cmt_btcusdt" curl -s "${BASE_URL}/capi/v2/market/open_interest?symbol=${SYMBOL}" | jq '.data[] | {symbol: .symbol, openInterest: .base_volume, value: .target_volume}'
SYMBOL="cmt_btcusdt" curl -s "${BASE_URL}/capi/v2/market/currentFundRate?symbol=${SYMBOL}" | jq '.data[] | {symbol: .symbol, rate: .fundingRate, nextSettlement: .timestamp}'
SYMBOL="cmt_btcusdt" LIMIT="20" curl -s "${BASE_URL}/capi/v2/market/getHistoryFundRate?symbol=${SYMBOL}&limit=${LIMIT}" | jq '.data[] | {symbol: .symbol, rate: .fundingRate, settleTime: .fundingTime}'
SYMBOL="cmt_btcusdt" curl -s "${BASE_URL}/capi/v2/market/funding_time?symbol=${SYMBOL}" | jq '.data | {symbol: .symbol, nextFundingTime: .fundingTime}'
PATH_URL="/capi/v2/account/assets" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | {coin: .coinName, available: .available, frozen: .frozen, equity: .equity, unrealizedPnl: .unrealizePnl}'
PATH_URL="/capi/v2/account/getAccounts" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data'
COIN="USDT" PATH_URL="/capi/v2/account/getAccount?coin=${COIN}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data'
SYMBOL="cmt_btcusdt" PATH_URL="/capi/v2/account/settings?symbol=${SYMBOL}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data'
SYMBOL="cmt_btcusdt" LEVERAGE="20" MARGIN_MODE="1" # 1=Cross, 3=Isolated PATH_URL="/capi/v2/account/leverage" BODY="{\"symbol\":\"${SYMBOL}\",\"marginMode\":${MARGIN_MODE},\"longLeverage\":\"${LEVERAGE}\",\"shortLeverage\":\"${LEVERAGE}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
POSITION_ID="123456789" # Isolated position ID AMOUNT="100" # Positive to add, negative to reduce PATH_URL="/capi/v2/account/adjustMargin" BODY="{\"coinId\":2,\"isolatedPositionId\":${POSITION_ID},\"collateralAmount\":\"${AMOUNT}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
POSITION_ID="123456789" # Isolated position ID AUTO_APPEND="true" # true to enable, false to disable PATH_URL="/capi/v2/account/modifyAutoAppendMargin" BODY="{\"positionId\":${POSITION_ID},\"autoAppendMargin\":${AUTO_APPEND}}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
COIN="USDT" LIMIT="20" PATH_URL="/capi/v2/account/bills" BODY="{\"coin\":\"${COIN}\",\"limit\":${LIMIT}}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.data'
PATH_URL="/capi/v2/account/position/allPosition" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | select(.size != "0") | {symbol: .symbol, side: .side, size: .size, leverage: .leverage, unrealizedPnl: .unrealizePnl, entryPrice: .avg_cost}'
SYMBOL="cmt_btcusdt" PATH_URL="/capi/v2/account/position/singlePosition?symbol=${SYMBOL}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | {symbol: .symbol, side: .side, size: .size, leverage: .leverage, unrealizedPnl: .unrealizePnl, entryPrice: .avg_cost, liquidationPrice: .liq_price}'
SYMBOL="cmt_btcusdt" MARGIN_MODE="1" # 1=Cross, 3=Isolated PATH_URL="/capi/v2/account/position/changeHoldModel" BODY="{\"symbol\":\"${SYMBOL}\",\"marginMode\":${MARGIN_MODE},\"separatedMode\":1}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
SYMBOL="cmt_btcusdt" SIZE="10" # Quantity in contracts TYPE="1" # 1=Open Long, 2=Open Short, 3=Close Long, 4=Close Short CLIENT_OID="order_$(date +%s)" PATH_URL="/capi/v2/order/placeOrder" BODY="{\"symbol\":\"${SYMBOL}\",\"client_oid\":\"${CLIENT_OID}\",\"size\":\"${SIZE}\",\"type\":\"${TYPE}\",\"order_type\":\"0\",\"match_price\":\"1\",\"price\":\"0\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
SYMBOL="cmt_btcusdt" SIZE="10" TYPE="1" # 1=Open Long PRICE="90000" # Limit price ORDER_TYPE="0" # 0=Normal, 1=Post-only, 2=FOK, 3=IOC CLIENT_OID="limit_$(date +%s)" PATH_URL="/capi/v2/order/placeOrder" BODY="{\"symbol\":\"${SYMBOL}\",\"client_oid\":\"${CLIENT_OID}\",\"size\":\"${SIZE}\",\"type\":\"${TYPE}\",\"order_type\":\"${ORDER_TYPE}\",\"match_price\":\"0\",\"price\":\"${PRICE}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
PATH_URL="/capi/v2/order/current" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, side: .type, price: .price, size: .size, status: .status}'
ORDER_ID="1234567890" PATH_URL="/capi/v2/order/detail?orderId=${ORDER_ID}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data'
SYMBOL="cmt_btcusdt" LIMIT="50" PATH_URL="/capi/v2/order/history?symbol=${SYMBOL}&limit=${LIMIT}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, side: .type, price: .price, size: .size, filledSize: .filled_qty, status: .status}'
SYMBOL="cmt_btcusdt" LIMIT="50" PATH_URL="/capi/v2/order/fills?symbol=${SYMBOL}&limit=${LIMIT}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | {tradeId: .trade_id, orderId: .order_id, symbol: .symbol, price: .price, size: .size, fee: .fee, time: .created_at}'
ORDER_ID="1234567890" PATH_URL="/capi/v2/order/cancel_order" BODY="{\"orderId\":\"${ORDER_ID}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
SYMBOL="cmt_btcusdt" # Optional: omit to cancel all PATH_URL="/capi/v2/order/cancelAllOrders" BODY="{\"symbol\":\"${SYMBOL}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
PATH_URL="/capi/v2/order/closePositions" BODY="{}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
SYMBOL="cmt_btcusdt" SIZE="10" TYPE="1" # 1=Open Long, 2=Open Short, 3=Close Long, 4=Close Short TRIGGER_PRICE="95000" # Price that triggers the order EXECUTE_PRICE="0" # 0 for market, or limit price TRIGGER_TYPE="1" # 1=Fill price, 2=Mark price, 3=Index price CLIENT_OID="trigger_$(date +%s)" PATH_URL="/capi/v2/order/plan_order" BODY="{\"symbol\":\"${SYMBOL}\",\"client_oid\":\"${CLIENT_OID}\",\"size\":\"${SIZE}\",\"type\":\"${TYPE}\",\"trigger_price\":\"${TRIGGER_PRICE}\",\"execute_price\":\"${EXECUTE_PRICE}\",\"trend_side\":\"1\",\"trigger_type\":\"${TRIGGER_TYPE}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
SYMBOL="cmt_btcusdt" PATH_URL="/capi/v2/order/currentPlan?symbol=${SYMBOL}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, triggerPrice: .trigger_price, size: .size, type: .type}'
SYMBOL="cmt_btcusdt" LIMIT="50" PATH_URL="/capi/v2/order/historyPlan?symbol=${SYMBOL}&limit=${LIMIT}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "GET" "$PATH_URL" "") curl -s "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, triggerPrice: .trigger_price, status: .status}'
ORDER_ID="1234567890" PATH_URL="/capi/v2/order/cancel_plan" BODY="{\"orderId\":\"${ORDER_ID}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
SYMBOL="cmt_btcusdt" SIDE="1" # 1=Long position, 2=Short position TP_PRICE="100000" # Take profit trigger price SL_PRICE="85000" # Stop loss trigger price TP_SIZE="10" # Take profit size (0 for entire position) SL_SIZE="10" # Stop loss size (0 for entire position) PATH_URL="/capi/v2/order/placeTpSlOrder" BODY="{\"symbol\":\"${SYMBOL}\",\"side\":\"${SIDE}\",\"tp_trigger_price\":\"${TP_PRICE}\",\"sl_trigger_price\":\"${SL_PRICE}\",\"tp_size\":\"${TP_SIZE}\",\"sl_size\":\"${SL_SIZE}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
SYMBOL="cmt_btcusdt" SIDE="1" # 1=Long position, 2=Short position TP_PRICE="105000" # New take profit price SL_PRICE="82000" # New stop loss price PATH_URL="/capi/v2/order/modifyTpSlOrder" BODY="{\"symbol\":\"${SYMBOL}\",\"side\":\"${SIDE}\",\"tp_trigger_price\":\"${TP_PRICE}\",\"sl_trigger_price\":\"${SL_PRICE}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
AI_LOG="Trading decision: Buy BTC based on momentum indicators" ORDER_ID="1234567890" PATH_URL="/capi/v2/order/uploadAiLog" BODY="{\"orderId\":\"${ORDER_ID}\",\"aiLog\":\"${AI_LOG}\"}" TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))") SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY") curl -s -X POST "${BASE_URL}${PATH_URL}" \ -H "ACCESS-KEY: ${API_KEY}" \ -H "ACCESS-SIGN: ${SIGNATURE}" \ -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "Content-Type: application/json" \ -d "$BODY" | jq '.'
typeDescription1Open Long (buy to open)2Open Short (sell to open)3Close Long (sell to close)4Close Short (buy to close)
order_typeDescription0Normal order1Post-only (maker only)2FOK (fill or kill)3IOC (immediate or cancel)
match_priceDescription0Limit order1Market order
marginModeDescription1Cross margin3Isolated margin
trigger_typeDescription1Fill price (last trade price)2Mark price3Index price
PairDescriptioncmt_btcusdtBitcoin / USDTcmt_ethusdtEthereum / USDTcmt_solusdtSolana / USDTcmt_xrpusdtXRP / USDTcmt_dogeusdtDogecoin / USDTcmt_bnbusdtBNB / USDT
ALWAYS display order details before execution VERIFY trading pair and quantity CHECK account balance before trading WARN about leverage risks (up to 125x) NEVER execute without user confirmation CONFIRM position closure before executing
CodeDescriptionSolution00000Success-40001Invalid parameterCheck parameter format40101Invalid API key/signatureVerify credentials and timestamp40301IP not whitelistedAdd IP to whitelist42901Rate limit exceededReduce request frequency50001Internal errorRetry after delay
CategoryIP LimitUID LimitMarket Data20 req/secN/AAccount Info10 req/sec10 req/secOrder Placement10 req/sec10 req/sec
WEEX Base URL: https://api-contract.weex.com API Reference
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.