开始
直接跑下面这条命令, 立即拿到 @elonmusk 的实时资料。付费前先看真实返回格式。
curl "https://socialapi.tech/v1/demo/user/info"curl "https://socialapi.tech/v1/search/advanced?query=bitcoin" \ -H "X-API-Key: KEY"
接口参考
40 个读取接口,按用途分为 5 组。点进任一组查看完整参数、响应结构与可直接运行的测试面板。
实时流 (WebSocket)
订阅任意 X 账户, 通过一条 WebSocket 长连接实时接收它们的推文——推给你自己的服务器或软件。一次抓取, 多人分摊, 按账户/小时计费。
认证: api_key 走查询参数 (浏览器 WS 不能带 header)。密钥即身份, 请保密。
订阅哪些账户: 只推你已订阅账户的推文。用 POST /v1/stream/subscriptions 加账户, 加/删几秒内自动生效, 无需重连。
// 1. on connect — handshake with your current subscriptions { "type": "connected", "subscribed": ["elonmusk", "vitalikbuterin"] } // 2. a live post (NO "type" field; identified by tweet_id) { "kol": "elonmusk", "tweet_id": "1929...", "user": "elonmusk", "display_name": "Elon Musk", "content": "...", "url": "https://x.com/...", "like_count": 1203, "retweet_count": 88, "reply_count": 42, "view_count": 90512, "is_retweet": false, "is_reply": false } // 3. backpressure notice (stream too fast; N messages dropped — you stay connected) { "type": "lagged", "dropped": 17 }
★区分: 有 type 字段 = 控制帧 (connected/lagged); 无 type 但有 tweet_id = 推文。服务端每 30s 发 WebSocket Ping 保活, 客户端自动回 Pong 即可 (多数库默认处理)。
import WebSocket from "ws"; // npm i ws
function connect() {
const ws = new WebSocket("wss://socialapi.tech/v1/stream/ws?api_key=YOUR_API_KEY");
ws.on("open", () => console.log("connected"));
ws.on("message", (raw) => {
const msg = JSON.parse(raw.toString());
if (msg.type === "connected") return; // handshake
if (msg.type === "lagged") return; // server dropped N on backpressure
// else: a live post from an account you subscribed to
console.log("@" + msg.user, "→", msg.content);
});
ws.on("error", (e) => console.error("ws error:", e.message));
// auto-reconnect on drop
ws.on("close", () => setTimeout(connect, 1000));
}
connect();import json, websocket # pip install websocket-client
def on_message(ws, raw):
msg = json.loads(raw)
if msg.get("type"): # connected / lagged control frames
return
print("@" + msg["user"], "→", msg["content"])
ws = websocket.WebSocketApp(
"wss://socialapi.tech/v1/stream/ws?api_key=YOUR_API_KEY",
on_message=on_message,
)
ws.run_forever(ping_interval=30, reconnect=5) # keep-alive + auto-reconnect# websocat (github.com/vi/websocat) — quick test from the shell websocat "wss://socialapi.tech/v1/stream/ws?api_key=YOUR_API_KEY"
账户 · 余额与用量
随时查你的 credits 余额与用量。这些端点自鉴权 (X-API-Key), 本身不计费。
{ "status": "success", "data": {
"balance_credits": "998002",
"today": { "calls": 42, "credits_spent": "812" },
"month": { "calls": 903, "credits_spent": "17240" }
} }{ "status": "success", "data": { "user_id": 4, "credits": "998002" } }★每次调用都带余额响应头
无需单独查询——每个计费请求的响应头都实时告诉你本次消耗与剩余额度 (对标 Stripe / OpenAI)。
计费与 Credits
按次付费, 只对成功请求 (200) 扣费。1 USD = 100,000 credits。充值即得 credits, 无月租、无套餐、不过期。
例: 单点查询 15 credits ≈ $0.00015/次;列表类前 30 条 80 credits, 之后每条 12 credits —— 按**实际返回**算, limit 填大不会多扣。缓存命中按同价计 (你拿同一份数据)。
$0.08 / 账户 / 天 (= 333 credits/账户/小时, 按小时从 credits 扣)
扁平价, 想订几个订几个。实时流只推推文本身; 想要作者完整画像(粉丝/简介/位置)请查 /v1/user/info。
- ·订阅的那一刻立即扣除第一个小时的费用。
- ·之后每个账户按各自的整点小时独立计费, 每小时 333 credits, 不重复不遗漏。
- ·余额不足时该账户订阅自动暂停 (停推流+停计费), 充值后重新订阅即恢复。
- ·随时可取消, 只对已开始的整点小时计费。
- ·订阅不存在/拼错的账户会被直接拒绝 (不入库、不扣费)。