Skip to content
面向开发者 · 启动器中的整合包

合作伙伴收益 API

只读私有密钥 mek_live_:余额、可提现金额、在 Millida 各项服务中某段时间的收益,以及您整合包的订阅者。该密钥仅能从您服务器的 IP 使用。

更新于 2026年9月28日

如果您想在自己的网站或面板中查看收益,请接入收益 API。它返回的数据与 Millida 钱包中的数字一致:余额、可提现金额,以及所选周期内按服务划分的收益明细:整合包订阅、托管、打赏、市场和其他。

该 API 为只读。您无法通过它提现、修改收款信息或支付任何费用。密钥只能看到您自己的钱包,无法用它访问他人的数据。

密钥

密钥在合作伙伴面板中签发:个人资料 → 以您的工作室命名的分区 → 收益 API。签发时请指定发送请求的服务器 IP 地址。密钥无法从其他任何地址使用,即使被盗也一样。

  • 最多可以指定十个地址或子网。IPv4 的子网不得宽于 /24, IPv6 不得宽于 /48。
  • 家庭地址和本地地址(127.0.0.1、10.x、192.168.x)不予 接受:需要服务器的公网地址。
  • 密钥只显示一次。请将其保存在服务器上、环境变量中 或密钥管理服务里,切勿暴露给浏览器。
  • 最多可以有五个有效密钥。如果密钥丢失或更换服务器, 请吊销旧密钥并签发新密钥。已吊销的密钥会立即失效。

所有端点均相对于 https://api.millida.net/v2。密钥通过请求头传递:

Authorization: Bearer mek_live_…

汇总

GET /earnings-api/v1/summary?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z

from 和 to 是 ISO 8601 格式的周期边界。这两个参数 均可选:不传时,周期涵盖全部时间。

{
  "currency": "RUB",
  "balance": {
    "balanceKopecks": 1254000,
    "availableKopecks": 1204000,
    "withdrawableKopecks": 980000,
    "heldKopecks": 50000,
    "pendingPayoutKopecks": 0,
    "tradeHoldKopecks": 0,
    "tradeHoldReadyAt": null,
    "marketHoldKopecks": 0,
    "marketWithdrawalReadyAt": null
  },
  "period": {
    "from": "2026-09-01T00:00:00.000Z",
    "to": "2026-09-30T23:59:59.999Z",
    "earnedKopecks": 3108000,
    "heldKopecks": 0,
    "spentKopecks": 0,
    "toppedUpKopecks": 0,
    "paidOutKopecks": 2000000,
    "refundKopecks": 0,
    "netKopecks": 1108000,
    "operations": 142,
    "earnedBySource": [
      { "source": "catalog", "amountKopecks": 2950000, "operations": 131 },
      { "source": "hosting", "amountKopecks": 158000, "operations": 11 }
    ],
    "truncated": false
  },
  "subscriptions": {
    "subscribers": 14,
    "bundleSubscribers": 2,
    "packSubscribers": 12
  }
}

所有金额均以戈比为单位:1254000 表示 12 540 ₽。

字段含义
balance.balanceKopecks钱包中的全部金额,包括冻结资金
balance.availableKopecks可在 Millida 内消费的金额
balance.withdrawableKopecks当前可提现的金额——与“提现”按钮上的金额相同
balance.heldKopecks冻结至保留期结束的金额
period.earnedKopecks周期内所有服务的收益
period.earnedBySource周期内按服务划分的收益,从多到少排列
period.paidOutKopecks周期内已提现的金额
period.truncatedtrue——周期内交易过多,金额不完整:请缩小周期范围
subscriptions当前订阅您整合包的人数,简要信息;详情见“订阅者”部分

source 的取值:

source服务
catalog整合包目录:订阅和购买
hosting托管
tradeTrade 打赏
market市场
skinsMillida Skins
rating评分
adminMillida 入账

以后可能会新增取值。如果您不认识某个取值,请按原样显示,不要将其视为错误。

订阅者

GET /earnings-api/v1/subscriptions?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z

当前有多少人通过 Millida 订阅在玩您的整合包,以及周期内订阅发生了什么变化。订阅者按有效访问权限统计,而不是按付款统计:只要一个人能够启动整合包就算作订阅者,包括付款日后为再次扣款提供的三天宽限期。通过您网站密钥的访问、团队访问和一次性购买不计入订阅。

该 API 只返回数字。您无法通过它查出具体是谁在订阅。

from 和 to 定义周期的方式与汇总中相同。它们只影响 period 块;total、active、renewal 和 packs 块始终显示请求时的状态。

{
  "from": "2026-09-01T00:00:00.000Z",
  "to": "2026-09-30T23:59:59.999Z",
  "generatedAt": "2026-09-28T16:30:00.000Z",
  "total": {
    "subscribers": 14,
    "bundleSubscribers": 2,
    "packSubscribers": 12
  },
  "partners": [
    {
      "partner": { "slug": "arcania-labs", "name": "Arcania Labs" },
      "active": {
        "subscribers": 14,
        "bundleSubscribers": 2,
        "packSubscribers": 12,
        "packSubscriptions": 12
      },
      "renewal": {
        "autoRenewing": { "bundle": 2, "packs": 12 },
        "canceledStillActive": { "bundle": 0, "packs": 0 }
      },
      "packs": [
        { "slug": "arcania", "title": "Arcania 1.4.3", "published": true, "activeSubscribers": 14, "viaPack": 12, "viaBundle": 2 },
        { "slug": "dread", "title": "DREAD - A Horror Survival Pack", "published": true, "activeSubscribers": 2, "viaPack": 0, "viaBundle": 2 }
      ],
      "period": {
        "newSubscriptions": { "bundle": 2, "packs": 12 },
        "canceled": { "bundle": 0, "packs": 0 },
        "expired": { "bundle": 0, "packs": 0 },
        "refunded": { "bundle": 0, "packs": 0 }
      },
      "truncated": false
    }
  ]
}

packs 列出您的所有整合包,包括没有订阅者的整合包。

字段含义
total.subscribers当前订阅了您至少一个整合包的去重人数
total.bundleSubscribers其中订阅了“全部整合包”的人数
total.packSubscribers其中订阅了单个整合包的人数
partners[]您拥有的每个工作室一行;如果您不是合作伙伴,该列表为空
active.packSubscriptions单个整合包的订阅总数:一个人可以拥有多个
renewal.autoRenewing将自动续订的订阅:已开启自动付款
renewal.canceledStillActive已关闭自动付款,但已付期限仍然有效;到期后访问将结束
packs[].activeSubscribers有多少人可以通过订阅玩这个整合包
packs[].viaPack / packs[].viaBundle其中通过订阅此整合包和通过“全部整合包”订阅的人数
period.newSubscriptions首次扣款发生在周期内的订阅
period.canceled周期内关闭了自动付款的订阅
period.expired周期内访问结束且未续订的订阅
period.refunded周期内因退款而关闭访问的订阅
truncatedtrue——数据过多,数字不完整:请缩小周期范围

bundle 统计的是人数,而 packs 统计的是单个整合包的订阅数。 如果订阅被取消,它会在取消当天出现在 canceled 中,并在 已付期限结束时出现在 expired 中。

错误

代码code如何处理
401INVALID_KEY密钥缺失、有拼写错误,或是其他类型的密钥
401REVOKED密钥已被吊销——请签发新密钥
401OWNER_UNAVAILABLE密钥所有者的账户已被封禁或删除
403IP_NOT_ALLOWED请求并非来自密钥中的地址;错误文本会显示我们看到的地址
429—请求频率超限,请在一分钟后重试

限制

单个密钥每分钟最多可发送 30 个请求。数字会随 付款而变化,因此每分钟轮询 API 超过一次没有意义。最好在 您的服务器上缓存响应。

示例

curl -s https://api.millida.net/v2/earnings-api/v1/summary \
  -H "Authorization: Bearer $MILLIDA_EARNINGS_KEY"

curl -s https://api.millida.net/v2/earnings-api/v1/subscriptions \
  -H "Authorization: Bearer $MILLIDA_EARNINGS_KEY"