Install
openclaw skills install upbit-market-data-skillFetch market data from Upbit via CLI commands including pairs, candles, trades, tickers, orderbooks, and watchlist with JSON output.
openclaw skills install upbit-market-data-skillA CLI-based OpenClaw skill that fetches quotation/market data from the Upbit Open API.
This skill is designed to be executed via OpenClaw exec (run-once). It supports:
All responses are JSON:
{ "ok": true, "result": ... }{ "ok": false, "error": { ... } } and exit code 1fetch)npm install
Create config/config.json.
Example:
{
"upbit": {
"baseUrl": "https://api.upbit.com",
"accessKey": "",
"secretKey": ""
},
"watchlist": ["KRW-BTC", "KRW-ETH", "KRW-SOL"]
}
Default path:
config/config.jsonOverride at runtime:
node skill.js tickers --markets=KRW-BTC --config=./config/config.json
General format:
node skill.js <command> [subcommand] [--option=value]
Rules:
<command> is required.[subcommand] is optional and MUST NOT start with --.--key=value or --key value.OpenClaw/LLM agents may reorder arguments when generating CLI calls. To prevent confusion, enable strict mode.
Add --strict=true to the command:
node skill.js tickers --markets=KRW-BTC,KRW-ETH --strict=true
When --strict=true:
candles:
node skill.js candles minutes --market=KRW-ETH --unit=5 --strict=truenode skill.js candles --market=KRW-ETH minutes --unit=5 --strict=true--type= in strict mode).subcommand must be omitted.--) will cause an error.Why strict mode helps:
node skill.js pairs --details=true --strict=true
Candles require a candle type immediately after candles.
node skill.js candles <type> --market=<MARKET> [options]
Where <type> MUST be one of:
secondsminutesdaysweeksmonthsyears⚠️ <type> is NOT passed as --unit.
⚠️ <type> must appear immediately after candles.
node skill.js candles minutes --market=KRW-ETH --unit=5 --count=100 --strict=true
Allowed minute units:
1, 3, 5, 10, 15, 30, 60, 240
node skill.js candles seconds --market=KRW-BTC --count=200 --strict=true
node skill.js candles days --market=KRW-BTC --count=50 --strict=true
node skill.js candles weeks --market=KRW-BTC --count=30 --strict=true
node skill.js candles months --market=KRW-BTC --count=12 --strict=true
node skill.js candles years --market=KRW-BTC --count=5 --strict=true
# ❌ type passed as option
node skill.js candles --unit=minutes --market=KRW-ETH
# ❌ type after options
node skill.js candles --market=KRW-ETH minutes --unit=5
node skill.js trades --market=KRW-BTC --count=50 --strict=true
node skill.js tickers --markets=KRW-BTC,KRW-ETH,KRW-SOL --strict=true
node skill.js quote-tickers --quote=KRW,BTC --strict=true
node skill.js orderbook --markets=KRW-BTC --level=100000 --count=15 --strict=true
node skill.js watchlist --strict=true
Upbit may respond with:
The skill passes Upbit error payloads (when present) under error.upbit.
Reference: https://docs.upbit.com/kr/reference/rest-api-guide