
摘要cc-Switch 是一款多平台 API 用量监控工具但原生不支持小米 MiMo 的用量查询。MiMo 平台提供两种计费模式——按量计费和TokenPlan 套餐制用户需要分别登录 MiMo 控制台才能查看余额与用量操作繁琐且无法在 cc-Switch 中统一监控。本文通过 cc-Switch 的自定义数据源功能分别对接 MiMo 的余额查询接口/api/v1/balance和套餐用量接口/api/v1/tokenPlan/usage实现按量计费一键查看总余额、现金余额、赠送余额、冻结金额、透支额度等关键指标TokenPlan实时监控套餐积分与补偿积分的已用/总量/剩余并以百分比直观展示消耗进度只需将 Cookie 中的认证信息填入配置即可在 cc-Switch 中集中查看 MiMo 用量无需反复登录控制台。效果展示按量计费效果图TokenPlan 效果图如何获取 Cookie在浏览器打开https://platform.xiaomimimo.com按F12打开开发者工具选中网络Network面板选中名称为balanceAlertConfig的请求在请求详情中找到cookie字段复制其完整值注意Cookie 中的serviceToken、userId等字段为个人敏感信息请勿公开分享。Cookie 有效期一般为 24 小时若查询失败可能是 Cookie 已过期需重新获取后方可继续使用。按量计费代码示例({ request: { url: https://platform.xiaomimimo.com/api/v1/balance, method: GET, headers: { Cookie: serviceToken你的serviceToken; xiaomichatbot_ph你的ph; api-platform_serviceToken你的api-platform_serviceToken; userId你的userId; api-platform_slh你的slh; api-platform_ph你的api-platform_ph, Accept: application/json, User-Agent: cc-switch/1.0, }, }, extractor: function (response) { const data response?.data || {}; const unit data.currency || CNY; const isValid response?.code 0; const balanceConfigs [ { key: balance, planName: 总余额 }, { key: cashBalance, planName: 现金余额 }, { key: giftBalance, planName: 赠送余额 }, { key: frozenBalance, planName: 冻结金额 }, { key: overdraftLimit, planName: 透支额度 }, { key: remainingOverdraftLimit, planName: 剩余透支额度 }, ]; return balanceConfigs.map(({ key, planName }) { const value Number(data[key] || 0); return { isValid, planName, remaining: value, unit, }; }); }, })TokenPlan 代码示例({ request: { url: https://platform.xiaomimimo.com/api/v1/tokenPlan/usage, method: GET, headers: { Cookie: serviceToken你的serviceToken; xiaomichatbot_ph你的ph; api-platform_serviceToken你的api-platform_serviceToken; userId你的userId; api-platform_slh你的slh; api-platform_ph你的api-platform_ph, Accept: application/json, User-Agent: cc-switch/1.0, }, }, extractor: function (response, multiplier 100) { const SCALE 1000000; const items response?.data?.usage?.items || []; const planConfigs [ { name: plan_total_token, planName: 套餐积分, }, { name: compensation_total_token, planName: 补偿积分, }, ]; const formatPercent (used, total, fallbackPercent 0) { const percent total 0 ? used / total : Number(fallbackPercent || 0); return ${(percent * 100).toFixed(2).replace(/\.?0$/, )}%; }; const formatValue (value) { return (value / SCALE) / multiplier; }; return planConfigs .map(({ name, planName }) { const item items.find((i) i?.name name); if (!item) { return null; } const used Number(item?.used || 0); const total Number(item?.limit || 0); const remaining Math.max(total - used, 0); return { isValid: true, planName, used: formatValue(used), total: formatValue(total), remaining: formatValue(remaining), unit: 百M, extra: formatPercent(used, total, item?.percent), }; }) .filter(Boolean); }, });