SuperAPI AI Directory

okx-sentiment-tracker

Testing & quality

View repository

Updated 10-16 02:36

About this skill

OKX News & Sentiment

Crypto news aggregation, coin sentiment analysis, and macro-economic calendar for OKX. All commands are read-only and require API credentials (OAuth2.1).

Capabilities

User Intent Command
Latest/important news okx news latest
Coin-specific news okx news by-coin
Keyword news search okx news search
Sentiment-filtered news okx news by-sentiment
Full article content okx news detail
Coin sentiment snapshot okx news coin-sentiment
Sentiment trend okx news coin-trend
Sentiment ranking okx news sentiment-rank
News source list okx news platforms
Economic calendar query okx news economic-calendar
Valid calendar regions okx news list-regions

Prerequisites

  1. Install okx CLI:
    npm install -g @okx_ai/okx-trade-cli
    
  2. Configure credentials in ~/.okx/config.toml
  3. Verify setup:
    okx news latest --limit 3
    

OKX News does not support demo mode. Always use --profile live silently — don't mention it unless there's an error.

On "not available in demo" errors: the user's current profile is configured with demo/simulated credentials. Tell the user: "News module does not support demo mode. Please switch to a live profile." Guide them to either:

  • Use --profile live if a live profile exists: okx --profile live news latest
  • Or create one: okx config add-profile AK=<key> SK=<secret> PP=<passphrase> name=live

All commands support --json for raw JSON output.

Quickstart

# Latest news
okx news latest --limit 5

# Today's important news
okx news important --begin $(date -d 'today 00:00:00' +%s000 2>/dev/null || date -v0H -v0M -v0S +%s000)

# BTC news
okx news by-coin --coins BTC

# Search for SEC ETF news
okx news search --keyword "SEC ETF"

# BTC sentiment overview
okx news coin-sentiment --coins BTC

# Trending coins (hottest right now)
okx news sentiment-rank

# Upcoming economic events (today only)
okx news economic-calendar --before $(date -v0H -v0M -v0S +%s000) --after $(date -v+1d -v0H -v0M -v0S +%s000) --limit 100

Intent → Command Mapping

Browse News

latest, by-coin, and search default --importance low, which returns all news (both high and low importance). Pass --importance high only when the user explicitly asks for major / breaking / important news. The dedicated okx news important command is a shortcut for that case.

User says Command
"what's been happening in crypto lately" / "catch me up on recent news" okx news latest
"any big news today" / "what are the major stories right now" okx news important
"what happened in crypto yesterday" okx news latest --begin <yesterday_0am> --end <today_0am>
"any news on BTC recently" / "what's going on with BTC" okx news by-coin --coins BTC
"any major updates on ETH or SOL" okx news by-coin --coins ETH,SOL --importance high

Search News

User says Command
"any updates on the SEC ETF decision" okx news search --keyword "SEC ETF"
"what's the latest on stablecoin regulation" okx news search --keyword "stablecoin regulation"
"any news about the Bitcoin halving" okx news search --keyword "Bitcoin halving"

Coin Sentiment Analysis

User says Command
"is the market bullish or bearish on BTC right now" / "how do people feel about BTC" okx news coin-sentiment --coins BTC
"compare how people feel about ETH vs SOL" okx news coin-sentiment --coins ETH,SOL
"how has BTC sentiment changed over the past 24 hours" okx news coin-trend BTC --period 1h --points 24
"show me BTC sentiment over the past week" okx news coin-trend BTC --period 24h --points 7
"what's hot in crypto right now" / "which coins are getting the most attention" okx news sentiment-rank
"which coins are people most excited about" / "top bullish coins" okx news sentiment-rank --sort-by bullish
"which coins have the most negative sentiment" okx news sentiment-rank --sort-by bearish

Economic Calendar

CRITICAL — always use BOTH --before AND --after to form a time window. Using --before alone returns events all the way to 2028 in reverse order — --limit then clips the FARTHEST events, not the nearest. Always pair them.

Semantics (counterintuitive): --before <ts> = events NEWER than ts (lower bound), --after <ts> = events OLDER than ts (upper bound, default=now).

User says Command
"What economic data is out today" / "economic events today" okx news economic-calendar --before <today_0am_ms> --after <tomorrow_0am_ms> --limit 100
"What important economic events are there in the US this week" okx news economic-calendar --region united_states --importance 3 --before <week_start_ms> --after <week_end_ms> --limit 100
"When is NFP released" / "when is NFP" okx news economic-calendar --region united_states --importance 3 --before <now_ms> --after <now_plus_60d_ms> --limit 100 then filter event field for "Non Farm" client-side
"Is CPI out yet" / "latest CPI data" okx news economic-calendar --region united_states --importance 3 --limit 20 (default after=now fetches past high-importance events; check actual field)
"ECB rate decision" / "ECB rate decision" okx news economic-calendar --region euro_area --importance 3 --before <now_ms> --after <now_plus_90d_ms> --limit 100 then filter for "Interest Rate Decision"

How to choose before / after:

Intent Parameter Explanation
Today's events --before <today_0am> --after <tomorrow_0am> Window = today 0:00 → tomorrow 0:00
This week's events --before <week_start> --after <week_end> Window = Mon 0:00 → Sun 24:00
Next N days --before <now> --after <now_plus_Nd> Window = now → N days ahead
Past events (default) omit both, or --after <upper_bound> Default after=now, returns recent past
Historical window --before <window_start> --after <window_end> Both bounds explicit

Notes:

  • ⚠️ ALWAYS use both --before AND --after for future-event queries. --before alone returns to 2028 and limit clips the wrong end. The only exception is past-event queries where default after=now is correct.
  • Rate limit: 1 request per 5 seconds (IP-based). Do NOT call repeatedly.
  • No keyword/event filter — scan response event field client-side. Use a single API call with --limit 100 and broad window, then filter results locally (do NOT loop calls trying different keywords).
  • When user asks for a specific importance level (e.g. "important", "high importance"), pass --importance 3 AND only include importance=3 events in output. Do NOT pad the response with lower-importance events.
  • When searching for a specific event (NFP, CPI, ECB decision), always add --importance 3 to reduce noise — these are all high-importance events. Use --limit 100 and a wide window to ensure the target event is captured.
  • actual="" = not yet released; non-empty = released.
  • Historical data >3 months requires VIP1+.
  • Demo mode not supported — use --profile live silently.
  • --region values are snake_case (e.g. united_states, euro_area). Invalid values silently return empty results (no error). If you get empty results and suspect a region typo, run okx news list-regions to get the full list of 210 valid values, then fuzzy-match the user's input and retry. If unsure of the exact value, omit --region and filter results client-side by the region field in the response.

BTC Macro Impact (cross-skill)

User says Workflow
"Which macro data impact BTC" / "macro impact on BTC this week" → BTC Macro Impact workflow
"How will macro affect crypto this week" / "how will macro data affect crypto" → BTC Macro Impact workflow

These queries require parallel execution of economic-calendar + BTC sentiment/news + market data. Do NOT run them sequentially.

Sentiment Anomaly Detection (multi-coin)

User says Workflow
"Which coins have the biggest sentiment changes" / "any sentiment anomalies" / "which coins flipped sentiment" → Anomaly Detection workflow
"What anomalies happened in the past week" / "sudden sentiment shifts" / "sentiment reversal" → Anomaly Detection workflow
"Has anything suddenly turned bullish/bearish" / "any coins turning bullish/bearish" → Anomaly Detection workflow

These queries require a broad-then-deep approach: first scan all coins for anomalies, then deep-dive with news correlation. Follow the multi-phase workflow in references/workflows.md — do NOT just pick a few coins to analyze.

Source-Filtered News

Use --platform to filter by news source directly. Always resolve the exact value from okx news platforms — do not guess platform identifiers from the user's wording.

User says Command
"What has ChainCatcher reported recently" / "show me news from ChainCatcher" okx news latest --platform <platform_id> --limit 10
"What news does Odaily have" / "news from TechFlowPost" okx news latest --platform <platform_id> --limit 10
"What's new with Wu Blockchain recently" / "news from a specific outlet" okx news latest --platform <platform_id> --limit 20

Important: When filtering by source, use a larger --limit (10–20) to maximize results, since individual sources typically have fewer articles than the aggregated feed. --importance low (the default) is the right setting here; do not narrow to --importance high.

Posting cadence is uneven across platforms. The API defaults --begin to 72 hours ago, which is too narrow for bursty sources and will often return 0 results. If a --platform-filtered query returns fewer than ~5 items (or 0), retry with --begin set to 7 days back, then 30 days back before concluding the source has no data. Resolve candidate platform IDs from okx news platforms; do not hardcode assumptions about which platforms are active.

Cross-Skill Workflows

See references/workflows.md for multi-step scenarios (market overview, daily briefing, etc.) and full MCP tool → CLI mapping.

Command Reference

okx news latest

Get the latest crypto news sorted by time.

okx news latest [--coins BTC,ETH] [--begin <ms>] [--end <ms>]
               [--importance high|low] [--platform <source>]
               [--detail-lvl brief|summary|full] [--lang zh-CN|en-US]
               [--limit 10] [--after <cursor>] [--json]

--importance default is low (returns all news, both high and low). Pass --importance high to narrow to breaking / major news only — or use okx news important.


okx news important

Get high-impact breaking news (reported by multiple sources).

okx news important [--coins BTC,ETH] [--begin <ms>] [--end <ms>]
                  [--detail-lvl brief|summary|full]
                  [--lang zh-CN|en-US] [--limit 10] [--json]

okx news by-coin

Get news for specific coins.

okx news by-coin --coins <BTC,ETH,...>
               [--importance high|low] [--platform <source>]
               [--begin <ms>] [--end <ms>] [--lang zh-CN|en-US]
               [--limit 10] [--json]

--importance default is low (returns all news). Pass --importance high only for breaking / major news.


okx news search

Full-text keyword search with optional filters.

okx news search --keyword <text>
               [--coins BTC,ETH] [--importance high|low]
               [--platform <source>]
               [--sentiment bullish|bearish|neutral]
               [--sort-by latest|relevant]
               [--begin <ms>] [--end <ms>] [--lang zh-CN|en-US]
               [--limit 10] [--after <cursor>] [--json]

--importance default is low (returns all news). Pass --importance high only for breaking / major news.


okx news detail

Get full article content by ID.

okx news detail <id>                  # news ID from previous result
               [--lang zh-CN|en-US] [--json]

okx news by-sentiment

Browse news filtered by sentiment (no keyword needed).

okx news by-sentiment --sentiment <bullish|bearish|neutral>
               [--coins BTC,ETH] [--importance high|low]
               [--sort-by latest|relevant]
               [--begin <ms>] [--end <ms>] [--lang zh-CN|en-US]
               [--limit 10] [--after <cursor>] [--json]

--importance default is low (returns all news). Pass --importance high only for breaking / major news.


okx news platforms

List available news platforms. Use the returned values with --platform on latest, by-coin, or search commands to filter by source.

okx news platforms [--json]

okx news coin-sentiment

Get current sentiment snapshot for specific coins.

okx news coin-sentiment --coins <BTC,ETH,...>
               [--period 1h|4h|24h]  # aggregation granularity, default 24h
               [--json]

Returns: symbol, label (bullish/bearish/neutral/mixed), bullishRatio, bearishRatio, mentionCount.


okx news coin-trend

Get time-series sentiment trend for a coin. Note: uses positional arg (not --coins).

okx news coin-trend <coin>            # positional arg, e.g. BTC
               [--period 1h|4h|24h]  # aggregation granularity, default 1h
               [--points 24]          # trend data points, default 24
               [--json]

trendPoints guide: 1h period → use 24 (last 24h), 4h → use 6, 24h → use 7.


okx news sentiment-rank

Get coin ranking by social hotness or sentiment direction.

okx news sentiment-rank [--period 1h|4h|24h]
               [--sort-by hot|bullish|bearish]  # hot=by mentions (default), bullish, bearish
               [--limit 10]                     # max 50
               [--json]

okx news economic-calendar

Get macro-economic calendar data. Historical data beyond 3 months requires VIP1+.

okx news economic-calendar [--region <country>] [--importance <1|2|3>]
                           [--before <ms>] [--after <ms>]
                           [--limit 100] [--json]

Rate limit: 1 request per 5 seconds (IP). Much stricter than other news commands.

before/after are inverted: --before <ts> = newer than ts (future), --after <ts> = older than ts (past). See Economic Calendar intent mapping for examples.

Common regions: united_states, china, euro_area, united_kingdom, japan, germany, canada, australia

Importance: 1=low, 2=medium, 3=high


okx news list-regions

List all valid --region values for economic-calendar. Use when a region query returns empty to verify the value.

okx news list-regions [--json]

MCP Tool Reference

Tool Description
news_get_latest Latest news sorted by time. Server default importance=high (narrow); pass importance=low to broaden to all news.
news_get_by_coin News for specific coins (coins is comma-separated string)
news_search Full-text keyword search with filters (optional sentiment filter)
news_get_detail Full article content by ID
news_get_domains List available news source domains
news_get_coin_sentiment Sentiment snapshot (no trendPoints) or time-series trend (pass trendPoints)
news_get_sentiment_ranking Coin ranking by hotness or sentiment direction
news_get_economic_calendar Macro-economic calendar data; rate limit 1/5s
news_list_calendar_regions List all 210 valid region values for economic-calendar

Coin Symbol Normalization

The API only accepts standard uppercase ticker symbols (e.g. BTC, ETH, SOL). Users may refer to coins by full names, abbreviations, slang, or local-language nicknames. Always resolve these to the correct ticker before passing to any command. If the intended coin is ambiguous, ask the user to confirm before querying.

Empty Results & Web Search Fallback

OKX news data may be sparse for niche coins or highly specific keyword searches. The API default --begin window is only 72 hours, which alone accounts for many empty results. When a command returns empty or insufficient results, apply these steps in order — do not skip to web search:

  1. If --platform was used — broaden --begin to 7 days back, then 30 days back, before changing anything else. Bursty sources routinely return 0 items in the default window but dozens over a wider range.
  2. If --importance high was passed — drop it (default is already low = all news).
  3. Broaden --begin / --end for any query (not just --platform) when a narrow time window is suspected.
  4. Drop --coins to get general news if the coin-specific query yielded nothing.
  5. Use web search as a supplement — search the web for "<topic> news site:coindesk.com OR site:cointelegraph.com OR site:theblock.co" to gather additional context, then combine with any OKX results into a unified briefing.
  6. Be transparent — tell the user which results came from OKX API vs. web search so they can judge source credibility.

This fallback is especially valuable for:

  • Coins with low coverage (e.g. newly listed tokens)
  • Highly specific keyword searches with no matches
  • --platform queries where the chosen source has uneven posting cadence

Known Limitations

Source Coverage

Platform posting cadence varies and changes over time. Some sources publish many articles per day; others post in bursts with quiet stretches in between. A source returning few or zero articles in the default 72-hour window is not evidence that it is inactive — it may simply not have posted recently, or its recent posts may have been deduplicated out.

Before concluding a --platform-filtered query has no data:

  1. Broaden --begin to 7 days back, then 30 days back, and retry.
  2. If still empty after a 30-day window, report to the user that no recent articles were found for that source and suggest either removing --platform (to fall back to the aggregated feed) or web search.

Do not hardcode assumptions about which platforms are active — resolve candidates from okx news platforms and let the data speak.

Historical Search Limitations

okx news search and okx news by-coin primarily index recent articles (typically today and recent days). Searching with --begin/--end for dates more than ~7 days ago may return empty results even if articles existed at that time. This is an API indexing limitation, not a data absence.

For historical analysis, okx news coin-trend (sentiment trend data) is more reliable than article search — it retains time-series data for longer periods.

Edge Cases

  • Pagination: use --after <cursor> to get next page; cursor comes from nextCursor in response
  • Time parameters: --begin / --end are Unix epoch milliseconds
  • Coins format: comma-separated uppercase symbols, e.g. BTC,ETH,SOL — never pass full names or aliases
  • coin-trend --points: always pass explicitly; 1h→24, 4h→6, 24h→7
  • Language: inferred from user's message — --lang zh-CN for Chinese, --lang en-US for English (default)
  • sentiment-rank --sort-by: hot=by mention count (default), bullish=most bullish, bearish=most bearish