API 文档API docs
三种接入方式,都免费、不需要 Key。最省事的办法:复制「给 AI 的提示词」发给 ChatGPT、Claude、Cursor 等 AI,它会帮你选好方式、写好代码。Three ways in, all free and keyless. The quickest route: copy the “Prompt for your AI” block into ChatGPT, Claude, Cursor or any AI assistant and let it pick the method and write the code.
- MCP
https://api.eqn.news/public/mcp - WS
wss://api.eqn.news/public/ws - RSS
https://api.eqn.news/public/rss
你可以直接使用「方程式新闻 EquationNews」的公开加密快讯接口,免费、不需要 API Key:
1. MCP(给 AI 用,推荐):https://api.eqn.news/public/mcp(Streamable HTTP)
- list_news(channel, coin, query, limit, before):最新快讯,可按频道、币种代码、关键词(近 30 天)筛选,用 next_cursor 翻页
- get_news(no):一条快讯的全文与各语言版本
2. WebSocket 实时推送:wss://api.eqn.news/public/ws
连上即推送主频道新闻,每条一帧 JSON:{"source_name","news_title","coins_included","url","timestamp"}(timestamp 为 Unix 秒);每 30 秒发送文本 ping,服务器回 pong;断线后指数退避重连。
3. RSS:https://api.eqn.news/public/rss?ch=main&lang=zh
ch 可选 all、main、tradfi、binance、korea、pricechange、oi、major、tier2、tier3、alpha、cz、earn;lang 可选 zh、en。
每条快讯有编号 no,网页是 https://eqn.news/{main|tradfi|monitor}/{no}(以返回的 url 为准);时间都是 UTC。文档:https://eqn.news/api-docs
请根据我的需求选择合适的方式,帮我完成接入。
You can use EquationNews' public crypto newswire directly. It is free and needs no API key:
1. MCP (best for AI): https://api.eqn.news/public/mcp (Streamable HTTP)
- list_news(channel, coin, query, limit, before): latest stories, filter by channel, coin ticker or keyword (last 30 days), page with next_cursor
- get_news(no): one story's full text in every language
2. WebSocket push: wss://api.eqn.news/public/ws
Pushes main-feed news as soon as you connect, one JSON frame per story: {"source_name","news_title","coins_included","url","timestamp"} (timestamp in Unix seconds). Send the text "ping" every 30 s and the server replies "pong"; reconnect with exponential backoff.
3. RSS: https://api.eqn.news/public/rss?ch=main&lang=en
ch: all, main, tradfi, binance, korea, pricechange, oi, major, tier2, tier3, alpha, cz, earn; lang: zh or en.
Every story has a number `no`; its page is https://eqn.news/{main|tradfi|monitor}/{no} (use the returned url). All times are UTC. Docs: https://eqn.news/api-docs
Pick the right option for what I need and help me set it up.
01MCP现网Live
MCP(Model Context Protocol)让 AI 直接查方程式新闻:取最新快讯、按币种或关键词检索、看一条的全文。服务公开只读,不需要 Key;新旧版本的 MCP 客户端都能连。MCP (Model Context Protocol) lets AI assistants query EquationNews directly: latest stories, search by coin or keyword, full text of one story. It is public, read-only and keyless, and works with both older and current MCP clients.
- 地址
https://api.eqn.news/public/mcp,传输方式 Streamable HTTP。Endpointhttps://api.eqn.news/public/mcp, Streamable HTTP transport. - Claude / ChatGPT 网页版:在设置的「连接器(Connectors)」里添加自定义连接器,填上面的地址。Claude / ChatGPT on the web: add a custom connector under Connectors and paste the endpoint.
- Claude Code、Codex、Cursor:右边是一行命令或一段配置。Claude Code, Codex, Cursor: one command or one config block, on the right.
| 工具Tool | 参数Arguments | 返回Returns |
|---|---|---|
list_news | channel 频道 key,默认 all;coin 币种代码,如 BTC;query 关键词(搜近 30 天);limit 1–50,默认 20;before 翻页游标channel channel key, default all; coin ticker such as BTC; query keyword (last 30 days); limit 1–50, default 20; before paging cursor | 最新快讯(新的在前)+ next_cursorNewest stories first + next_cursor |
get_news | no 快讯编号(网页地址最后那段数字,如 eqn.news/tradfi/6784 的 6784)no story number (the number at the end of its page url, e.g. 6784 in eqn.news/tradfi/6784) | 全文:中 / 英 / 韩 / 土 / 俄、来源时间、图片、Telegram 帖子链接、结构化数据Full text in zh / en / ko / tr / ru, source time, images, Telegram post links, structured data |
claude mcp add --transport http equationnews https://api.eqn.news/public/mcp
codex mcp add equationnews --url https://api.eqn.news/public/mcp
{
"mcpServers": {
"equationnews": {
"url": "https://api.eqn.news/public/mcp"
}
}
}
Cursor:写进 ~/.cursor/mcp.json。命令写法见各家官方文档。Cursor: put it in ~/.cursor/mcp.json. See each client's docs for details.
{
"items": [
{
"no": 6311,
"time": "2026-10-22T13:40:05.217Z",
"channels": ["main", "binance"],
"source": "Binance EN",
"zh": "示例:币安将上线 XYZ (XYZ)",
"en": "Example: Binance Will List XYZ (XYZ)",
"coins": ["XYZ"],
"url": "https://eqn.news/main/6311",
"source_url": "https://www.binance.com/en/support/announcement/…"
}
],
"next_cursor": "1792676405217-01M5J0…"
}
只示意返回格式,条目是编的。Shows the response shape only; the story is made up.
02WebSocket 实时推送WebSocket stream现网Live
连上就推送主频道的新闻快讯,每条一帧 JSON 文本。不含交易所公告和行情监控(这些用 MCP 或 RSS 取);没有历史回放,断线期间漏掉的用 MCP 的 list_news 补。Pushes main-feed news the moment you connect, one JSON text frame per story. Exchange notices and market monitors are not included (use MCP or RSS for those); there is no replay, so fill gaps with MCP list_news.
- 连接
wss://api.eqn.news/public/ws,没有参数,也不需要 Key。Connect towss://api.eqn.news/public/ws. No parameters, no key. - 每 30 秒发送纯文本
ping,服务器回pong。它不是 JSON,先判断再解析。Send plain-textpingevery 30 s; the server answerspong. It is not JSON, so check before parsing. - 断线后按 1、2、4、8 秒……最长 30 秒指数退避重连,每次加一点随机抖动。On disconnect, back off 1, 2, 4, 8 s… up to 30 s, with a little random jitter.
| 字段Field | 类型Type | 说明Description |
|---|---|---|
source_name | string | 来源Source |
news_title | string | 标题;大多数快讯只有一行,标题就是全文Headline; most stories are one line |
coins_included | string[] | 匹配到的币种代码,可能为空Matched coin tickers; may be empty |
url | string | null | 原文链接Link to the source |
timestamp | integer | 推送时间,Unix 秒(UTC)Push time, Unix seconds (UTC) |
| 关闭码Close code | 含义Meaning | 怎么处理What to do |
|---|---|---|
1008 | 连接太频繁,或发消息太快Connecting or sending too fast | 降低频率后再连Slow down, then reconnect |
1009 | 发来的消息超过 1 KBClient message over 1 KB | 只发 pingOnly send ping |
1012 | 服务重启Service restarting | 1–5 秒后重连Reconnect in 1–5 s |
1013 | 连接数已满,或你读消息太慢Too many connections, or you read too slowly | 稍后重连,收到就读Retry later; read frames promptly |
$ wscat -c wss://api.eqn.news/public/ws
Connected (press CTRL+C to quit)
> ping
< pong
< {"source_name":"BWENEWS","news_title":"Example headline","coins_included":["BTC"],"url":"https://x.com/…","timestamp":1792676405}
// Node 22+ has WebSocket built in
const ws = new WebSocket("wss://api.eqn.news/public/ws");
ws.onopen = () =>
setInterval(() => ws.send("ping"), 30_000);
ws.onmessage = ({ data }) => {
if (data === "pong") return;
const msg = JSON.parse(data);
console.log(msg.timestamp, msg.news_title);
};
# pip install websockets
import asyncio, json, websockets
URL = "wss://api.eqn.news/public/ws"
async def main():
async for ws in websockets.connect(URL): # reconnects automatically
try:
await ws.send("ping")
async for raw in ws:
if raw == "pong":
continue
msg = json.loads(raw)
print(msg["timestamp"], msg["news_title"])
except websockets.ConnectionClosed:
continue
asyncio.run(main())
03RSS现网Live
地址 https://api.eqn.news/public/rss,默认是主频道、中文,最近 50 条,新的在前。用 ch 换频道、lang 换语言。URL https://api.eqn.news/public/rss: main feed in Chinese by default, latest 50 stories, newest first. Use ch for a channel and lang for the language.
| 参数Param | 取值Values | 默认Default |
|---|---|---|
ch | 频道 key(见频道 key),或 all = 全部频道A channel key (see Channel keys), or all | main |
lang | zh · en | zh |
- 每条:
title是第一行,description是全文,link/guid是快讯网页https://eqn.news/{前缀}/{no},category是频道。Each item:titleis the first line,descriptionthe full text,link/guidthe story pagehttps://eqn.news/{prefix}/{no},categorythe channel. - 缓存 60 秒,一分钟轮询一次就够;带上
If-None-Match,没有更新时返回 304。Cached for 60 s, so polling once a minute is enough; sendIf-None-Matchand get 304 when nothing changed.
# Korean exchange notices in English; skip the download while the ETag is unchanged
URL="https://api.eqn.news/public/rss?ch=korea&lang=en"
while true; do
curl -s --etag-compare etag.txt --etag-save etag.txt \
-o feed.xml "$URL"
sleep 60
done
04频道 keyChannel keys
MCP 的 channel 和 RSS 的 ch 都用这些 key。每个频道也可以在 Telegram 上直接订阅。Use these keys for MCP channel and RSS ch. Every channel can also be followed on Telegram.
| key | 名称Name | Telegram |
|---|
# English RSS for all channels
curl -s "https://api.eqn.news/public/rss?ch=all&lang=en"
05频率限制Rate limits
按来源 IP 计算。超限时 HTTP 接口返回 429 和 Retry-After,WebSocket 以 1008 关闭。Counted per client IP. Over the limit, HTTP endpoints return 429 with Retry-After; the WebSocket closes with 1008.
| 范围Scope | 限制Limit |
|---|---|
| 所有接口合计All endpoints together | 每 10 秒 120 次请求,超过后暂停 10 秒120 requests per 10 s, then a 10 s pause |
| MCP | 每秒 5 次,可突发 30 次5 per second, bursts up to 30 |
| WebSocket | 同时最多 20 条连接;新建连接每秒 2 次(可突发 20);客户端消息每秒 5 条、每条不超过 1 KBUp to 20 open connections; 2 new connections per second (bursts of 20); client messages 5 per second, 1 KB max |
| RSS | 每秒 10 次,可突发 40 次10 per second, bursts up to 40 |
HTTP/1.1 429 Too Many Requests
Retry-After: 2