一段代码查询Cloudflare账号下已经免费开通Snippets的域名
Cloudflare Snippets是Cloudflare在规则(Rules)上引入的一种“轻量级JavaScript代码片段”机制,用来在边缘(edge)对HTTP请求/响应做灵活的自定义处理。Snippets相当于是将部分 “自定义逻辑” 嵌入到规则引擎(Ruleset Engine)中,让你在规则之外还能写代码来控制细节。
在2025年4月,Cloudflare宣布Snippets对所有付费计划(Pro/Business/Enterprise)正式可用(GA,Generally Available),且不额外收费。
近期有越来越多的Cloudflarer们发现自己免费计划下的部分域名也被悄咪咪的开通了Snippets的使用权限。
你可以登录自己Cloudflare的后台,点进域名,然后在左侧导航栏规则 - Snippets查看,如果是下图的样子,则恭喜你,天选之子,能免费使用Snippets了。目前尚不知Cloudflare选择开通域名的条件,跟域名使用频率有关,但好像没有必然联系。还没有开通的,也不急,作为赛博活佛,部分免费用户有的,最后应该都会有的。

对于人均十几个甚至数十个域名的Cloudflarer来说,一个个域名查看显然比较费时费力了,也可以通过下面的方式,通过一段代码快捷查询名下已经开通Snippets的域名。
登录Cloudflare账号以后,F12或者鼠标右键选择Inspect Element,然后在底部对应区域粘贴回车以下JS即可:

(async () => {
const zonesUrl = "https://dash.cloudflare.com/api/v4/zones?type=full,partial,secondary&per_page=100";
try {
const zonesRes = await fetch(zonesUrl, { credentials: "include" });
const zonesData = await zonesRes.json();
const results = [];
for (const zone of zonesData.result) {
const entitlementsUrl = `https://dash.cloudflare.com/api/v4/zones/${zone.id}/entitlements`;
const entRes = await fetch(entitlementsUrl, { credentials: "include" });
const entData = await entRes.json();
// 找 feature.key === "rulesets.snippets_rule_max"
const rule = entData.result.find(r => r.feature?.key === "rulesets.snippets_rule_max");
const value = rule ? rule.allocation.value : 0;
if (value > 0) {
results.push({
zone_id: zone.id,
zone_name: zone.name,
rulesets_snippets_rule_max: value
});
}
}
console.log(results);
} catch (err) {
console.error("请求失败:", err);
}
})();
如果名下的域名较多的话,回车后需要稍等个几秒或者十几秒的查询时间,查询状态如下图,是正常的,稍等即可。

域管家一个账号30+个域名,一个20+个域名,目前分别也只有7个和6个域名开通了Snippets。👨🏻💻
每粒玉米都是梦想的开始!