Get the FREE Ultimate OpenClaw Setup Guide →
k

UPBIT market data get skill

Scanned

@kuns9

npx machina-cli add skill @kuns9/upbit-market-data-skill --openclaw
Files (1)
SKILL.md
4.4 KB

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

Source

git clone https://clawhub.ai/kuns9/upbit-market-data-skillView on GitHub

Overview

This is a CLI-based OpenClaw skill that fetches quotation and market data from the Upbit Open API. It supports listing markets, candles, recent trades, tickers, orderbooks, and watchlist tickers, and returns all results as JSON for easy consumption by automation.

How This Skill Works

Built for Node.js 18+ and executed via OpenClaw exec, the skill uses the built-in fetch API to query Upbit endpoints. Outputs are strictly formatted JSON: stdout for success (ok: true) and stderr for errors (ok: false) with exit code 1.

When to Use It

  • You need the current list of tradable Upbit markets (markets) for discovery or monitoring.
  • You want candle data (seconds, minutes, days, weeks, months, years) for a market for charting or strategy backtests.
  • You need recent trades for a market to gauge activity and liquidity.
  • You require current tickers by trading pairs or by quote currency for pricing comparisons.
  • You want watchlist tickers driven by a config file to monitor a curated set of assets.

Quick Start

  1. Step 1: npm install
  2. Step 2: Create config/config.json with your Upbit baseUrl and watchlist
  3. Step 3: Run a sample command, e.g., node skill.js tickers --markets=KRW-BTC --strict=true

Best Practices

  • Run the skill with strict mode enabled to enforce a canonical CLI shape (add --strict=true).
  • Ensure Node.js 18+ is installed since the skill uses the built-in fetch API.
  • Always parse the JSON output and handle the ok flag to distinguish success from error.
  • When using candles, place the candle type immediately after candles (e.g., candles minutes) and avoid passing the type as an option in strict mode.
  • Configure a watchlist in config.json to automatically monitor preferred assets.

Example Use Cases

  • node skill.js pairs --details=true --strict=true
  • node skill.js candles minutes --market=KRW-ETH --unit=5 --count=100 --strict=true
  • node skill.js trades --market=KRW-BTC --count=50 --strict=true
  • node skill.js tickers --markets=KRW-BTC,KRW-ETH --strict=true
  • node skill.js quote-tickers --quote=KRW,BTC --strict=true

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers