Skip to content

用量查询 ​

不打开控制台也能看今日 / 本周用量、剩余额度和订阅到期时间。两种方式选一种:

  • 浏览器插件:装进 Chrome,点工具栏图标查看。不用 CC-Switch 的人选这个
  • CC-Switch 用量查询:已经用 CC-Switch 管理配置的,在软件界面里直接显示

最准确的明细(每次调用的模型、Token、扣费)以 控制台用量明细 为准。

浏览器插件 ​

CodexZH 提供了一个 Chrome 浏览器插件。安装后,点击工具栏图标即可查看 API Key 的剩余额度、今日消费、本周额度和订阅到期时间,无需每次打开控制台。

CodexZH 浏览器插件用量查询效果

安装只有 3 步

下载插件 → 解压文件 → 在 Chrome 加载解压后的文件夹

不要直接加载 .zip 压缩包,必须先解压。

第 1 步:下载插件 ​

下载 CodexZH 浏览器插件

下载完成后,你会得到 codexzh-browser-extension.zip。

第 2 步:解压插件压缩包 ​

Chrome 不能直接加载 .zip 文件,需要先解压。

  • Windows:右键点击压缩包 → 选择全部解压缩 → 解压到不会随便删除的位置(如桌面或文档文件夹)。
  • macOS:双击压缩包,系统会自动解压出一个文件夹。

解压后打开文件夹,确认里面包含以下文件:

text
manifest.json
popup.html
popup.js
background.js
usage.js

选文件夹时要注意

加载插件时,要选择能直接看到 manifest.json 的那层文件夹,不是 .zip 压缩包,也不是外层目录。

第 3 步:打开 Chrome 扩展管理页面 ​

先看一下完整安装流程:

CodexZH 浏览器插件安装流程

在地址栏输入以下地址并按回车:

text
chrome://extensions/

第 4 步:开启开发者模式 ​

在扩展程序页面右上角找到「开发者模式」开关,打开它。

开启后,页面上方会出现「加载已解压的扩展程序」按钮。

第 5 步:加载插件文件夹 ​

点击「加载已解压的扩展程序」,在弹出的文件选择窗口中,选择第 2 步解压出来的、包含 manifest.json 的文件夹。

加载成功后,扩展列表里会出现 CodexZH 插件。

第 6 步:固定到工具栏 ​

  1. 点击 Chrome 右上角的拼图图标。
  2. 找到 CodexZH 插件,点击旁边的图钉按钮。

固定后,插件图标会常驻在工具栏。

第 7 步:填写 API Key ​

点击工具栏中的 CodexZH 插件图标,在弹出的面板中填写你的 API Key(以 sk- 开头),然后点击「保存并刷新」。

保管好 API Key

API Key 是你的使用凭证,不要截图发给别人,也不要粘贴到公开群聊或论坛里。

第 8 步:确认安装成功 ​

配置成功后,插件面板中会显示:

  • 实时可用额度 / 本周已用额度 / 周限额度
  • 今日消费 / 今日调用量 / 总使用额度
  • 订阅开始和到期时间

插件图标上出现绿色数字,说明已正常读取额度。


常见问题 ​

提示找不到 manifest.json ​

选错文件夹了。重新点击「加载已解压的扩展程序」,选择打开后能直接看到 manifest.json 的那层文件夹。

点了插件但没有数据 ​

通常是 API Key 有误或订阅已到期,请检查:

  • API Key 是否以 sk- 开头
  • 前后是否多复制了空格
  • 订阅是否仍然有效

Chrome 提示「开发者模式扩展」 ​

正常现象。插件是手动安装的,不是从 Chrome 网上应用店安装的,会出现这个提示。来源是本文的下载链接,可以继续使用。

如何更新插件? ​

  1. 下载并解压新版插件压缩包。
  2. 打开 chrome://extensions/,找到 CodexZH 插件。
  3. 点击刷新按钮(如果是覆盖原文件夹);或删除旧版后重新加载新版文件夹。

隐私说明 ​

  • API Key 存储在浏览器本地,不会同步到 Google 账号,也不会上传到服务器。
  • 插件只请求 CodexZH 的用量查询接口,不会替你发起任何模型调用。

CC-Switch 用量查询 ​

在 CC-Switch 里配置自定义用量查询,界面上会显示今日用量、本周用量、消费金额等。还没装 CC-Switch 的见 CC Switch 一键导入。

效果图 ​

cc-switch-usage-4

步骤 1:打开用量查询设置 ​

在 CC-Switch 中找到用量查询入口,点击进入设置页面。

打开用量查询设置

步骤 2:预设模版选择 自定义 ​

1

步骤 3:填写提取器代码 ​

把下方代码完整粘贴到提取器输入框中,把 key= 后面的内容换成你控制台里 sk- 开头的 API Key。点底部「测试脚本」,没问题再保存。

填写提取器代码

javascript
({
  request: {
    url: "https://codexzh.com/api/v1/usage/stats?key=把你自己的 apikey,sk-开头的粘贴到这里,注意删除中括号",
    method: "GET",
    headers: {
      "Content-Type": "application/json",
    },
  },
  extractor: function (response) {
    const data = response?.success ? response.data : null;

    if (!data) {
      return {
        isValid: false,
        invalidMessage: response?.message || response?.error || "查询失败",
      };
    }

    const TOKEN_PER_USD = 500000;

    const toNumberOrNull = (value) => {
      if (value === null || value === undefined || value === "") return null;
      if (typeof value === "number") return Number.isFinite(value) ? value : null;
      if (typeof value === "string") {
        const normalized = value.replace(/[$,\s]/g, "");
        if (!normalized) return null;
        const parsed = Number(normalized);
        return Number.isFinite(parsed) ? parsed : null;
      }
      return null;
    };

    const toNumber = (value, fallback = 0) => {
      const parsed = toNumberOrNull(value);
      return parsed === null ? fallback : parsed;
    };

    const quotaPointsToUsd = (points) => toNumber(points) / TOKEN_PER_USD;
    const formatUsd = (value) => `$${toNumber(value).toFixed(2)}`;
    const formatUsdFromApi = (formattedValue, rawValue) => {
      if (typeof formattedValue === "string" && formattedValue.trim()) {
        return formattedValue.trim().startsWith("$")
          ? formattedValue.trim()
          : `$${formattedValue.trim()}`;
      }
      return formatUsd(rawValue);
    };
    const formatCount = (value) => Math.round(toNumber(value)).toLocaleString("zh-CN");

    const dailyBudgetUsd = toNumberOrNull(data.dailyBudget) ?? quotaPointsToUsd(data.dailyQuota);
    const weeklyBudgetUsd = toNumberOrNull(data.weeklyBudget) ?? quotaPointsToUsd(data.weeklyQuota);

    const todayUsedUsd = toNumber(data.todayUsed);
    const weekUsedUsd = toNumber(data.weekUsed);
    const totalUsedUsd = toNumberOrNull(data.analyticsTotalUsed) ?? toNumber(data.totalUsed);

    const todayRemainingUsd = Math.max(dailyBudgetUsd - todayUsedUsd, 0);
    const realtimeRemainingUsd = toNumberOrNull(data.remainQuota);
    const weekRemainingUsd = realtimeRemainingUsd ?? Math.max(weeklyBudgetUsd - weekUsedUsd, 0);

    return {
      isValid: true,
      planName: "Usage Stats",
      unit: "USD",

      // 主指标改为本周口径:周限额度 / 本周消费 / 实时剩余
      total: weeklyBudgetUsd,
      used: weekUsedUsd,
      remaining: weekRemainingUsd,

      extra: [
        `今日调用:${formatCount(data.todayCalls)}`,
        `今日消费:${formatUsdFromApi(data.todayUsedFormatted, todayUsedUsd)}`,
        `今日 Token:${formatCount(data.todayTokens)}`,
        `日限额度:${formatUsd(dailyBudgetUsd)}`,
        `今日剩余:${formatUsd(todayRemainingUsd)}`,
        `本周调用:${formatCount(data.weekCalls ?? data.totalCalls)}`,
        `本周消费:${formatUsdFromApi(data.weekUsedFormatted, weekUsedUsd)}`,
        `周限额度:${formatUsd(weeklyBudgetUsd)}`,
        `实时剩余:${formatUsd(weekRemainingUsd)}`,
        `总请求次数:${formatCount(data.totalRequests ?? data.totalCalls)}`,
        `总使用额度:${formatUsdFromApi(data.analyticsTotalUsedFormatted ?? data.totalUsedFormatted, totalUsedUsd)}`,
        `总使用 Token:${formatCount(data.totalTokens)}`,
        `RPM:${formatCount(data.rpm)}`,
        `TPM:${formatCount(data.tpm)}`,
        `订阅开始:${data.subscriptionStart ?? "-"}`,
        `订阅到期:${data.subscriptionEnd ?? "-"}`,
      ].join("\n"),
    };
  },
});

步骤 4:保存配置 ​

点击右下角「保存」按钮,配置立即生效。

配置成功后,CC-Switch 会自动查询并展示:

  • 今日/本周调用次数
  • 今日/本周/总消费金额
  • 今日剩余额度、本周剩余额度
  • 当前 RPM / TPM 限速情况
  • 订阅有效期