入口:API
DR 检查工具 API:每个参数和字段的解释
请求格式参考以及每个经过身份验证的响应所携带的两个字段。特定操作的行会有所不同,因此在解析之前请先测试一次调用。

该服务是一个返回 JSON 的 REST API。CORS 已开放。浏览器页面可以直接调用它。密钥以 sk_ 开头,在通过 Google 登录后从账户页面获取。
基础 URL 为 https://rankupedia.com/api.php。使用 key=sk_... 作为查询字符串参数,或使用标头 Authorization: Bearer sk_... 进行身份验证,取决于您的客户端偏好。有四个操作不需要身份验证:domain、overview、stats 和 suggest。
一旦能够解析其输出,DR 检查工具才变得有用。下面的示例是最小可用情况,其后的章节涵盖了人们容易出错的部分。
一次调用,带注释
免费的 overview 操作。将域名替换为您自己的域名。
curl "https://rankupedia.com/api.php?action=overview&q=nytimes.com"
# authenticated listing, 100 rows per page:
curl -H "Authorization: Bearer sk_live_..." \
"https://rankupedia.com/api.php?action=refdomains&q=nytimes.com&per=100&page=1&order=desc"请求的结构
命名目标
q 值是一个裸域名,例如 nytimes.com,不带协议或路径。
如果操作是付费的,请添加凭据
查询字符串中的 key 或 Bearer 标头。标头可将密钥排除在服务器日志和浏览器历史记录之外。
分页和排序
page 和 per 用于切片结果,sort 与 order 用于排列它们。分页上限为 50,000 行。
首次调用前准备域名列表
许多奇怪的结果始于输入而非服务器。先清理列表,然后再发送。
删除任何非裸域名的内容。带有路径的粘贴地址会添加 q 值未预期的字符,因此请删除协议、路径和任何尾部斜杠。
删除协议和路径
在调用前将 https://shop.example.org/blog/ 转换为 shop.example.org。q 值接受裸域名,因此路径在此处被丢弃,而不是被发送。
电子表格将这些细节隐藏在单元格内。快速过滤斜杠和冒号可以捕获大部分此类问题。
将名称转换为小写并删除重复项
域名不区分大小写,因此 Example.COM 和 example.com 指向同一个目标。同时发送两者会导致为同一个答案花费两次积分。
在计算调用次数之前去重。一个包含 300 个重复项的 2,100 个名称列表需要两次 raw 的 bulk_dr 调用,但去重后,其 1,800 个唯一名称只需一次调用即可容纳。
决定使用根域名还是子域名
诸如 blog.example.org 的子域名在您的列表中是独立的名称。在发送任何内容之前,决定您的问题关注的是哪一个。
如果问题涵盖整个网站,请发送根名称。如果它涵盖一个子域名,请测试该确切名称,并将答案视为仅属于该子域名。
将决定写入作业备注中,以便下一次运行(可能是由不同的人执行)应用相同的规则。
查询参数
| 参数 | 含义 | 备注 |
|---|---|---|
| action | 要运行的操作 | 必需;参见 成本表 |
| q | 目标域名 | 示例:nytimes.com |
| key | API 密钥 | 或使用 Bearer 标头 |
| page | 结果页码 | 深度分页上限为 50,000 |
| per | 每页行数 | 接受 10 到 5000;一次调用即算一次收费,无论行数多少 |
| sort | 排序列 | 可用列取决于操作 |
| order | asc 或 desc | 与 sort 一起使用 |
| domains | 用于 bulk_dr 的列表 | 每次最多 2,000 个域名,通过 GET 或 POST 主体发送 |

浏览长列表
列表操作以页面形式返回行。两个参数控制切片:page 选择哪个切片,per 设置其包含的行数。per 接受从 10 到 5000 的值。
首先选择页面大小。较大的 per 可以减少调用次数,而计费按调用次数而非行数计算。
分页前先排序
sort 和 order 决定哪些行出现在第一页。在系列调用中每次都设置两者,以确保每页来自相同的排序。
当希望最强的行排在前面时,在指标列上使用 desc;当寻找最弱的行时,使用 asc。可用列名取决于操作。
在信任长运行之前,先用两个页面进行小测试以确认顺序。
在 50,000 行上限处停止
深度分页在 50,000 行处停止。超过该点后,调用将不返回任何新内容,因此持续分页的循环会浪费积分。
缩小问题或将作业拆分为较小的运行。使用不同目标的第二个查询通常比更深的分页更清晰。
深度限制是列表的一个属性,因此它适用于调用它的所有客户端。
在短页面处结束循环
当页面返回的行数少于 per 时停止。这通常是列表已耗尽的迹象。
将该测试与 故障排除条目 中的余额检查相结合,以便循环在最后一页或余额较低时结束,以先到者为准。
每个响应中存在的字段
ok
布尔值。True 表示调用完成。False 表示未完成,HTTP 状态码会告诉您原因。
_credits
出现在经过身份验证的调用中。它报告本次调用的成本和您剩余的积分余额,使您能够在余额耗尽之前停止循环。
每个操作的行级字段名称在实时响应中可见。我们不在本条目中重现它们,以便使其不会与服务脱节。
在编写循环之前测试调用
选择一个您了解的域名
选择一个您可以从其自身页面判断其配置文件的网站。一个您了解的域名可以让奇怪的数字更容易被发现。
发送一次免费调用
运行 overview 或 domain,无需密钥。响应显示 JSON 的真实结构,这比任何描述(包括本描述)都更可靠。
发送一次付费调用,使用最小页面
在列表操作中使用 per=10。在扩大规模之前,您将看到行字段和 _credits 值。
阅读 _credits,然后扩展
将一次调用的成本乘以计划中的调用次数。如果总数大于余额,请在循环开始前缩小计划。
在部署客户端之前
- 在读取任何其他字段之前检查 ok
- 在每次调用时记录 _credits
- 将数据视为月度快照
- 分别处理 401 和 402,参见 故障排除条目
- 将密钥保留在前端代码之外

批处理说明
bulk_dr 操作每次接受最多 2,000 个域名。将它们作为 domains 查询值发送,或者当列表太长而无法放入 URL 时作为 POST 主体发送。
compare 最多接受 20 个域名,intersect 接受 2 到 10 个。Intersect 回答一个问题:哪些网站链接到您命名的所有域名。
由于按调用计费,更大的批次每行成本总是更低。它们也作为一个单元失败。按您可以重试的大小进行分块。
长列表可以放在 POST 主体中。在响应的任何其他内容之前读取 ok,因为被拒绝的批次不包含您可以使用的行。
不带假设地读取 JSON
解析器会在响应省略的字段上出错。期望每行都有每个键的代码是脆弱的,一行短数据就可以停止整个作业。
将缺失字段视为正常
行字段取决于操作,因此一个列表中存在的字段可能在另一个列表中缺失。为每个字段提供默认值并继续。
记录哪个字段缺失,而不仅仅是记录某处失败。该日志显示是架构还是您自己的代码发生了变化。
为样本保留原始响应
保存每个新作业中前几次调用的原始 JSON。当某个数字后来看起来不正确时,保存的文本比记忆更快地解决问题。
将样本与其日期和操作名称一起存储。每月刷新意味着相同的调用下个月可能返回不同的行。
按家族分类的操作
| 家族 | 操作 | 典型用途 |
|---|---|---|
| 免费 | domain, overview, stats, suggest | 快速查找和自动补全 |
| 评分 | bulk_dr, compare, dr_distribution | 筛选列表和同行集 |
| 列表 | refdomains, backlinks, anchors, toppages, anchor_cloud | 审计一个网站 |
| 搜索 | search, keyword, intersect | 查找使用给定锚文本链接或链接到多个竞争对手的网站 |
行级字段名称因操作而异,此处未列出。使用免费操作在您了解的域名上调用端点并读取 JSON,这是唯一的权威来源。
开发人员询问的参数问题
四个参数问题涵盖了使用 API 的第一周的大部分情况。
每次调用都需要密钥吗?
不需要。domain、overview、stats 和 suggest 操作不需要密钥。付费操作需要一个,可以通过 key 参数或 Bearer 标头发送。
我可以在 URL 中发送密钥吗?
可以,key 参数在查询字符串中有效。标头将密钥排除在地址本身之外,许多团队更喜欢这种方式用于日志和共享链接。
如果我想要 per 高于 5000 怎么办?
记录的范围是 10 到 5000。超出该范围的值不在本条目描述的范围内,因此将值保持在范围内并分页获取更多。
q 中的字母大小写重要吗?
域名不区分大小写,因此在发送之前将值转换为小写。一种拼写使跨运行比较结果更容易。