写给开发者
我们测量的一切
都可以被读出来。
同一把密钥同时打开 REST API 和 MCP 端点;两者都是只读的,也都包含在 Studio 方案里。你的数据没有被锁在我们的界面上--它以同样的形态进入你的脚本、你的看板或你的助手。
带进你自己的看板
把排名历史拉进内部看板、表格或每周报告。数据是你的,不必留在我们的界面里。
发版前的检查
在提交新元数据之前,让脚本读一遍临界带:你刚从副标题里拿掉的那个词,现在排第几,真的可以舍弃吗?
问你的助手
接上 MCP 端点后,「我哪些关键词在临界带上、哪个最热门?」不用截一张图就能得到答案。
一行即可开始
三种接入方式,一把密钥。挑你自己的那一种:会说 MCP 的助手、一个终端,或者一段脚本。
claude-code
claude mcp add --transport http rankcusp \
https://rankcusp.com/api/mcp \
--header "Authorization: Bearer rc_live_…" \
--header "Accept-Language: tr"配置到此为止。第二个请求头决定判断用哪种语言返回;去掉它就是英文。问一句「我哪些关键词在临界带上?」,助手会自己去调用下面这些工具。
密钥
在账户页面创建。密钥只显示一次--我们只保存它的摘要,所以丢了就找不回来;你注销它,再取一把新的。
助手能做什么
九个工具。其中八个只读;最后一个添加关键词,并在被调用之前就告诉客户端。助手一连上就能用,命令行底层调用的也是它们。
list_apps- 账户里的应用和对手。其他工具要的
appId就从这里来。 cusp_actions- 11-30 带,按热度排序:值得花字符的关键词短名单。
get_keyword- 单个关键词--排名、热度、难度--附带用你的语言写出的判断:值不值得争取,依据是什么。
ranking_keywords- 一个应用已经排上的词,来自本产品做过的每一次搜索汇总的记录。对准某个对手就能读它的--苹果没有为此发布任何接口,所以答案只有观测到的那么宽。
keyword_competitors- 还有谁排在这个词上,比首页那十个更深。你在 60、它在 40 的那个应用,才是值得研究的。
audit_metadata- 在你发布之前读一遍标题、副标题和关键词字段草稿,指出哪些重复、哪些浪费、能收回多少字符。
country_priorities- 下一个小时该投给哪个商店:各国的临界词数量,以及对手最弱的地方。
list_keywords- 某个国家全部在追踪的关键词,连同当前排名和上一次排名。
add_keywords- 唯一会写的一个。 把关键词加进某个应用在某商店的追踪列表,接受列表或粘贴的一行。它们进来时没有评分--评分要花苹果的请求、要等采集器--所以这里的空热度不是零。
命令行
一条 `curl` 加一把密钥。它打印的是为终端阅读而设计的表格--未测量的值在那里同样是一个破折号,任何地方都不会凭空造出零。
terminal
$ rankcusp cusp 1544… --country us
KEYWORD RANK Δ POP DIFF CUSP
─────────────── ──── ── ─── ──── ────
habit tracker 14 +5 32 41 •
streak tracking 23 - - 38 • rankcusp- 打开会话:连到了哪里、能问什么,以及一个提示符。
rankcusp apps- 账户里的应用和对手。
rankcusp keywords <appId> --country <cc>- 某个商店里全部在追踪的关键词。
rankcusp cusp <appId> --country <cc>- 某个应用的临界带,按热度排序。
rankcusp keyword <appId> <phrase> --country <cc>- 单个关键词及其判断。
rankcusp audit --country <cc> --title … --keywords …- 发布前检查一份元数据草稿。
rankcusp countries <appId>- 接下来该做哪个商店。
rankcusp tools- 列出所有工具--助手就是这样自己找路的。
端点
- GET
/api/v1/apps - 账户里的应用和竞品。其他调用需要的
appId从这里来。 - GET
/api/v1/keywords?app=…&country=… - 被追踪的关键词:名次、上次名次、热度、难度,以及是否在临界带上。
- GET
/api/v1/keywords?app=…&country=…&cusp=1 - 只要 11-30 带--改一次元数据回报最高的那些。
- GET
/api/v1/keywords?app=…&country=…&keyword=… - 单个关键词:它的首页和判定--该不该做,理由是什么。
- POST
/api/mcp - MCP 端点(JSON-RPC 2.0)。上面那九个工具都在这里。
响应长什么样?
下面的例子展示了请求临界带时的返回形态。注意第二行:previousRank 和 popularity 都是 null。这表示该关键词是第一次被测量、热度还没取到--而不是它等于零。
json
{
"total": 2,
"maxPageSize": 200,
"keywords": [
{
"keyword": "habit tracker",
"country": "us",
"rank": 14,
"previousRank": 19,
"delta": 5,
"popularity": 32,
"difficulty": 41,
"cusp": true,
"lastMeasuredAt": "2026-08-12T04:12:09.114Z"
},
{
"keyword": "streak tracking",
"country": "us",
"rank": 23,
"previousRank": null,
"delta": null,
"popularity": null,
"difficulty": 38,
"cusp": true,
"lastMeasuredAt": "2026-08-12T04:12:11.902Z"
}
]
}你需要知道的
- 没测到的值返回 `null`,绝不是零。
rank: null表示「在前 200 名之外」,popularity: null表示「尚未测量」。把它们换成零的客户端,迟早会去求它们的平均值。 - 判断会用你自己的语言返回。 MCP 端点读取客户端的语言,命令行用
RANKCUSP_LANG=zh。数字在哪种语言里都一样。 - 每分钟 120 次请求。超过会返回
429和retry-after。 - 每页最多 200 行;用
offset往后翻。 - 全部只读。不能通过 API 添加或删除关键词。
- 每次调用都必须带
country:同一个词在两个商店是两次不同的搜索,因此是两行不同的数据。 - 密钥代表一个账户,而不是一个人。与其共用一把,不如各生成各的--这样注销其中一把不会弄坏另一把。