OpenClaw · Skill

Upbit Market Data Skill

A CLI-based OpenClaw skill that fetches quotation/market data from the Upbit Open API.

Coding Agents & IDEs
v1.0.2
VirusTotal: Suspicious

Install

Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.

Primary command

clawhub install kuns9/upbit-market-data-skill

ClawHub installer

npx clawhub@latest install kuns9/upbit-market-data-skill

OpenClaw CLI

openclaw skills install kuns9/upbit-market-data-skill

Direct OpenClaw install

openclaw install kuns9/upbit-market-data-skill

What this skill does

A CLI-based OpenClaw skill that fetches quotation/market data from the Upbit Open API.

Why it matters

Wraps the Upbit REST API into a single CLI with strict-mode argument validation, reducing the chance of malformed requests when called by an LLM agent.

Typical use cases

  • Checking live BTC/ETH prices on Upbit
  • Pulling 5-minute candle data for a trading strategy
  • Monitoring a watchlist of KRW-denominated pairs
  • Fetching orderbook depth before placing a trade
  • Aggregating recent trade history for analysis

Source instructions

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)

All responses are JSON:

  • Success → stdout: { "ok": true, "result": ... }
  • Error → stderr: { "ok": false, "error": { ... } } and exit code 1

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

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 structure

node 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 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

The skill passes Upbit error payloads (when present) under error.upbit.

Reference: https://docs.upbit.com/kr/reference/rest-api-guide

Related OpenClaw skills

Browse all →
Featured slot

Your product here

Reserve this slot to reach operators and coding-agent buyers.

Shown where builders are actively comparing tools and deployment options.

Advertise