给 AI

X(推特)社交媒体

X 帖子转推用户 API

转推了某条帖子的账号,每页约 100 个:用户名、名称、简介和粉丝数。

GEThttps://api.okdata.online/v1/x/posts/retweeters/list

也叫转推名单谁转发了推特转推用户英文名:X post retweeters API

价格
$0.002约 ¥0.014
/ 次 · 出错和超时不收费
返回
每页约 100 个账号
带翻下一页的游标
调用出错时
不收费
一个数据源出错就换下一个;出错和超时都不扣费。
状态
预览
还可能调整,改动会提前公告。

参数

参数名类型说明
id必填string帖子 ID(链接里 /status/ 后面那串数字)。 例 2120216592395174382
cursorstring上一次返回的 page.next_cursor,原样传回。每翻一页都是一次单独的调用。
viewstringcompactstandardfull返回多少字段。full 会在 ext 里带上平台特有字段。 默认 standard
fieldsstring[]只保留这些字段,按路径写(如 author.name),用来省 token。放在查询参数里时用逗号分隔。

所有接口的 cursor、view、fields 用法一致: 请求说明。

请求示例

cURL

curl -G "https://api.okdata.online/v1/x/posts/retweeters/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'id=2120216592395174382'

Python

import os
import requests

resp = requests.get(
    "https://api.okdata.online/v1/x/posts/retweeters/list",
    headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
    params={"id": "2120216592395174382"},
    timeout=60,
)
body = resp.json()
if body["code"] != "ok":
    raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")

for row in body["data"]["items"]:
    print(row["name"], row["followers"])
print("cost: $" + body["meta"]["billing"]["amount"])

TypeScript

const url = new URL('https://api.okdata.online/v1/x/posts/retweeters/list');
url.searchParams.set('id', "2120216592395174382");

const res = await fetch(url, {
  headers: {
    Authorization: `Bearer ${process.env.OKDATA_API_KEY}`,
  },
});
const body = await res.json();
if (body.code !== 'ok') throw new Error(`${body.code}: ${body.message}`);

for (const row of body.data.items) {
  console.log(row.name, row.followers);
}
console.log('cost: $' + body.meta.billing.amount);

MCPtools/call

{
  "name": "call",
  "arguments": {
    "capability": "x.posts.retweeters.list",
    "id": "2120216592395174382"
  }
}

返回示例

200 · application/jsonmeta.billing.amount = 0.002
{
  "code": "ok",
  "request_id": "0f6c2a8e-4b1d-4e0a-9a51-3c7d2b9e1f20",
  "data": {
    "items": [
      {
        "id": "1450012345678901248",
        "url": "https://x.com/trailkit",
        "username": "trailkit",
        "name": "Trail Kit",
        "bio": "Light packs, long walks.",
        "avatar_url": "https://cdn.example.com/avatar/trailkit.jpg",
        "verified": true,
        "followers": 182300,
        "following": 312,
        "posts": 486,
        "likes": null
      }
    ]
  },
  "page": {
    "next_cursor": "eyJvIjoyMH0",
    "has_more": true
  },
  "warnings": [],
  "meta": {
    "capability": "x.posts.retweeters.list",
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    },
    "unavailable": {},
    "cached": false,
    "replayed": false,
    "fetched_at": "2026-11-11T08:00:00Z"
  }
}

在线调试

这会向 https://api.okdata.online 发送一次真实调用,正常计费:最多 $0.002。失败的调用不扣费。key 只会发往这个地址,本站不保存。

已知限制

  • 每页约 100 个账号,条数由平台决定,没有每页条数参数。
  • 翻下一页时把 page.next_cursor 作为 cursor 传回。游标 24 小时内有效。page.has_more 为 false 时就没有下一页了。

返回字段

data.items 是一组 Account。

字段类型视图说明
idstringcompact账号在平台上的 ID。
urlstringcompact主页链接。
usernamestring | nullcompact用户名(平台有的话)。
namestringcompact昵称。
biostring | nullcompact简介。长文本:view=compact 可能截短。
avatar_urlstring | nullstandard头像图片地址。
展开全部 12 个字段收起其余 6 个
字段类型视图说明
verifiedboolean | nullstandard平台是否显示认证标识。
followersinteger | nullcompact粉丝数。
followinginteger | nullcompact关注数。
postsinteger | nullcompact发布的作品、笔记或文章数。
likesinteger | nullcompact累计获赞(平台展示的话)。
extobjectfull平台特有字段,只在 view=full 时返回。

“视图”一列是字段最早出现的 view:compact 只返回 compact 字段,standard 再加上 standard 字段,full 返回全部。默认是 standard。

什么时候收费

每次调用 $0.002,返回一页,约 100 个账号。抓 1,000 个账号大约要 10 次调用,合计 $0.02。每翻一页是一次单独的调用;失败的调用不扣费。

返回了数据$0.002,每次调用收一次

参数不合法、出错、超时不收费

情况收费
每翻一页另算一次调用:$0.002
单次最高扣费$0.002
空结果$0.002
查无此项(平台上没有)不收费
参数不合法、出错、超时不收费
24 小时内带同一个 Idempotency-Key 重试只扣一次

调用失败不收费;空结果收 $0.002;查无此项不收费。

价格取自价目表版本 1b273c48fea9634e。 这个平台的全部价格 →

常见报错

所有错误同一种结构,并写明是否扣费。这个接口可能返回的:

状态码代码含义是否扣费
400invalid_params参数缺失、类型或取值不对,或者请求方法不对。problems 列出每一处问题,param 是第一个出错的参数。能否重试:修正后重试否
400cursor_mismatchcursor 发到了别的接口,或者参数和它所在那一页不一样(view 和 fields 可以变)。能否重试:修正后重试否
401unauthorizedKey 缺失、格式不对、已撤销、已停用或已过期(知道原因时 reason 会写明)。能否重试:不要重试否
402insufficient_balance余额(available)不够这次调用的最高费用(required)。能否重试:修正后重试否
404not_found内容、账号或页面不存在或不公开。charge_when_not_found 大于 0 的接口会对这个结果计费(数据源也向我们收了钱):这时返回体里 charged 为 true,并给出 amount。能否重试:不要重试否
410cursor_expiredcursor 超过了这个接口的有效期(page.cursor_expires_at 写了到期时间)。能否重试:不要重试否
429rate_limited账号这一分钟请求太多(reason: rate),或同时进行的调用太多(reason: concurrency)。能否重试:可以重试否
500settlement_unknown数据已返回,但没能确认是否扣费。能否重试:用同一个 Idempotency-Key 重试查询后才知道
502upstream_failed这个接口的所有数据源这次都失败了。能否重试:可以重试否
503capability_paused这个接口暂时停用了,这次没有执行。能否重试:可以重试否
504timeout数据没有及时返回。预扣已退回,这次没有扣费。能否重试:可以重试否

全部错误码 →

常见问题

X 帖子转推用户接口多少钱?

每次调用 $0.002,返回一页,约 100 个账号。抓 1,000 个账号大约要 10 次调用,合计 $0.02。每翻一页是一次单独的调用;失败的调用不扣费。

怎么翻页?

把返回里的 page.next_cursor 原样作为 cursor 参数传回去。page.has_more 为 false 时就没有下一页了。每一页都是一次 $0.002 的调用。

需要X(推特)账号、Cookie 或扫码登录吗?

不需要。只要带上 okdata 的 API key。返回的是X(推特)上的公开数据,不会用到你自己的X(推特)账号。

调用失败会扣费吗?

不会。所有错误都会返回 charged: false;只有超时返回 charged: null,表示结果还没确定。带同一个 Idempotency-Key 重发,绝不会重复扣费。

X(推特)不展示某个字段怎么办?

这个字段会是 null,meta.unavailable 里会列出它和原因:platform(平台本来就不展示)或 capability(我们暂时取不到)。

在你的 AI 里用

复制这段话贴给 Claude、ChatGPT、Cursor 或任何能打开网页的智能体。它会读这个接口的说明,再用你的 key 调用。

先读 https://okdata.online/zh/apis/x/posts/retweeters/list.md,再用 okdata 帮我调这个接口,key 在环境变量 OKDATA_API_KEY 里。用「X 帖子转推用户」查这个账号的粉丝数,说说它主要发什么。

接好 MCP 服务后,直接问: 用「X 帖子转推用户」查这个账号的粉丝数,说说它主要发什么。

X(推特)的全部 20 个接口

X(推特) API 总览 →X(推特) API 价格 →

名称和编号

名称
X 帖子转推用户 API · X post retweeters API
简称
X 帖子转推用户
编号
x.posts.retweeters.list
地址
GET /v1/x/posts/retweeters/list
也叫
转推名单、谁转发了、推特转推用户
返回
Account[]:12 个字段

接上一次,以后直接问 AI。

新 key 自带 $0.10 试用额度。贴一句话,就能接进你的智能体。

免费开始
一句话接进你的 AI

把这句话发给你的智能体

读一下 https://okdata.online/zh/agents.md,帮我把 okdata 配好;我的 key 在环境变量 OKDATA_API_KEY 里。

Claude Code、Cursor、Codex 等能打开网址的智能体,读完会自己配好。

MCP 地址https://api.okdata.online/mcp