限制消耗量
Ahrefs API 仅在符合条件的付费套餐中提供。 在所有其他套餐中,你仍可使用一组数量有限的免费测试查询。
除免费测试查询以及 Rank Tracker、Management、Public 和 部分其他 端点之外,所有请求都会消耗 API 单位。 如果某个端点是免费的,你会在其文档页面看到相关说明;否则,它会消耗单位。
每次请求的单位消耗按如下方式计算:
max(base_cost, per_row_cost * num_rows)
每个请求的 base_cost 为 50 单位。 per_row_cost 是以下各项成本的总和:返回结果中出现的、或在 where / order_by 参数中出现的每个不重复字段的成本。 如果某个字段在多个参数中出现,只计算一次。
字段的默认成本为 1 单位。 不过,某些指标更昂贵,可能会消耗 5 或 10 单位。 这些例外情况会在各端点的字段说明中注明。 从缓存中返回的请求不消耗单位。
每个 API 请求都会通过以下响应头表明其单位消耗情况:
x-api-rows返回的行数。x-api-units-cost-row每行的单位成本。x-api-units-cost-total根据行数和每行成本计算得出,该请求预计消耗的单位总数。x-api-units-cost-total-actual该请求实际消耗的单位总数。x-api-cache该请求是否由缓存响应。 可取值之一:hitmissno_cache
info
估算请求成本的一个好方法是:先用免费目标运行一次,然后查看 x-api-units-cost-total 字段的值。 使用 curl 命令时,如需显示响应头,可以使用 -v 或 --verbose 选项。
示例 1
以 Site Explorer - 域名评分 端点(/site-explorer/domain-rating)请求为例。
它不接受 select、where 或 order_by 参数,并且只返回一行数据,包含 domain_rating 和 ahrefs_rank 两个字段,每行成本为 2 单位。
总行成本(每行成本乘以行数)小于基础成本。 因此,该请求的成本为基础值 50 单位。
示例 2
再以一个更复杂的请求为例:Site Explorer - 反向链接 端点(/site-explorer/all-backlinks),该端点支持配置 select、where 和 order_by 参数。
假设该请求选择了两个字段:
select=title,traffic
筛选表达式中包含两个字段:
where={"and":[{"field":"traffic","is":["gt",1000]},{"field":"refdomains_source","is":["gt",10]}]}
以及一个排序字段:
order_by=traffic:desc
在这些参数中,共涉及三个不重复字段,其中 title 和 refdomains_source 各消耗 1 单位,而 traffic 消耗 10 单位。 因此,每行成本为 1 + 1 + 10 = 12 单位。
假设该请求返回 500 行。 那么,总行成本(12 * 500 = 6000 单位)将超过基础成本。 因此,该请求的成本为 6000 单位。