B2B 实时 API · WebSocket + REST

推特(X)实时 API
给交易机器人、终端和 Agent

Xanguard B2B 是给开发者用的推特(X)实时数据 API。一条 WebSocket 连接,把你监控的账号的新推文、删推、资料变更、新粉丝和关注/取关事件以 JSON 实时推给你;另有 REST API 管理监控列表。付费套餐中位检测延迟约 200 毫秒(实测数据)。50 个账号 49 美元/月起,最多 1,000 个账号,SOL 付款,自动开通。

价格核对于 2026 年 10 月 5 日

做交易机器人和终端的兄弟,欢迎你和你的 Agent 来到 Xanguard。接入、报价、字段映射,直接在 Telegram 找我:@notAdegen

t.me/notAdegen 在 App 中打开

Xanguard 开发者 · 私信直接本人回复

链接打不开?打开 Telegram(电报),搜索 @B2B_Xanguard_bot

~200ms
中位检测延迟
5 类
实时事件模块
1,000
账号上限(更多可谈)
$49 起
每月 50 个账号

五类实时事件,一条 WebSocket

做交易机器人和终端需要的推特动态都在这里:推文、删推、资料变更、新粉丝、关注/取关。JSON 拿来就用。

推文 twitter.post.new

推文、回复、引用、转推,中位检测约 200 毫秒。完整正文、媒体链接、被引用和被回复的原推、作者资料,自动提取合约地址。所有套餐。

删推 twitter.tweet.deleted

监控账号删推时推送,附被删推文的 ID 和正文;只能确认发生了删推、无法确定是哪一条时,这两个字段为 null。所有套餐。

资料变更 twitter.profile.update

改名、改简介、换头像、改置顶推文,给出改之前和改之后的值。项目方改叙事、换皮,往往先从资料开始。Pro 及以上。

新粉丝 twitter.follower.new

监控账号新增粉丝时推送,具体到是谁关注了它。适合发现谁在悄悄关注头部开发者。Pro 及以上。

REST API

用 dt_ 密钥增删监控账号(POST /v1/dt/targets)、查询资料和历史变更。识别图片里合约地址的 OCR 在 Enterprise 提供。

5 分钟接入,开始收事件

不用开会,不用等销售。机器人里下单,拿到密钥就能连。

1

订阅

在 Telegram 打开 @B2B_Xanguard_bot,选套餐,用 SOL 付款。

2

拿密钥

链上确认后自动开通,机器人发给你 dt_ 开头的 API 密钥。

3

加账号

在机器人里 /add 用户名,或调用 POST /v1/dt/targets。

4

连 WebSocket

连接后收到 HELLO,发送 LOGIN(op 2 + 密钥),之后持续接收 EVENT。

opcode 协议,Python / Node 直接跑

地址:wss://api.xanguard.tech/v1/dt/realtime/ws。与 TweetCatcher 兼容的 opcode 流程;每个密钥最多 5 个并发连接,90 秒收不到心跳会断开。

op名称方向说明
10HELLO服务端 → 客户端连接后立即发送,带 heartbeat_interval(毫秒)
2LOGIN客户端 → 服务端15 秒内发送 API 密钥:{"op": 2, "d": "dt_..."}
4READY服务端 → 客户端鉴权成功,带已开通模块和账号数
0EVENT服务端 → 客户端实时事件,d.event 是事件类型
1HEARTBEAT客户端 → 服务端按 heartbeat_interval 发送
11HEARTBEAT_ACK服务端 → 客户端心跳回应
3DISCONNECT服务端 → 客户端断开,d.reason 说明原因(如密钥无效或过期)
Python(pip install websockets)
import asyncio, json
import websockets

URL = "wss://api.xanguard.tech/v1/dt/realtime/ws"
API_KEY = "dt_你的密钥"

async def main():
    async with websockets.connect(URL) as ws:
        # op 10 HELLO:带心跳间隔(毫秒)
        hello = json.loads(await ws.recv())
        interval = hello["d"]["heartbeat_interval"] / 1000

        # op 2 LOGIN:15 秒内发送密钥
        await ws.send(json.dumps({"op": 2, "d": API_KEY}))
        ready = json.loads(await ws.recv())
        if ready["op"] != 4:  # 失败时是 op 3 DISCONNECT
            raise SystemExit(ready["d"].get("reason"))
        print("已连接:", ready["d"]["modules"])

        # 按间隔发心跳,90 秒没心跳会被断开
        async def heartbeat():
            while True:
                await asyncio.sleep(interval)
                await ws.send(json.dumps({"op": 1}))
        hb = asyncio.create_task(heartbeat())

        async for raw in ws:
            msg = json.loads(raw)
            if msg["op"] != 0:  # 只处理 op 0 EVENT
                continue
            ev, d = msg["d"]["event"], msg["d"]["data"]
            if ev == "twitter.post.new":
                print(d["author"]["handle"], d["text"])
            elif ev == "twitter.tweet.deleted":
                print("删推:", d["tweet_id"])
            elif ev == "twitter.profile.update":
                print("资料变更:", d["field"], d["updated"])

asyncio.run(main())
Node.js(npm i ws)
const WebSocket = require('ws');
const URL = 'wss://api.xanguard.tech/v1/dt/realtime/ws';
const ws = new WebSocket(URL);
let hb;

ws.on('message', (raw) => {
  const msg = JSON.parse(raw.toString());
  switch (msg.op) {
    case 10: // HELLO:发送 LOGIN,并按间隔发心跳
      ws.send(JSON.stringify({ op: 2, d: 'dt_你的密钥' }));
      hb = setInterval(
        () => ws.send(JSON.stringify({ op: 1 })),
        msg.d.heartbeat_interval
      );
      break;
    case 4: // READY:鉴权成功
      console.log('已连接', msg.d.modules);
      break;
    case 3: // DISCONNECT:密钥无效或过期等
      console.error('断开:', msg.d.reason);
      break;
    case 0: { // EVENT:实时事件
      const { event, data } = msg.d;
      if (event === 'twitter.post.new') {
        console.log(data.author.handle, data.text);
      } else if (event === 'twitter.following.new') {
        console.log('新关注:', data.handle);
      }
      break;
    }
  }
});

ws.on('close', () => clearInterval(hb));

JSON 长什么样

以下为示例数据,字段以 API 文档为准。推文事件可能先以 twitter.post.new 到达,随后用同一个 data.id 的 twitter.post.update 补全信息。

twitter.post.new
{
  "op": 0,
  "d": {
    "event": "twitter.post.new",
    "event_id": "evt_1234567890123456789",
    "task_info": {"handle": "example_dev"},
    "data": {
      "id": "1234567890123456789",
      "created_at": 1712000000000,
      "type": "post",
      "text": "gm,新版本今晚上线",
      "media": [],
      "author": {
        "id": "1234567890",
        "handle": "example_dev",
        "name": "Example Dev",
        "stats": {"followers": 12000, "following": 800}
      },
      "in_reply_to": null,
      "quoted_tweet": null
    }
  }
}
twitter.following.new(Enterprise)
{
  "op": 0,
  "d": {
    "event": "twitter.following.new",
    "event_id": "evt_f_example_dev_1712000000000",
    "event_time": 1712000000000,
    "task_info": {"handle": "example_dev", "id": "1234567890"},
    "data": {
      "id": "2233445566",
      "handle": "example_founder",
      "name": "Example Founder",
      "bio": "building on Solana",
      "followers": 5400,
      "following": 310
    }
  }
}
twitter.profile.update(Pro 及以上)
{
  "op": 0,
  "d": {
    "event": "twitter.profile.update",
    "event_id": "evt_p_example_dev_1712000000000",
    "task_info": {"handle": "example_dev"},
    "data": {
      "field": "bio",
      "prev": "Old bio text",
      "updated": "New bio text"
    }
  }
}
twitter.follower.new / twitter.tweet.deleted
{
  "op": 0,
  "d": {
    "event": "twitter.follower.new",
    "task_info": {"handle": "example_dev"},
    "data": {
      "id": "12345678",
      "handle": "newfollower",
      "name": "New Follower"
    }
  }
}

{
  "op": 0,
  "d": {
    "event": "twitter.tweet.deleted",
    "task_info": {"handle": "example_dev"},
    "data": {
      "tweet_id": "1234567890123456789",
      "text": "被删推文的正文"
    }
  }
}

data.type 取值:post、reply、quote、repost。资料变更的 field 包括 bio、name、avatar、pinned_tweet。

按模块分档,按账号数定价

先选模块档位,再选监控账号数。每月价格,以美元计、用 SOL 支付,核对于 2026 年 10 月 5 日。

Starter
$49/月起
  • 推文事件
  • 删推事件
  • WebSocket + REST
Enterprise
$249/月起
  • 包含 Pro 全部
  • 关注/取关事件
  • 图片合约地址识别(OCR)
监控账号数Starter
推文 + 删推
Pro
+ 资料变更 + 新粉丝
Enterprise
+ 关注/取关
Starter 每个账号
50 $49 $99 $249 $0.98
250 $229 $429 $979 $0.92
500 $449 $749 $1,649 $0.90
1,000 $849 $1,349 $2,849 $0.85

超过 1,000 个账号可以单独谈。附加功能 CA Search(按合约地址、代币名或关键词搜索最近 24 小时的推文,每次最多 200 条):每天 1,000 次 $100/月,2,000 次 $180,5,000 次 $250。完整英文价格表:B2B API pricing。

实时监控 200 个账号,每月多少钱

第三方价格取自各家官网,核对于 2026 年 9 月 20 日;官方 X API 价格核对于 2026 年 10 月 5 日(docs.x.com)。以对方官网最新价格为准。

方案200 个账号每月说明
Xanguard B2B Starter 250$229WebSocket + REST,含删推事件,最多 250 个账号
TweetStream(250 账号 Pro 套餐)$499官网标价
twitterapi.io(150 账号套餐 + 加购 50 个)约 $399加购账号每个 $2
官方 X API(按量付费)约 $210只算读推文:每条 $0.005,按每个账号每天 7 条估算;关注、资料变更另外计费,有速率限制

从其他服务迁移

  • TweetCatcher:WebSocket 使用兼容的 opcode 流程(HELLO → LOGIN → EVENT + 心跳)。换掉地址和密钥,再对一下少量不同的字段,通常一小时内完成。迁移指南(英文)
  • twitterapi.io:把请求地址换成 api.xanguard.tech,保留原来的 X-API-Key 请求头和数据结构。迁移指南(英文)
  • 其他服务商:把你现在用的接口文档或数据样例发过来,一般几小时内做好字段映射,在同一个聊天里和开发者一起对接。

目前不提供

  • WebSocket 断线重连后补发断线期间错过的推文。
  • 书面 SLA 可用性承诺。
  • 原生 Discord 推送;付款只支持 SOL,不支持信用卡。
适合谁:交易终端、Telegram 交易机器人、跟单和信号工具、数据看板,以及需要推特实时数据的 AI Agent。只想自己在 TG 里收推?用 @Xanguard_bot 就够了,1 个账号免费。

常见问题

有。Xanguard B2B 用一条 WebSocket 推送你监控账号的推文、删推、资料变更、新粉丝和关注/取关事件,另有 REST API。价格按账号数和模块分档,Starter 档 50 个账号 49 美元/月、250 个 229 美元、500 个 449 美元、1,000 个 849 美元。作为对比,官方 X API 的 Pro 档是 5,000 美元/月(2026 年 9 月核对)。SOL 付款,自动开通。
按 X 开发者文档(docs.x.com,2026 年 10 月 5 日核对),官方 X API 现在只按量付费,价格页上已没有 Basic、Pro 月费套餐:每读取 1 条推文 0.005 美元,每读取 1 个用户 0.010 美元,每月最多读取 300 万条推文,再多要找 X 谈 Enterprise。按每个账号每天发 7 条推文估算,盯 50 个账号光读推文每月约 53 美元,关注和资料变更还要另外付费读取,并受速率限制。如果你只需要盯一批指定账号的实时动态,按账号包月的服务通常更省事。
付费套餐中位检测延迟约 200 毫秒,p95、p99 每小时更新在 xanguard.tech/speed/。每条推文事件都带推文自身的发布时间 created_at(毫秒时间戳),你可以拿它和自己的接收时间对比,自己核实延迟。
区别在模块。Starter:推文 + 删推;Pro:再加资料变更和新粉丝;Enterprise:再加关注/取关事件。三档都包含 WebSocket 和 REST,账号数都可以选 50、250、500 或 1,000。合约地址提取所有档都有,识别图片里合约地址的 OCR 只在 Enterprise 提供。
可以。WebSocket 使用与 TweetCatcher 兼容的 opcode 流程(HELLO、LOGIN、READY、EVENT、HEARTBEAT),换掉地址和密钥、对一下少量字段就能跑,通常一小时内完成。twitterapi.io 用户把请求地址换成 api.xanguard.tech,保留原来的 X-API-Key 请求头和数据结构即可。其他服务商可以把文档发给我们,一般几小时内做好字段映射。
在 Telegram 打开 @B2B_Xanguard_bot,选套餐,用 SOL 付款。链上确认后自动开通,机器人直接把 API 密钥发给你,不用开会,也不用等销售。不支持信用卡。

一条 WebSocket,JSON 拿来就用

50 个账号 49 美元/月起,SOL 付款,链上确认后自动发密钥。

链接打不开?打开 Telegram(电报),搜索 @B2B_Xanguard_bot