一段代码查询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选择开通域名的条件,跟域名使用频率有关,但好像没有必然联系。还没有开通的,也不急,作为赛博活佛,部分免费用户有的,最后应该都会有的。

一键查询Cloudflare账号下支持免费Snippets的域名

对于人均十几个甚至数十个域名的Cloudflarer来说,一个个域名查看显然比较费时费力了,也可以通过下面的方式,通过一段代码快捷查询名下已经开通Snippets的域名。

登录Cloudflare账号以后,F12或者鼠标右键选择Inspect Element,然后在底部对应区域粘贴回车以下JS即可

一键查询Cloudflare账号下支持免费Snippets的域名

(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);
  }
})();

如果名下的域名较多的话,回车后需要稍等个几秒或者十几秒的查询时间,查询状态如下图,是正常的,稍等即可。

一键查询Cloudflare账号下支持免费Snippets的域名

域管家一个账号30+个域名,一个20+个域名,目前分别也只有7个和6个域名开通了Snippets。👨🏻‍💻


每粒玉米都是梦想的开始!