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
- Install
okxCLI:npm install -g @okx_ai/okx-trade-cli - Configure credentials in
~/.okx/config.toml - 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 liveif 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
--beforeAND--afterto form a time window. Using--beforealone returns events all the way to 2028 in reverse order —--limitthen 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 |
|-----------|---------|
| "今天有什么经济数据" / "economic events today" | okx news economic-calendar --before <today_0am_ms> --after <tomorrow_0am_ms> --limit 100 |
| "这周美国有什么重要经济事件" | okx news economic-calendar --region united_states --importance 3 --before <week_start_ms> --after <week_end_ms> --limit 100 |
| "非农什么时候出" / "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 |
| "CPI 出来了吗" / "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" | 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
--beforeAND--afterfor future-event queries.--beforealone 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
eventfield client-side. Use a single API call with--limit 100and broad window, then filter results locally (do NOT loop calls trying different keywords). - When user asks for a specific importance level (e.g. "重要的", "high importance"), pass
--importance 3AND 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 3to reduce noise — these are all high-importance events. Use--limit 100and 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 livesilently. --regionvalues 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, runokx news list-regionsto get the full list of 210 valid values, then fuzzy-match the user's input and retry. If unsure of the exact value, omit--regionand filter results client-side by theregionfield in the response.
BTC Macro Impact (cross-skill)
| User says | Workflow | |-----------|---------| | "BTC 受哪些宏观数据冲击" / "macro impact on BTC this week" | → BTC Macro Impact workflow | | "这周宏观对加密有什么影响" / "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 | |-----------|---------| | "哪些币种情绪变化最大" / "any sentiment anomalies" / "which coins flipped sentiment" | → Anomaly Detection workflow | | "过去一周有什么异动" / "sudden sentiment shifts" / "sentiment reversal" | → Anomaly Detection workflow | | "有没有突然转看涨/看跌的" / "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 |
|-----------|---------|
| "ChainCatcher 最近报道了什么" / "show me news from ChainCatcher" | okx news latest --platform <platform_id> --limit 10 |
| "Odaily 有什么新闻" / "news from TechFlowPost" | okx news latest --platform <platform_id> --limit 10 |
| "吴说区块链最近有什么" / "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:
- If
--platformwas used — broaden--beginto 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. - If
--importance highwas passed — drop it (default is alreadylow= all news). - Broaden
--begin/--endfor any query (not just--platform) when a narrow time window is suspected. - Drop
--coinsto get general news if the coin-specific query yielded nothing. - 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. - 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
--platformqueries 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:
- Broaden
--beginto 7 days back, then 30 days back, and retry. - 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 fromnextCursorin response - Time parameters:
--begin/--endare 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-CNfor Chinese,--lang en-USfor English (default) - sentiment-rank
--sort-by:hot=by mention count (default),bullish=most bullish,bearish=most bearish
Scan to join WeChat group