条目:错误
失败的域名评分调用:401、402 和空行
条目:错误。两个 HTTP 状态码具有特定含义,一个标志位指示调用是否完成,一个数据属性解释了大多数异常情况。

症状、原因、修复方法
| 症状 | 可能原因 | 修复方法 |
|---|---|---|
| HTTP 401 | 密钥缺失、拼写错误或已撤销 | 发送 key=sk_... 或 Bearer 头;请再次从 账户页面 复制密钥 |
| HTTP 402 | 余额不足 | 使用 USDT (TRC-20) 充值;免费操作仍可使用 |
| ok 为 false | 调用未完成 | 先查看 HTTP 状态码,再查看响应体 |
| 域名未评分 | 索引中链接数量极少或为零 | 查看引荐域名;DR 为 0 表示未找到任何引荐域名 |
| 近期链接缺失 | 索引刷新周期约为每月一次 | 等待下次刷新;避免循环重试 |
| 页面在 50,000 行后停止 | 分页上限 | 通过查询或排序缩小范围,然后再次分页 |
| 批量调用被拒绝 | 域名数量超过 2,000 个 | 将列表拆分为较小的块 |
支付通过 TRC-20 网络的 USDT 进行。登录仅限 Google。批量列表上限为 2,000 个域名,列表调用上限为 1,000 行,深度分页上限为 50,000 行。
诊断顺序
从状态码开始。401 关乎身份,402 关乎资金。它们在不同的位置进行修复。
然后读取 ok。每个响应都包含它。在经过身份验证的调用中,_credits 显示成本和剩余余额,因此在出现 402 之前即可发现余额耗尽的情况。
在您的运行手册中保持此顺序固定。任何直接跳转到数据的人可能会花一个上午时间解决一个状态码能立即指出的问题。
之后才应怀疑数据。新站点通常显示较低的 DR。原因很少是 bug。更可能的原因是早于其链接的月度快照。将数值与公式条目进行比较。
将关键问题与余额问题分开
在脚本中,401 和 402 看起来相似,因为它们都停止了同一个循环。它们有不同的原因,因此在做任何更改之前将它们分开。
在相同域上开始一个免费操作。如果它回答了而付费调用没有,则域没问题,问题出在密钥或余额上。
当 401 跟随复制时
粘贴时带有尾随空格或末尾被截断的密钥是导致 401 错误的常见原因。密钥以 sk_ 开头,因此请检查该前缀,并将完整字符串与账户页面上的副本进行比对。
在单一位置替换密钥,然后重新运行该单次调用。同时更改多项内容会导致结果难以解读。
充值后出现 402 错误
402 错误表示付费操作已无可用余额。在首次进行身份验证的响应中,请首先查看 _credits 中的剩余余额。
如果余额看起来正常,请将其与失败调用的成本进行比较。这些数字将显示该调用是否因超出余额限制而失败。
记录充值时间,以便后续将日志与余额进行比对。
记录每次充值前后的余额,将有助于更轻松地排查下一次 402 错误。
处理空结果
确认调用已完成
请先阅读说明。值为 false 表示请求未完成,因此空列表无法反映该域名的真实情况。
检查您发送的名称
q 值必须为裸域名。协议、路径或多余空格都可能导致返回看似有效的空结果。
与免费操作进行对比
对同一名称运行概览。如果概览返回数据而列表未返回,则列表操作及其限制是下一个排查重点。
检查刷新日期
索引大约每月更新一次。在上次刷新后添加的链接不会显示,无论调用该接口多少次。

最小重试策略
- 不要自动重试 401 或 402 错误
- 以递增延迟重试网络故障
- 当 _credits 显示余额接近零时停止
- 缓存成功的答案,有效期为一个月
- 每次失败时记录操作和域名
边缘问题
调用失败会扣除积分吗?
本参考文档未说明失败调用的计费规则。请观察下次认证响应中的 _credits,并将剩余余额与您的预期进行比较。
为何在 402 错误后免费操作仍可执行?
因为 domain、overview、stats 和 suggest 无需密钥且无需积分。仅当余额耗尽时,付费操作才会被阻止。
字段名称来自哪里?
查看 API 字段条目 以了解整体结构,并调用实时端点以获取特定操作的行数据。
为何分数看起来有误却并非错误
有时所有字段都按时到达,但数字仍让你感到意外。响应对于其快照而言是正确的,因此真正的问题是快照包含什么。
三种情况解释了大多数此类案例。
新近启动的域名
新近启动的网站可能显示 DR 0,因为快照早于其链接。此处的零表示未找到链接域名,而非对该网站的评判。
在将数值解读为对该网站的评判之前,请等待下一次刷新。
在采取行动前,将域名年龄与刷新周期进行比较。新域名和从未吸引链接的旧域名在同一快照中看起来相似。
本月添加的链接
最新刷新后添加的链接未包含在数值中。在下一次刷新到来之前,重复调用将返回相同的答案。
注意链接日期和快照日期,以便向任何阅读报告的人轻松解释这一差距。
消失的链接
当页面被删除或捐赠网站关闭时,链接可能会消失。尽管你的方面没有变化,但计数会下降。
在归咎于端点之前,比较相隔几个月的两个快照。
计算移动了多少域名,而不仅仅是总数。分散在多个站点上的少量损失与来自单个站点的大量损失在表现上截然不同。
每个修复的位置

为错误报告重现故障
缩减为一次调用
移除循环,保留一个失败的 curl 命令。
记录响应
记录 HTTP 状态、ok 的值以及 _credits 字段(如果存在)。
在同一域名上尝试免费操作
如果 overview 有效而付费操作无效,则问题出在密钥或余额上,而非域名。
发送详细信息
记录时间、操作以及密钥的首尾字符,以便将调用与账户匹配。报告中不要包含完整密钥。
每次失败调用应记录的内容
| 记录 | 为何有帮助 |
|---|---|
| HTTP 状态 | 一目了然地区分 401 和 402 |
| ok 值 | 显示调用是否完成 |
| _credits(当存在时) | 显示故障发生时的余额 |
| 操作和域名 | 让你能够有意重复相同的调用 |
| 调用时间 | 将其与每月刷新进行对比 |
为何不自动重试
对 402 进行循环会浪费时间且毫无收获。对 401 进行循环可能会在任何提供商(包括我们或 Google)处触发滥用检测。
将重试保留给网络错误,并且每次重试的间隔应比上一次更长。对于夜间作业,三次尝试是一个合理的上限。
假设夜间作业在凌晨两点遇到 402。每五分钟重试一次直到早餐时间,会产生大约一百次相同的失败,而每一行日志都是某人稍后需要阅读的。
也为网络重试设置固定上限,并记录每次尝试。一个可以用一句话说明的上限在作业停止时很容易辩护。
无人值守作业的警报
夜间检查域名分数的作业应在停止时通知某人,并说明原因。两种代码需要不同的警报,因此在消息中将其分开。
对第一个 401 发出警报
一个 401 通常意味着密钥问题,因此单次失败就值得发送消息。等待一百次相同的失败只会延迟修复。
在警报中包含密钥的首尾字符,而不是整个密钥,以便消息可以安全地与同事共享。
402 值得拥有自己的消息,因为其补救措施是充值而不是更换密钥。
安静的作业不一定是健康的作业。计算完成的运行次数,而不仅仅是失败的运行次数,并在一个完整周期内两者都没有变化时发出警报。
对余额下降发出警报
将警告设置在覆盖剩余运行的水平,而不是零。当作业开始时余额几乎为空,则没有重试的余地。
从每次经过身份验证的响应中读取 _credits 中的水平,因此警告不需要额外的请求。
我们的爬虫和链接索引大约每月刷新一次。新近启动的网站可能显示 DR 0,这是对快照的正确读取,因为快照中尚不包含该网站的链接域名。