Upbit Market Data Skill
A CLI-based OpenClaw skill that fetches quotation/market data from the Upbit Open API.
- Rating
- 4.5 (269 reviews)
- Downloads
- 49,044 downloads
- Version
- 1.0.0
Overview
A CLI-based OpenClaw skill that fetches quotation/market data from the Upbit Open API.
Complete Documentation
View Source →Upbit Market Data Skill
A 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:
- Trading pair (market) list
- Candles (second/minute/day/week/month/year)
- Recent trades
- Tickers (by trading pairs / by quote currency)
- Orderbooks
- Watchlist tickers (from config)
- Success → stdout:
{ "ok": true, "result": ... } - Error → stderr:
{ "ok": false, "error": { ... } }and exit code1
Requirements
- Node.js 18+ (uses built-in
fetch) - NPM
Installation
npm install
Configuration (JSON)
Create config/config.json.
Example:
{
"upbit": {
"baseUrl": "https://api.upbit.com",
"accessKey": "",
"secretKey": ""
},
"watchlist": ["KRW-BTC", "KRW-ETH", "KRW-SOL"]
}
Config path override
Default path:
config/config.json
node skill.js tickers --markets=KRW-BTC --config=./config/config.json
CLI Grammar
General format:
node skill.js <command> [subcommand] [--option=value]
Rules:
is required.[subcommand]is optional and MUST NOT start with--.- Options must be provided as
--key=valueor--key value. - Outputs are always JSON.
STRICT MODE (Recommended for OpenClaw)
OpenClaw/LLM agents may reorder arguments when generating CLI calls. To prevent confusion, enable strict mode.
Enable strict mode
Add --strict=true to the command:
node skill.js tickers --markets=KRW-BTC,KRW-ETH --strict=true
Strict mode rules (hard requirements)
When --strict=true:
- Candle type MUST appear immediately after
candles: - ✅
node skill.js candles minutes --market=KRW-ETH --unit=5 --strict=true - ❌
node skill.js candles --market=KRW-ETH minutes --unit=5 --strict=true - Candle type MUST NOT be passed as an option (do not use
--type=in strict mode). - For non-candles commands,
subcommandmust be omitted. - Any unexpected positional arguments (extra words not starting with
--) will cause an error.
- It forces a single canonical command shape, making it far harder for OpenClaw/LLM to generate ambiguous or reordered invocations.
Commands
1) List trading pairs (markets)
node skill.js pairs --details=true --strict=true
2) Candles (CRITICAL STRUCTURE)
Candles require a candle type immediately after candles.
#### Canonical structure
node skill.js candles <type> --market=<MARKET> [options]
Where MUST be one of:
secondsminutesdaysweeksmonthsyears
is NOT passed as --unit.
⚠️ must appear immediately after candles.#### Minutes candles (5-minute example)
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
#### Other candles
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
#### Incorrect examples (DO NOT USE)
# ❌ 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
3) Recent trades
node skill.js trades --market=KRW-BTC --count=50 --strict=true
4) Tickers by trading pairs
node skill.js tickers --markets=KRW-BTC,KRW-ETH,KRW-SOL --strict=true
5) Tickers by quote currency
node skill.js quote-tickers --quote=KRW,BTC --strict=true
6) Orderbooks
node skill.js orderbook --markets=KRW-BTC --level=100000 --count=15 --strict=true
7) Watchlist tickers (from config)
node skill.js watchlist --strict=true
Error handling & rate limits
Upbit may respond with:
- 429: Too Many Requests
- 418: Request blocked
- 400: Bad request
error.upbit.Reference: https://docs.upbit.com/kr/reference/rest-api-guide
Installation
openclaw install upbit-market-data-skill
💻Code Examples
npm install
---
## Configuration (JSON)
Create `config/config.json`.
Example:}
### Config path override
Default path:
- `config/config.json`
Override at runtime:node skill.js tickers --markets=KRW-BTC --config=./config/config.json
---
## CLI Grammar
General format:node skill.js <command> [subcommand] [--option=value]
Rules:
1. `<command>` is required.
2. `[subcommand]` is optional and **MUST NOT** start with `--`.
3. Options must be provided as `--key=value` or `--key value`.
4. Outputs are always JSON.
---
## STRICT MODE (Recommended for OpenClaw)
OpenClaw/LLM agents may reorder arguments when generating CLI calls. To prevent confusion, enable **strict mode**.
### Enable strict mode
Add `--strict=true` to the command:node skill.js tickers --markets=KRW-BTC,KRW-ETH --strict=true
### Strict mode rules (hard requirements)
When `--strict=true`:
1. Candle type **MUST** appear immediately after `candles`:
- ✅ `node skill.js candles minutes --market=KRW-ETH --unit=5 --strict=true`
- ❌ `node skill.js candles --market=KRW-ETH minutes --unit=5 --strict=true`
2. Candle type **MUST NOT** be passed as an option (do not use `--type=` in strict mode).
3. For non-candles commands, `subcommand` must be omitted.
4. Any unexpected positional arguments (extra words not starting with `--`) will cause an error.
Why strict mode helps:
- It forces a single canonical command shape, making it far harder for OpenClaw/LLM to generate ambiguous or reordered invocations.
---
## Commands
### 1) List trading pairs (markets)node skill.js pairs --details=true --strict=true
---
### 2) Candles (CRITICAL STRUCTURE)
Candles require a **candle type immediately after `candles`**.
#### Canonical structurenode skill.js candles <type> --market=<MARKET> [options]
Where `<type>` MUST be one of:
- `seconds`
- `minutes`
- `days`
- `weeks`
- `months`
- `years`
⚠️ `<type>` is NOT passed as `--unit`.
⚠️ `<type>` must appear immediately after `candles`.
#### Minutes candles (5-minute example)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`
#### Other candlesnode skill.js candles --market=KRW-ETH minutes --unit=5
---
### 3) Recent tradesnode skill.js trades --market=KRW-BTC --count=50 --strict=true
---
### 4) Tickers by trading pairsTags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.